- payload = (OCRepPayload *)clientResponse->payload;
-
- char * providerId = NULL;
- char * messageUri = NULL;
- char * syncUri = NULL;
- int64_t accepter = 0;
- OCDevAddr * addr = NULL;
-
- NS_LOG(DEBUG, "get information of accepter");
- bool getResult = OCRepPayloadGetPropInt(payload, NS_ATTRIBUTE_POLICY, & accepter);
- NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
-
- NS_LOG(DEBUG, "get provider ID");
- getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID, & providerId);
- NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
-
- NS_LOG(DEBUG, "get message URI");
- getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_MESSAGE, & messageUri);
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(getResult == true ? (void *) 1 : NULL, NULL,
- NSGetProviderPostClean(providerId, messageUri, syncUri, addr));
-
- NS_LOG(DEBUG, "get sync URI");
- getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_SYNC, & syncUri);
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(getResult == true ? (void *) 1 : NULL, NULL,
- NSGetProviderPostClean(providerId, messageUri, syncUri, addr));
-
- NS_LOG(DEBUG, "get provider address");
- addr = (OCDevAddr *)OICMalloc(sizeof(OCDevAddr));
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(addr, NULL,
- NSGetProviderPostClean(providerId, messageUri, syncUri, addr));
-
- memcpy(addr, clientResponse->addr, sizeof(OCDevAddr));
-
- NSProvider_internal * newProvider
- = (NSProvider_internal *)OICMalloc(sizeof(NSProvider_internal));
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(newProvider, NULL,
- NSGetProviderPostClean(providerId, messageUri, syncUri, addr));
-
- OICStrcpy(newProvider->providerId, sizeof(char) * NS_DEVICE_ID_LENGTH, providerId);
- NSOICFree(providerId);
- newProvider->messageUri = messageUri;
- newProvider->syncUri = syncUri;
- newProvider->accessPolicy = (NSAccessPolicy)accepter;
- newProvider->i_addr = addr;
- newProvider->i_messageHandle = NULL;
- newProvider->i_syncHandle = NULL;
-
- return newProvider;