Update a logic for POST request in Enrollee implementation
authorJihun Ha <jihun.ha@samsung.com>
Fri, 6 May 2016 02:26:30 +0000 (11:26 +0900)
committerMadan Lanka <lanka.madan@samsung.com>
Tue, 10 May 2016 05:45:02 +0000 (05:45 +0000)
Updated logic/flow:
(1) Parsing the requested attribute like tnn, cd, and tr
(2) Check if the provisioning is completed
(3) Check if the trigger is requested
(4) If the trigger process fails due to some reason, revert an attribute tr
    to 0

Change-Id: I1db3bfcd3b0d5593516b7719d64ba23f831ba9bc
Signed-off-by: Jihun Ha <jihun.ha@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/8075
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/easy-setup/enrollee/arduino/resourcehandler.cpp [changed mode: 0644->0755]
service/easy-setup/enrollee/src/resourcehandler.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 2181ec0..7f2fc8e
@@ -166,6 +166,24 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         return ehResult;
     }
 
+    char* tnn;
+    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn))
+    {
+        OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), tnn);
+        OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.tnn %s", gProvResource.tnn);
+
+        gProvResource.ps = ES_PS_PROVISIONING_COMPLETED;
+    }
+
+    char* cd;
+    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd))
+    {
+        OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), cd);
+        OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.cd %s", gProvResource.cd);
+    }
+
+    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.ps %lld", gProvResource.ps);
+
     int64_t tr;
     if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_TR, &tr))
     {
@@ -187,6 +205,7 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         }
         else
         {
+            gProvResource.tr = ES_PS_TRIGGER_INIT_VALUE;
             OIC_LOG(ERROR, ES_RH_TAG, "gNetworkInfoProvEventCb is NULL."
                     "Network handler not registered. Failed to connect to the network");
             ehResult = OC_EH_ERROR;
@@ -204,29 +223,6 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         OIC_LOG(DEBUG, ES_RH_TAG, "Provisioning the network information to the Enrollee.");
     }
 
-    OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), "");
-    OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), "");
-
-    char* tnn;
-    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn))
-    {
-        OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), tnn);
-        OIC_LOG(INFO, ES_RH_TAG, "got ssid");
-    }
-
-    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.tnn %s", gProvResource.tnn);
-
-    char* cd;
-    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd))
-    {
-        OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), cd);
-        OIC_LOG(INFO, ES_RH_TAG, "got password");
-    }OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.cd %s", gProvResource.cd);
-
-    gProvResource.ps = ES_PS_PROVISIONING_COMPLETED;
-
-    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.ps %lld", gProvResource.ps);
-
     OCRepPayload *getResp = constructResponse(ehRequest);
     if (!getResp)
     {
old mode 100644 (file)
new mode 100755 (executable)
index 0956410..f3856f2
@@ -166,6 +166,24 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         return ehResult;
     }
 
+    char* tnn;
+    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn))
+    {
+        OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), tnn);
+        OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.tnn %s", gProvResource.tnn);
+
+        gProvResource.ps = ES_PS_PROVISIONING_COMPLETED;
+    }
+
+    char* cd;
+    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd))
+    {
+        OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), cd);
+        OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.cd %s", gProvResource.cd);
+    }
+
+    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.ps %lld", gProvResource.ps);
+
     int64_t tr;
     if (OCRepPayloadGetPropInt(input, OC_RSRVD_ES_TR, &tr))
     {
@@ -187,6 +205,7 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         }
         else
         {
+            gProvResource.tr = ES_PS_TRIGGER_INIT_VALUE;
             OIC_LOG(ERROR, ES_RH_TAG, "gNetworkInfoProvEventCb is NULL."
                     "Network handler not registered. Failed to connect to the network");
             ehResult = OC_EH_ERROR;
@@ -204,29 +223,6 @@ OCEntityHandlerResult ProcessPostRequest(OCEntityHandlerRequest *ehRequest, OCRe
         OIC_LOG(DEBUG, ES_RH_TAG, "Provisioning the network information to the Enrollee.");
     }
 
-    OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), "");
-    OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), "");
-
-    char* tnn;
-    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_TNN, &tnn))
-    {
-        OICStrcpy(gProvResource.tnn, sizeof(gProvResource.tnn), tnn);
-        OIC_LOG(INFO, ES_RH_TAG, "got ssid");
-    }
-
-    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.tnn %s", gProvResource.tnn);
-
-    char* cd;
-    if (OCRepPayloadGetPropString(input, OC_RSRVD_ES_CD, &cd))
-    {
-        OICStrcpy(gProvResource.cd, sizeof(gProvResource.cd), cd);
-        OIC_LOG(INFO, ES_RH_TAG, "got password");
-    }OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.cd %s", gProvResource.cd);
-
-    gProvResource.ps = ES_PS_PROVISIONING_COMPLETED;
-
-    OIC_LOG_V(INFO, ES_RH_TAG, "gProvResource.ps %lld", gProvResource.ps);
-
     OCRepPayload *getResp = constructResponse(ehRequest);
     if (!getResp)
     {