Fix a logic to send a response even in case to wrong request
authorJihun Ha <jihun.ha@samsung.com>
Tue, 16 Aug 2016 07:10:40 +0000 (16:10 +0900)
committerMadan Lanka <lanka.madan@samsung.com>
Wed, 17 Aug 2016 04:22:53 +0000 (04:22 +0000)
Even if request handling fails for some reasons, a response for the request
should be sent back to Mediator.

Change-Id: I70db07e9fb58f00613e7613de4d7ae06cc9b5bf9
Signed-off-by: Jihun Ha <jihun.ha@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10493
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Hemant Mahsky <h.mahsky@samsung.com>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/easy-setup/enrollee/src/resourcehandler.c

index 793d38b..872a8b7 100755 (executable)
@@ -925,27 +925,24 @@ OCEntityHandlerResult OCEntityHandlerCb(OCEntityHandlerFlag flag,
             }
         }
 
-        if (ehRet == OC_EH_OK)
+        // Format the response.  Note this requires some info about the request
+        response.requestHandle = entityHandlerRequest->requestHandle;
+        response.resourceHandle = entityHandlerRequest->resource;
+        response.ehResult = ehRet;
+        //response uses OCPaylod while all get,put methodes use OCRepPayload
+        response.payload = (OCPayload*) (payload);
+        response.numSendVendorSpecificHeaderOptions = 0;
+        memset(response.sendVendorSpecificHeaderOptions, 0,
+                sizeof(response.sendVendorSpecificHeaderOptions));
+        memset(response.resourceUri, 0, sizeof(response.resourceUri));
+        // Indicate that response is NOT in a persistent buffer
+        response.persistentBufferFlag = 0;
+
+        // Send the response
+        if (OCDoResponse(&response) != OC_STACK_OK)
         {
-            // Format the response.  Note this requires some info about the request
-            response.requestHandle = entityHandlerRequest->requestHandle;
-            response.resourceHandle = entityHandlerRequest->resource;
-            response.ehResult = ehRet;
-            //response uses OCPaylod while all get,put methodes use OCRepPayload
-            response.payload = (OCPayload*) (payload);
-            response.numSendVendorSpecificHeaderOptions = 0;
-            memset(response.sendVendorSpecificHeaderOptions, 0,
-                    sizeof(response.sendVendorSpecificHeaderOptions));
-            memset(response.resourceUri, 0, sizeof(response.resourceUri));
-            // Indicate that response is NOT in a persistent buffer
-            response.persistentBufferFlag = 0;
-
-            // Send the response
-            if (OCDoResponse(&response) != OC_STACK_OK)
-            {
-                OIC_LOG(ERROR, ES_RH_TAG, "Error sending response");
-                ehRet = OC_EH_ERROR;
-            }
+            OIC_LOG(ERROR, ES_RH_TAG, "Error sending response");
+            ehRet = OC_EH_ERROR;
         }
     }