custom for >5 resources

Fork of mbedConnectorInterface by Doug Anson

Revision:
23:caa0260acc21
Parent:
22:192b598ba389
Child:
24:a6915e19814e
--- a/api/DynamicResource.cpp	Fri Mar 13 06:22:41 2015 +0000
+++ b/api/DynamicResource.cpp	Thu Mar 19 04:05:08 2015 +0000
@@ -114,21 +114,17 @@
 
             // convert the string from the GET to something suitable for CoAP payloads
             this->logger()->log("Building payload for [%s]=[%s]...",key.c_str(),value.c_str());
-            int length = value.size();
-            char value_buffer[MAX_VALUE_BUFFER_LENGTH+1];
-            if (length > MAX_VALUE_BUFFER_LENGTH) length = MAX_VALUE_BUFFER_LENGTH;
-            memset(value_buffer,0,MAX_VALUE_BUFFER_LENGTH+1);
-            memcpy(value_buffer,value.c_str(),length);
 
             // fill in the CoAP response payload
-            coap_res_ptr->payload_len = length;
-            coap_res_ptr->payload_ptr = (uint8_t *)value_buffer;
+            coap_res_ptr->payload_len = value.size();
+            coap_res_ptr->payload_ptr = (uint8_t *)value.c_str();
             
             // Observation handling... 
             if(received_coap_ptr->token_ptr) {
                 if(this->m_obs_token_ptr) {
                     free(this->m_obs_token_ptr);
                     this->m_obs_token_ptr = NULL;
+                    this->m_obs_token_len = 0;
                 }
                 
                 this->m_obs_token_ptr = (uint8_t*)malloc(received_coap_ptr->token_len);
@@ -238,7 +234,7 @@
 
 // send the notification
 int DynamicResource::notify(uint8_t *data,int data_length) {
-    int status = sn_nsdl_send_observation_notification(this->m_obs_token_ptr,this->m_obs_token_len,data,data_length, &this->m_obs_number, 1,COAP_MSG_TYPE_NON_CONFIRMABLE,0);
+    int status = sn_nsdl_send_observation_notification(this->m_obs_token_ptr,this->m_obs_token_len,data,data_length,&this->m_obs_number,1,COAP_MSG_TYPE_NON_CONFIRMABLE,0);
     if (status == 0) {
         this->logger()->log("ERROR: resource(NOTIFY) send failed...");
     }