NS_LOG_V(DEBUG, "subscribe query : %s", query);
OCStackResult ret = NSInvokeRequest(&(connections->messageHandle),
OC_REST_OBSERVE, connections->addr, query, NULL,
- NSConsumerMessageListener, NULL, type);
+ NSConsumerMessageListener, NULL, NULL, type);
NS_VERIFY_STACK_SUCCESS_WITH_POST_CLEANING(NSOCResultToSuccess(ret),
NS_ERROR, NSUpdateObserveResult(provider_internal, query));
NSOICFree(query);
NS_LOG_V(DEBUG, "subscribe query : %s", query);
ret = NSInvokeRequest(&(connections->syncHandle),
OC_REST_OBSERVE, connections->addr, query, NULL,
- NSConsumerSyncInfoListener, NULL, type);
+ NSConsumerSyncInfoListener, NULL, NULL, type);
NS_VERIFY_STACK_SUCCESS_WITH_POST_CLEANING(NSOCResultToSuccess(ret),
NS_ERROR, NSUpdateObserveResult(provider_internal, query));
NSOICFree(query);
NS_LOG(DEBUG, "get state");
int64_t state = 0;
getResult = OCRepPayloadGetPropInt(payload, NS_ATTRIBUTE_STATE, & state);
- NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(getResult == true ? (void *) 1 : NULL,
+ NULL, NSOICFree(pId));
NS_LOG(DEBUG, "create NSSyncInfo");
NSSyncInfo * retSync = NSCreateSyncInfo_consumer(id, pId, (NSSyncType)state);
+ NSOICFree(pId);
NS_VERIFY_NOT_NULL(retSync, NULL);
NS_LOG_V(DEBUG, "Sync ID : %lld", (long long int)retSync->messageId);
OCStackResult ret = NSInvokeRequest(NULL, OC_REST_POST, addr,
uri, (OCPayload*)payload,
- NSConsumerCheckPostResult, NULL, type);
+ NSConsumerCheckPostResult, NULL, NULL, type);
NSOICFree(uri);
return ret;
NS_VERIFY_NOT_NULL_V(task->taskData);
NS_LOG(DEBUG, "Request Subscribe");
NSResult ret = NSConsumerSubscribeProvider((NSProvider *)task->taskData);
+ NSRemoveProvider_internal((void *) task->taskData);
NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *)1 : NULL);
}
else if (task->taskType == TASK_SEND_SYNCINFO)
{
- NS_VERIFY_NOT_NULL_V(task->taskData);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(task->taskData, NSOICFree(task));
NSSyncInfo_internal * syncInfo = (NSSyncInfo_internal *)task->taskData;
NSProviderConnectionInfo * info = syncInfo->connection;
else if (task->taskType == TASK_CONSUMER_REQ_SUBSCRIBE_CANCEL)
{
NSProvider_internal * provider = (NSProvider_internal *)task->taskData;
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(provider,
+ {
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
NSProviderConnectionInfo * connections = provider->connection;
while(connections)
connections->isSubscribing = false;
connections = connections->next;
}
+
+ NSRemoveProvider_internal(provider);
}
else if (task->taskType == TASK_CONSUMER_REQ_TOPIC_LIST)
{
- NSProvider_internal * provider = (NSProvider_internal *)task->taskData;
+ NSProvider_internal * provider = NSCopyProvider_internal(task->taskData);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(provider,
+ {
+ NSRemoveProvider_internal((void *) task->taskData);
+ NSOICFree(task);
+ });
+ NSRemoveProvider_internal((NSProvider_internal *)task->taskData);
NSProviderConnectionInfo * connections = provider->connection;
- NS_VERIFY_NOT_NULL_V(connections);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(connections,
+ {
+ NSRemoveProvider_internal((void *) provider);
+ NSRemoveProvider_internal((void *) task->taskData);
+ NSOICFree(task);
+ });
char * topicUri = OICStrdup(provider->topicUri);
- NS_VERIFY_NOT_NULL_V(topicUri);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(topicUri,
+ {
+ NSRemoveProvider_internal((void *) provider);
+ NSRemoveProvider_internal((void *) task->taskData);
+ NSOICFree(task);
+ });
OCConnectivityType type = CT_DEFAULT;
if (connections->addr->adapter == OC_ADAPTER_TCP)
NS_LOG(DEBUG, "get topic query");
char * query = NSMakeRequestUriWithConsumerId(topicUri);
-
- NS_VERIFY_NOT_NULL_V(query);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(query,
+ {
+ NSRemoveProvider_internal((void *) provider);
+ NSRemoveProvider_internal((void *) task->taskData);
+ NSOICFree(task);
+ });
NS_LOG_V(DEBUG, "topic query : %s", query);
OCStackResult ret = NSInvokeRequest(NULL, OC_REST_GET, connections->addr,
- query, NULL, NSIntrospectTopic, (void *) provider, type);
- NS_VERIFY_STACK_SUCCESS_V(NSOCResultToSuccess(ret));
+ query, NULL, NSIntrospectTopic, (void *) provider,
+ NSRemoveProvider_internal, type);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(NSOCResultToSuccess(ret) == true ? (void *) 1 : NULL,
+ {
+ NSRemoveProvider_internal((void *) provider);
+ NSRemoveProvider_internal((void *) task->taskData);
+ NSOICFree(task);
+ });
NSOICFree(query);
NSOICFree(topicUri);
else if (task->taskType == TASK_CONSUMER_SELECT_TOPIC_LIST)
{
NSProvider_internal * provider = (NSProvider_internal *)task->taskData;
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(provider,
+ {
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
NSProviderConnectionInfo * connections = provider->connection;
- NS_VERIFY_NOT_NULL_V(connections);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(connections,
+ {
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
OCRepPayload * payload = OCRepPayloadCreate();
- NS_VERIFY_NOT_NULL_V(payload);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(payload,
+ {
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
NSTopicLL * topicLL = provider->topicLL;
NSTopicLL * iter = topicLL;
if (topicLLSize > 0)
{
topicPayload = (OCRepPayload **) OICMalloc(sizeof(OCRepPayload *)*topicLLSize);
- NS_VERIFY_NOT_NULL_V(topicPayload);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(topicPayload,
+ {
+ OCRepPayloadDestroy(payload);
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
while (iter || iterSize < topicLLSize)
{
}
char * topicUri = OICStrdup(provider->topicUri);
- NS_VERIFY_NOT_NULL_V(topicUri);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(topicUri,
+ {
+ OCRepPayloadDestroy(payload);
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
OCConnectivityType type = CT_DEFAULT;
if (connections->addr->adapter == OC_ADAPTER_TCP)
NS_LOG(DEBUG, "get topic query");
char * query = NULL;
query = NSMakeRequestUriWithConsumerId(topicUri);
- NS_VERIFY_NOT_NULL_V(query);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(query,
+ {
+ NSOICFree(topicUri);
+ OCRepPayloadDestroy(payload);
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
NS_LOG_V(DEBUG, "topic query : %s", query);
OCStackResult ret = NSInvokeRequest(NULL, OC_REST_POST, connections->addr,
- query, (OCPayload*)payload, NSConsumerCheckPostResult, NULL, type);
- NS_VERIFY_STACK_SUCCESS_V(NSOCResultToSuccess(ret));
+ query, (OCPayload*)payload, NSConsumerCheckPostResult,
+ NULL, NULL, type);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(
+ NSOCResultToSuccess(ret) == true ? (void *) 1 : NULL,
+ {
+ NSOICFree(query);
+ NSOICFree(topicUri);
+ NSRemoveProvider_internal(provider);
+ NSOICFree(task);
+ });
+ NSRemoveProvider_internal(provider);
NSOICFree(query);
NSOICFree(topicUri);
}
{
(void) handle;
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(clientResponse, OC_STACK_KEEP_TRANSACTION,
- NSRemoveProvider_internal((NSProvider_internal *) ctx));
- NS_VERIFY_STACK_SUCCESS_WITH_POST_CLEANING(NSOCResultToSuccess(clientResponse->result),
- OC_STACK_KEEP_TRANSACTION, NSRemoveProvider_internal((NSProvider_internal *) ctx));
+ NS_VERIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
+ NS_VERIFY_STACK_SUCCESS(NSOCResultToSuccess(clientResponse->result),
+ OC_STACK_KEEP_TRANSACTION)
NS_LOG_V(DEBUG, "GET response income : %s:%d",
clientResponse->devAddr.addr, clientResponse->devAddr.port);
NSTopicLL * newTopicLL = NSGetTopicLL(clientResponse);
- NSProvider_internal * provider = (NSProvider_internal *) ctx;
+ NSProvider_internal * provider = NSCopyProvider_internal((NSProvider_internal *) ctx);
+ NS_VERIFY_NOT_NULL(provider, OC_STACK_KEEP_TRANSACTION);
+ NSRemoveTopicLL(provider->topicLL);
provider->topicLL = NSCopyTopicLL(newTopicLL);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(provider->topicLL, OC_STACK_KEEP_TRANSACTION,
+ NSRemoveProvider_internal((void *) provider));
NS_LOG(DEBUG, "build NSTask");
NSTask * task = NSMakeTask(TASK_CONSUMER_RECV_TOPIC_LIST, (void *) provider);