Fix a bug when CRED provisioning
authorsaerome.kim <saerome.kim@samsung.com>
Fri, 22 Dec 2017 10:28:59 +0000 (19:28 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 2 Jul 2018 10:38:38 +0000 (19:38 +0900)
Signed-off-by: saerome.kim <saerome.kim@samsung.com>
src/d2d-subowner/d2ds-subowner.c

index e83d3150e947a031ba6854278c3c073da445c5f4..f8c84fd8841f836e6ea0a47a3f238a345785089b 100644 (file)
@@ -109,6 +109,72 @@ typedef struct _d2ds_subowner {
 
 d2ds_subowner_s *g_client;
 
+#define CASE_TO_STR(x) case x: return #x;
+const char* _error_to_string(OCStackResult err)
+{
+       switch (err) {
+       /* CHECK: List all enum values here */
+       CASE_TO_STR(OC_STACK_OK)
+       CASE_TO_STR(OC_STACK_RESOURCE_CREATED)
+       CASE_TO_STR(OC_STACK_RESOURCE_DELETED)
+       CASE_TO_STR(OC_STACK_CONTINUE)
+       CASE_TO_STR(OC_STACK_RESOURCE_CHANGED)
+       CASE_TO_STR(OC_STACK_INVALID_URI)
+       CASE_TO_STR(OC_STACK_INVALID_QUERY)
+       CASE_TO_STR(OC_STACK_INVALID_IP)
+       CASE_TO_STR(OC_STACK_INVALID_PORT)
+       CASE_TO_STR(OC_STACK_INVALID_CALLBACK)
+       CASE_TO_STR(OC_STACK_INVALID_METHOD)
+       CASE_TO_STR(OC_STACK_INVALID_PARAM)
+       CASE_TO_STR(OC_STACK_INVALID_OBSERVE_PARAM)
+
+
+       CASE_TO_STR(OC_STACK_NO_MEMORY)
+       CASE_TO_STR(OC_STACK_COMM_ERROR)
+       CASE_TO_STR(OC_STACK_TIMEOUT)
+       CASE_TO_STR(OC_STACK_ADAPTER_NOT_ENABLED)
+       CASE_TO_STR(OC_STACK_NOTIMPL)
+       CASE_TO_STR(OC_STACK_RESOURCE_ERROR)
+       CASE_TO_STR(OC_STACK_SLOW_RESOURCE)
+       CASE_TO_STR(OC_STACK_DUPLICATE_REQUEST)
+       CASE_TO_STR(OC_STACK_OBSERVER_NOT_FOUND)
+       CASE_TO_STR(OC_STACK_VIRTUAL_DO_NOT_HANDLE)
+       CASE_TO_STR(OC_STACK_INVALID_OPTION)
+       CASE_TO_STR(OC_STACK_MALFORMED_RESPONSE)
+       CASE_TO_STR(OC_STACK_PERSISTENT_BUFFER_REQUIRED)
+
+       CASE_TO_STR(OC_STACK_INVALID_REQUEST_HANDLE)
+       CASE_TO_STR(OC_STACK_INVALID_DEVICE_INFO)
+       CASE_TO_STR(OC_STACK_INVALID_JSON)
+       CASE_TO_STR(OC_STACK_UNAUTHORIZED_REQ)
+       CASE_TO_STR(OC_STACK_TOO_LARGE_REQ)
+       CASE_TO_STR(OC_STACK_PDM_IS_NOT_INITIALIZED)
+       CASE_TO_STR(OC_STACK_DUPLICATE_UUID)
+       CASE_TO_STR(OC_STACK_INCONSISTENT_DB)
+       CASE_TO_STR(OC_STACK_SVR_DB_NOT_EXIST)
+       CASE_TO_STR(OC_STACK_AUTHENTICATION_FAILURE)
+       CASE_TO_STR(OC_STACK_NOT_ALLOWED_OXM)
+#ifdef WITH_PRESENCE
+       CASE_TO_STR(OC_STACK_PRESENCE_STOPPED)
+       CASE_TO_STR(OC_STACK_PRESENCE_TIMEOUT)
+       CASE_TO_STR(OC_STACK_PRESENCE_DO_NOT_HANDLE)
+#endif
+       CASE_TO_STR(OC_STACK_USER_DENIED_REQ)
+       CASE_TO_STR(OC_STACK_NOT_ACCEPTABLE)
+       CASE_TO_STR(OC_STACK_METHOD_NOT_ALLOWED)
+       CASE_TO_STR(OC_STACK_FORBIDDEN_REQ)
+       CASE_TO_STR(OC_STACK_INTERNAL_SERVER_ERROR)
+       CASE_TO_STR(OC_STACK_NOT_IMPLEMENTED)
+       CASE_TO_STR(OC_STACK_BAD_GATEWAY)
+       CASE_TO_STR(OC_STACK_SERVICE_UNAVAILABLE)
+       CASE_TO_STR(OC_STACK_GATEWAY_TIMEOUT)
+       CASE_TO_STR(OC_STACK_PROXY_NOT_SUPPORTED)
+       CASE_TO_STR(OC_STACK_ERROR)
+       default :
+               return "Unknown Error";
+       }
+}
+
 static void _print_uuid(const OicUuid_t* uuid)
 {
        char uuid_string[256] = {0};
@@ -124,14 +190,14 @@ static void _print_uuid(const OicUuid_t* uuid)
 #ifdef TEST
 static OCProvisionDev_t* _get_dev_by_id(const OCProvisionDev_t* dev_lst, const int dev_num)
 {
-       if(!dev_lst || 0>=dev_num) {
-               D2DS_LOGI("     Device List is Empty..\n");
+       if (!dev_lst || 0>=dev_num) {
+               D2DS_LOGI("Device List is Empty..\n");
                return NULL;
        }
 
        OCProvisionDev_t* lst = (OCProvisionDev_t*) dev_lst;
-       for(int i=0; lst; ) {
-               if(dev_num == ++i) {
+       for (int i=0; lst; ) {
+               if (dev_num == ++i) {
                        return lst;
                }
                lst = lst->next;
@@ -144,12 +210,12 @@ static OCProvisionDev_t* _get_dev_by_id(const OCProvisionDev_t* dev_lst, const i
 static OCProvisionDev_t* _get_dev_by_uuid(const OCProvisionDev_t* dev_lst,
        const OicUuid_t* uuid)
 {
-       if(!dev_lst ) {
+       if (!dev_lst ) {
                D2DS_LOGI("dev_lst is empty");
                return NULL;
        }
 
-       if(!uuid ) {
+       if (!uuid ) {
                D2DS_LOGI("uuid is NULL");
                return NULL;
        }
@@ -168,15 +234,15 @@ static OCProvisionDev_t* _get_dev_by_uuid(const OCProvisionDev_t* dev_lst,
 
 static int _print_dev_list(const OCProvisionDev_t* dev_lst)
 {
-       if(!dev_lst) {
-               D2DS_LOGI("     Device List is Empty..\n\n");
+       if (!dev_lst) {
+               D2DS_LOGI("Device List is Empty..\n\n");
                return 0;
        }
 
        OCProvisionDev_t* lst = (OCProvisionDev_t*) dev_lst;
        int lst_cnt = 0;
-       for( ; lst; ) {
-               D2DS_LOGI("     [%d] ", ++lst_cnt);
+       for ( ; lst; ) {
+               D2DS_LOGI("[%d] ", ++lst_cnt);
                _print_uuid((const OicUuid_t*) &lst->doxm->deviceID);
                lst = lst->next;
        }
@@ -186,15 +252,15 @@ static int _print_dev_list(const OCProvisionDev_t* dev_lst)
 
 static int _print_result_list(const OCProvisionResult_t* rslt_lst, const int rslt_cnt)
 {
-       if(!rslt_lst || 0>=rslt_cnt) {
+       if (!rslt_lst || 0>=rslt_cnt) {
                D2DS_LOGI("     Device List is Empty..\n\n");
                return 0;
        }
 
        int lst_cnt = 0;
-       for( ; rslt_cnt>lst_cnt; ++lst_cnt) {
+       for ( ; rslt_cnt>lst_cnt; ++lst_cnt) {
                _print_uuid((const OicUuid_t*) &rslt_lst[lst_cnt].deviceId);
-               D2DS_LOGI(" -> result: %d\n", rslt_lst[lst_cnt].res);
+               D2DS_LOGI(": result: %s", _error_to_string(rslt_lst[lst_cnt].res));
        }
 
        return lst_cnt;
@@ -218,16 +284,16 @@ static FILE* _fopen_prvn_mng(const char* path, const char* mode)
 static int _wait_cb_ret(int milli_seconds)
 {
        OCStackResult ret = OC_STACK_OK;
-       for(int i=0; !g_client->g_doneCB && milli_seconds > i; ++i) {
+       for (int i=0; !g_client->g_doneCB && milli_seconds > i; ++i) {
                usleep(1000);
                ret = OCProcess();
-               if(OC_STACK_OK != ret) {
+               if (OC_STACK_OK != ret) {
                        D2DS_LOGE( "OCStack process error = %d", ret);
                        return ret;
                }
        }
 
-       if(!g_client->g_doneCB)
+       if (!g_client->g_doneCB)
                OCPDMCleanupForTimeout();
 
        return ret;
@@ -235,7 +301,7 @@ static int _wait_cb_ret(int milli_seconds)
 
 static void _input_pin_cb(char* pin, size_t len)
 {
-       if(!pin || OXM_RANDOM_PIN_MAX_SIZE>=len) {
+       if (!pin || OXM_RANDOM_PIN_MAX_SIZE>=len) {
                D2DS_LOGE( "inputPinCB invalid parameters");
                return;
        }
@@ -250,7 +316,7 @@ static void _remove_mot_client()
 
        g_mutex_init(&motdev_mutex);
        g_mutex_lock(&motdev_mutex);
-       if(g_client->g_motdev_list) {
+       if (g_client->g_motdev_list) {
                OCDeleteDiscoveredDevices(g_client->g_motdev_list);
                g_client->g_motdev_list = NULL;
        }
@@ -264,7 +330,7 @@ static void _remove_owned_client()
        /* delete un/owned device lists before updating them */
        g_mutex_init(&owned_dev_mutex);
        g_mutex_lock(&owned_dev_mutex);
-       if(g_client->g_mowned_list) {
+       if (g_client->g_mowned_list) {
                OCDeleteDiscoveredDevices(g_client->g_mowned_list);
                g_client->g_mowned_list = NULL;
        }
@@ -284,14 +350,14 @@ static int _init_provision_client(void)
        static OCPersistentStorage ps = { _fopen_prvn_mng, fread, fwrite, fclose, unlink };
 
        ret = OCRegisterPersistentStorageHandler(&ps);
-       if(OC_STACK_OK != ret ) {
+       if (OC_STACK_OK != ret ) {
                D2DS_LOGE( "OCRegisterPersistentStorageHandler error = %d", ret);
                return ret;
        }
 
        /* initialize OC stack and provisioning manager */
        ret = OCInit(NULL, 0, OC_CLIENT_SERVER);
-       if(OC_STACK_OK != ret ) {
+       if (OC_STACK_OK != ret ) {
                D2DS_LOGE( "OCInit() error = %d", ret);
                return ret;
        }
@@ -302,7 +368,7 @@ static int _init_provision_client(void)
                D2DS_LOGI("No provisioning DB file, creating new");
 
        ret = OCInitPM(data_dir);
-       if(OC_STACK_OK != ret ) {
+       if (OC_STACK_OK != ret ) {
                D2DS_LOGE( "OCInitPM() error = %d", ret);
                return ret;
        }
@@ -310,7 +376,7 @@ static int _init_provision_client(void)
        SetInputPinCB(_input_pin_cb);
 
        g_client = g_malloc0(sizeof(d2ds_subowner_s));
-       if(!g_client) {
+       if (!g_client) {
                D2DS_LOGE( "memory allocation error = %d", errno);
                return D2DS_ERROR_OUT_OF_MEMORY;
        }
@@ -386,11 +452,11 @@ static gboolean _d2ds_timeout_cb(gpointer data)
 
        switch (con->cid) {
        case D2DS_DISC_MOT_ENB_DEVS:
-               D2DS_LOGE("   > Discovered Multiple Ownership Transfer Enabled Devices\n");
+               D2DS_LOGE("Discovered Multiple Ownership Transfer Enabled Devices\n");
                g_client->g_motdev_cnt = _print_dev_list(g_client->g_motdev_list);
                break;
        case D2DS_DISC_MOWNED_DEVS:
-               D2DS_LOGE("   > Discovered Multiple Ownership Transfer Enabled Devices\n");
+               D2DS_LOGE("Discovered Multiple Ownership Transfer Enabled Devices\n");
                g_client->g_mowndev_cnt = _print_dev_list(g_client->g_mowned_list);
                break;
        case D2DS_MOT:
@@ -413,14 +479,14 @@ static gpointer _disc_mot_env_devs_func(gpointer data)
        _remove_mot_client();
 
        D2DS_LOGI("Discovering Multiple Ownership Transfer enabled Devices on Network..");
-       if(OC_STACK_OK != OCDiscoverMultipleOwnerEnabledDevices(DISCOVERY_TIMEOUT,
+       if (OC_STACK_OK != OCDiscoverMultipleOwnerEnabledDevices(DISCOVERY_TIMEOUT,
                &g_client->g_motdev_list)) {
                D2DS_LOGE( "OCDiscoverMultipleOwnerEnalbedDevices API error");
                goto DISC_MOT_ENB_DEVS_END;
        }
 
        /* display the discovered device lists */
-       D2DS_LOGD("   > Discovered Multiple Owner Transfer Enabled Devices\n");
+       D2DS_LOGD("Discovered Multiple Owner Transfer Enabled Devices");
        g_client->g_motdev_cnt = _print_dev_list(g_client->g_motdev_list);
 
 DISC_MOT_ENB_DEVS_END:
@@ -449,8 +515,9 @@ static int _disc_mot_enb_devs(d2ds_service *service)
 
        con->userdata = service;
        con->cid = D2DS_DISC_MOT_ENB_DEVS;
-       //con->tid = g_timeout_add_seconds(DISCOVERY_TIMEOUT + 1, _d2ds_timeout_cb, con);
-
+#ifdef TIMEOUT_USED
+       con->tid = g_timeout_add_seconds(DISCOVERY_TIMEOUT + 1, _d2ds_timeout_cb, con);
+#endif
        return D2DS_ERROR_NONE;
 }
 
@@ -462,15 +529,15 @@ static gpointer _disc_owned_devs_func(gpointer data)
        /* delete un/owned device lists before updating them */
        _remove_owned_client();
 
-       D2DS_LOGD(" Discovering Multiple Owned Devices on Network.");
+       D2DS_LOGD("Discovering Multiple Owned Devices on Network.");
        ret = OCDiscoverMultipleOwnedDevices(DISCOVERY_TIMEOUT, &g_client->g_mowned_list);
-       if(OC_STACK_OK != ret) {
+       if (OC_STACK_OK != ret) {
                D2DS_LOGE( "OCDiscoverMultipleOwnerEnabledDevices API error");
                goto DISC_OWNED_DEVS_END;
        }
 
        /* display the discovered device lists */
-       D2DS_LOGD("   > Discovered My Owned Devices\n");
+       D2DS_LOGD("Discovered My Owned Devices");
        g_client->g_mowndev_cnt = _print_dev_list(g_client->g_mowned_list);
 
 DISC_OWNED_DEVS_END:
@@ -499,15 +566,15 @@ static int _disc_owned_devs(d2ds_service *service)
                return D2DS_ERROR_OUT_OF_MEMORY;
        }
        g_thread_unref(con->thread);
-
-       //con->tid = g_timeout_add_seconds(DISCOVERY_TIMEOUT + 1, _d2ds_timeout_cb, con);
-
+#ifdef TIMEOUT_USED
+       con->tid = g_timeout_add_seconds(DISCOVERY_TIMEOUT + 1, _d2ds_timeout_cb, con);
+#endif
        return D2DS_ERROR_NONE;
 }
 
 static void _mot_cb(void* ctx, int nOfRes, OCProvisionResult_t* arr, bool hasError)
 {
-       if(!hasError)  {
+       if (!hasError)  {
                D2DS_LOGD("Multiple Ownership Transfer SUCCEEDED - ctx: %s", (char*) ctx);
        } else {
                D2DS_LOGD( "Multiple Ownership Transfer FAILED - ctx: %s", (char*) ctx);
@@ -521,7 +588,7 @@ static gpointer _mot_func(gpointer data)
        OCStackResult ret = OC_STACK_OK;
        d2ds_req_cb_s *con = (d2ds_req_cb_s *)data;
 
-       if(!con->target)        {
+       if (!con->target)       {
                D2DS_LOGE("Target device is NULL");
                return NULL;
        }
@@ -543,7 +610,7 @@ static gpointer _mot_func(gpointer data)
        }
 #endif //MULTIPLE_OWNER
        ret = OCDoMultipleOwnershipTransfer(g_client, con->target, _mot_cb);
-       if(OC_STACK_OK != ret )  {
+       if (OC_STACK_OK != ret )  {
                D2DS_LOGE( "OCDoMultipleOwnershipTransfer: ret=%d", ret);
                return NULL;
        }
@@ -672,37 +739,31 @@ static int sendGetLed()
        printDevList(g_mowned_list);
 
        // select device for provisioning access control list
-       for( ; ; )
-       {
+       for( ; ; )  {
                printf("   > Enter Device Number, for sending GET LED request: ");
-               for(int ret=0; 1!=ret; )
-               {
+               for(int ret=0; 1!=ret; ) {
                        ret = scanf("%d", &selDevNum);
                        for( ; 0x20<=getchar(); );  // for removing overflow garbages
                                // '0x20<=code' is character region
                }
-               if(0<selDevNum && g_mowned_cnt>=selDevNum)
-               {
+               if(0<selDevNum && g_mowned_cnt>=selDevNum) {
                        break;
                }
                printf("     Entered Wrong Number. Please Enter Again\n");
        }
 
        OCProvisionDev_t* selDev = _get_dev_by_id(g_mowned_list, selDevNum);
-       if(NULL == selDev)
-       {
+       if(NULL == selDev) {
                printf("Failed to _get_dev_by_id()\n");
                return -1;
        }
 
        if(PMGenerateQuery(true, selDev->endpoint.addr, selDev->securePort, selDev->connType,
-               query, sizeof(query), "/a/led"))
-       {
+               query, sizeof(query), "/a/led")) {
                g_doneCB = false;
                printf("query=%s\n", query);
                if(OC_STACK_OK != OCDoResource(NULL, OC_REST_GET, query, NULL, NULL, selDev->connType,
-               OC_HIGH_QOS, &cbData, NULL, 0))
-               {
+               OC_HIGH_QOS, &cbData, NULL, 0)) {
                        printf("********************************\n");
                        printf("Failed to send GET request to %s\n", query);
                        printf("********************************\n");
@@ -711,9 +772,7 @@ static int sendGetLed()
                }
 
                waitCallbackRet();
-       }
-       else
-       {
+       } else {
                printf("Failed to generate GET request for /a/led\n");
                return -1;
        }
@@ -732,37 +791,31 @@ static int sendPutLed()
 
        printDevList(g_mowned_list);
        // select device for provisioning access control list
-       for( ; ; )
-       {
+       for( ; ; )  {
                printf("   > Enter Device Number, for sending PUT LED request: ");
-               for(int ret=0; 1!=ret; )
-               {
+               for(int ret=0; 1!=ret; ) {
                        ret = scanf("%d", &selDevNum);
                        for( ; 0x20<=getchar(); );  // for removing overflow garbages
                                // '0x20<=code' is character region
                }
-               if(0<selDevNum && g_mowned_cnt>=selDevNum)
-               {
+               if(0<selDevNum && g_mowned_cnt>=selDevNum) {
                        break;
                }
                printf("     Entered Wrong Number. Please Enter Again\n");
        }
 
        OCProvisionDev_t* selDev = _get_dev_by_id(g_mowned_list, selDevNum);
-       if(NULL == selDev)
-       {
+       if (NULL == selDev) {
                printf("Failed to _get_dev_by_id()\n");
                return -1;
        }
 
-       if(PMGenerateQuery(true, selDev->endpoint.addr, selDev->securePort, selDev->connType, query,
-               sizeof(query), "/a/led"))
-       {
+       if (PMGenerateQuery(true, selDev->endpoint.addr, selDev->securePort, selDev->connType, query,
+               sizeof(query), "/a/led")) {
                g_doneCB = false;
                D2DS_LOGI("query=%s\n", query);
                if(OC_STACK_OK != OCDoResource(NULL, OC_REST_PUT, query, NULL, NULL, selDev->connType,
-                       OC_LOW_QOS, &cbData, NULL, 0))
-               {
+                       OC_LOW_QOS, &cbData, NULL, 0)) {
                        D2DS_LOGI("********************************\n");
                        D2DS_LOGI("Failed to send PUT request to %s\n", query);
                        D2DS_LOGI("********************************\n");
@@ -771,9 +824,7 @@ static int sendPutLed()
                }
 
                waitCallbackRet();
-       }
-       else
-       {
+       } else {
                printf("Failed to generate PUT request for /a/led\n");
                return -1;
        }
@@ -796,23 +847,23 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t*
        OicSecAce_t* ace = NULL;
        OicSecRsrc_t* rsrc = NULL;
 
-       if(NULL == target) {
+       if (NULL == target) {
                D2DS_LOGE( "target is NULL");
                return NULL;
        }
 
-       if(NULL == subject) {
+       if (NULL == subject) {
                D2DS_LOGE( "subejct is NULL");
                return NULL;
        }
 
        acl = (OicSecAcl_t*) OICCalloc(1, sizeof(OicSecAcl_t));
-       if(!acl) {
+       if (!acl) {
                D2DS_LOGE( "acl : OICCalloc failed =%d", errno);
                return NULL;
        }
        ace = (OicSecAce_t*) OICCalloc(1, sizeof(OicSecAce_t));
-       if(!ace) {
+       if (!ace) {
                D2DS_LOGE( "ace : OICCalloc failed =%d", errno);
                return NULL;
        }
@@ -821,14 +872,14 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t*
 
        /* fill the href */
        rsrc = (OicSecRsrc_t*)OICCalloc(1, sizeof(OicSecRsrc_t));
-       if(!rsrc) {
+       if (!rsrc) {
                D2DS_LOGE( "rsrc: OICCalloc failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
 
        len = strlen(rsrc_uri)+1;  // '1' for null termination
        rsrc->href = (char*) OICCalloc(len, sizeof(char));
-       if(!rsrc->href) {
+       if (!rsrc->href) {
                D2DS_LOGE( "rsrc->href: OICStrdup failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
@@ -837,12 +888,12 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t*
        /* Fill the resource type (rt) */
        rsrc->typeLen = 1;
        rsrc->types = (char**)OICCalloc(1, sizeof(char*));
-       if(!rsrc->types) {
+       if (!rsrc->types) {
                D2DS_LOGE( "rsrc->types: OICCalloc failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
        rsrc->types[0] = OICStrdup(rsrc_type);
-       if(!rsrc->types[0]) {
+       if (!rsrc->types[0]) {
                D2DS_LOGE( "rsrc->types[0]: OICStrdup failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
@@ -850,12 +901,12 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t*
        /* Fill the interface (if) */
        rsrc->interfaceLen = 1;
        rsrc->interfaces = (char**)OICCalloc(1, sizeof(char*));
-       if(!rsrc->interfaces) {
+       if (!rsrc->interfaces) {
                D2DS_LOGE( "rsrc->interfaces: OICCalloc failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
        rsrc->interfaces[0] = OICStrdup(rsrc_interface);
-       if(!rsrc->interfaces[0]) {
+       if (!rsrc->interfaces[0]) {
                D2DS_LOGE( "rsrc->interfaces[0] : OICStrdup failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
@@ -866,7 +917,7 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t*
        ace->permission = permission;
 
        ace->eownerID = (OicUuid_t*)OICCalloc(1, sizeof(OicUuid_t));
-       if(NULL == ace->eownerID) {
+       if (NULL == ace->eownerID) {
                D2DS_LOGE( "ace->eownerID : OICCalloc failed =%d", errno);
                goto CREATE_ACL_ERROR;
        }
@@ -881,7 +932,7 @@ CREATE_ACL_ERROR:
 
 static void _provisioning_acl_cb(void* ctx, int nOfRes, OCProvisionResult_t* arr, bool hasError)
 {
-       if(!hasError) {
+       if (!hasError) {
                D2DS_LOGD( "Provision ACL SUCCEEDED - ctx: %s", (char*) ctx);
        } else {
                D2DS_LOGD( "Provision ACL FAILED - ctx: %s", (char*) ctx);
@@ -896,7 +947,7 @@ static gpointer _provisioning_acl_func(gpointer data)
        d2ds_req_cb_s *con = (d2ds_req_cb_s *)data;
        OicSecAcl_t* acl = NULL;
 
-       if(!con->subject || !con->rsrc_uri || !con->rsrc_type  || !con->rsrc_interface) {
+       if (!con->subject || !con->rsrc_uri || !con->rsrc_type  || !con->rsrc_interface) {
                D2DS_LOGE("Some parameters are wrong");
                D2DS_LOGE("%p", con->subject );
                D2DS_LOGE("%s", con->rsrc_uri );
@@ -910,24 +961,24 @@ static gpointer _provisioning_acl_func(gpointer data)
 
        acl = _create_target_acl(&con->target->doxm->deviceID, &con->subject->doxm->deviceID, con->rsrc_uri, con->rsrc_type,
                con->rsrc_interface, con->permission);
-       if(NULL == acl) {
+       if (NULL == acl) {
                D2DS_LOGE( "Failed to create ACL for %s", con->rsrc_uri);
                goto PVACL_ERROR;
        }
 
        ret= OCProvisionACL((void*) g_client, con->subject, acl, _provisioning_acl_cb);
-       if(OC_STACK_OK != ret) {
+       if (OC_STACK_OK != ret) {
                D2DS_LOGD( "OCProvisionACL API error: %d", ret);
                goto PVACL_ERROR;
        }
 
        ret = _wait_cb_ret(CALLBACK_TIMEOUT_MS * 2);
-       if(ret) {
+       if (ret) {
                D2DS_LOGE( "OCProvisionCredentials Faild = %d", errno);
                goto PVACL_ERROR;
        }
        /* display the ACL-provisioned result */
-       D2DS_LOGI(" -> Provisioned Selected ACL Successfully");
+       D2DS_LOGI(" Provisioned Selected ACL Successfully");
 
 PVACL_ERROR:
        if (acl) {
@@ -997,15 +1048,15 @@ static int _provisioning_acl(d2ds_service *service, gchar *target, gchar *subjec
                return D2DS_ERROR_OUT_OF_MEMORY;
        }
        g_thread_unref(con->thread);
-
-       //con->tid = g_timeout_add_seconds(CALLBACK_TIMEOUT_S + 1, _d2ds_timeout_cb, con);
-
+#ifdef TIMEOUT_USED
+       con->tid = g_timeout_add_seconds(CALLBACK_TIMEOUT_S + 1, _d2ds_timeout_cb, con);
+#endif
        return D2DS_ERROR_NONE;
 }
 
 static void _provision_cred_cb(void* ctx, int nOfRes, OCProvisionResult_t* arr, bool hasError)
 {
-       if(!hasError) {
+       if (!hasError) {
                D2DS_LOGD("Provision Credential SUCCEEDED - ctx: %s", (char*) ctx);
        } else {
                D2DS_LOGD("Provision Credential FAILED - ctx: %s", (char*) ctx);
@@ -1019,14 +1070,18 @@ static gpointer _cred_provisioning_func(gpointer data)
        OCStackResult ret = OC_STACK_OK;
        d2ds_req_cb_s *con = (d2ds_req_cb_s *)data;
 
-       if(!con->target ) {
-               D2DS_LOGE("Target device is NULL");
+       if (!con->dev1 ) {
+               D2DS_LOGE("dev1 is NULL");
+               return NULL;
+       }
+       if (!con->dev2) {
+               D2DS_LOGE("dev1 is NULL");
                return NULL;
        }
 
        g_client->g_doneCB = false;
 
-       D2DS_LOGI("   Provisioning Selected Pairwise Devices..");
+       D2DS_LOGI("Provisioning Selected Pairwise Devices..");
        OCStackResult rst = OCProvisionCredentials((void*) g_client,
                                                SYMMETRIC_PAIR_WISE_KEY, OWNER_PSK_LENGTH_128,
                                                con->dev1, con->dev2, _provision_cred_cb);
@@ -1042,7 +1097,7 @@ static gpointer _cred_provisioning_func(gpointer data)
        }
 
        /* display the pairwise-provisioned result */
-       D2DS_LOGI("   > Provisioned Selected Pairwise Devices");
+       D2DS_LOGI("Provisioned Selected Pairwise Devices");
 
        return 0;
 
@@ -1115,9 +1170,9 @@ static int _provisioning_cred(d2ds_service *service,
                return D2DS_ERROR_OUT_OF_MEMORY;
        }
        g_thread_unref(con->thread);
-
-       //con->tid = g_timeout_add_seconds(CALLBACK_TIMEOUT_S + 1, _d2ds_timeout_cb, con);
-
+#ifdef TIMEOUT_USED
+       con->tid = g_timeout_add_seconds(CALLBACK_TIMEOUT_S + 1, _d2ds_timeout_cb, con);
+#endif
        return D2DS_ERROR_NONE;
 }
 
@@ -1255,7 +1310,7 @@ int d2ds_request_disable(d2ds_service *service)
 {
        NOTUSED(service);
 
-       if(OC_STACK_OK != OCStop()) {
+       if (OC_STACK_OK != OCStop()) {
                D2DS_LOGE( "OCStack stop error");
        }