When notification message is sent thru cloud, consumer cannot receive.
It worked well from initial development environment
but others reported it does not worked well in some environment.
Initially, to call NSSetRemoteServerAddress(char *serverAddress)
resolves issue by testing but, logic perspective, this is not solution.
MSCacheSubData has messageObserverID, syncObserverID for local and
remote consumer respectively and this structure brings fundamental
complexity inspite they are not handled separately.
This patch remove remote set for these observerIDs member from struct.
Change-Id: I7e5e52487d71cba0cb3c9772fd0436d8e323285e
Signed-off-by: jake <jaehong2.lee@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/17959
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: JungYong KIM <jyong2.kim@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
char id[NS_UUID_STRING_SIZE];\r
int syncObId; // sync resource observer ID for local consumer\r
int messageObId; // message resource observer ID for local consumer\r
- int remote_syncObId; //sync observer ID subscribed through remote server\r
- int remote_messageObId; //message observer ID subscribed through remote server\r
bool isWhite; // access state -> True: allowed / False: blocked\r
\r
} NSCacheSubData;\r
}
NS_LOG_V(INFO_PRIVATE, "Remote server address: %s", serverAddress);
-
- NS_LOG(DEBUG, "Delete remote server info");
- NSDeleteRemoteServerAddress(serverAddress);
-
pthread_mutex_unlock(&nsInitMutex);
NS_LOG(DEBUG, "NSProviderDisableRemoteService - OUT");
return NS_OK;
NS_LOG_V(INFO_PRIVATE, "currData_ID = %s", itData->id);\r
NS_LOG_V(DEBUG, "currData_MsgObID = %d", itData->messageObId);\r
NS_LOG_V(DEBUG, "currData_SyncObID = %d", itData->syncObId);\r
- NS_LOG_V(DEBUG, "currData_Cloud_MsgObID = %d", itData->remote_messageObId);\r
- NS_LOG_V(DEBUG, "currData_Cloud_SyncObID = %d", itData->remote_syncObId);\r
NS_LOG_V(DEBUG, "currData_IsWhite = %d", itData->isWhite);\r
\r
NS_LOG_V(DEBUG, "update state = %d", state);\r
NS_LOG_V(INFO_PRIVATE, "currData_ID = %s", itData->id);\r
NS_LOG_V(DEBUG, "currData_MsgObID = %d", itData->messageObId);\r
NS_LOG_V(DEBUG, "currData_SyncObID = %d", itData->syncObId);\r
- NS_LOG_V(DEBUG, "currData_Cloud_MsgObID = %d", itData->remote_messageObId);\r
- NS_LOG_V(DEBUG, "currData_Cloud_SyncObID = %d", itData->remote_syncObId);\r
NS_LOG_V(DEBUG, "currData_IsWhite = %d", itData->isWhite);\r
\r
NS_LOG_V(INFO_PRIVATE, "subData_ID = %s", subData->id);\r
NS_LOG_V(DEBUG, "subData_MsgObID = %d", subData->messageObId);\r
NS_LOG_V(DEBUG, "subData_SyncObID = %d", subData->syncObId);\r
- NS_LOG_V(DEBUG, "subData_Cloud_MsgObID = %d", subData->remote_messageObId);\r
- NS_LOG_V(DEBUG, "subData_Cloud_SyncObID = %d", subData->remote_syncObId);\r
NS_LOG_V(DEBUG, "subData_IsWhite = %d", subData->isWhite);\r
\r
if (subData->messageObId != 0)\r
itData->syncObId = subData->syncObId;\r
}\r
\r
- if (subData->remote_messageObId != 0)\r
- {\r
- itData->remote_messageObId = subData->remote_messageObId;\r
- }\r
-\r
- if (subData->remote_syncObId != 0)\r
- {\r
- itData->remote_syncObId = subData->remote_syncObId;\r
- NS_LOG_V(DEBUG, "sync id cached: %d", itData->remote_syncObId);\r
- }\r
-\r
NS_LOG(DEBUG, "Update Data - OUT");\r
OICFree(subData);\r
OICFree(newObj);\r
\r
bool NSIsSameObId(NSCacheSubData * data, OCObservationId id)\r
{\r
- if (id == data->messageObId || id == data->syncObId || id == data->remote_messageObId ||\r
- id == data->remote_syncObId)\r
- {\r
- return true;\r
- }\r
-\r
- return false;\r
+ return (id == data->messageObId || id == data->syncObId);\r
}\r
\r
bool NSProviderCompareIdCacheData(NSCacheType type, void * data, const char * id)\r
NSCacheSubData * subData = (NSCacheSubData *) it->data;
NS_LOG_V(INFO_PRIVATE, "message subData->id = %s", subData->id);
NS_LOG_V(DEBUG, "subData->messageId = %d", subData->messageObId);
- NS_LOG_V(DEBUG, "subData->cloud_messageId = %d", subData->remote_messageObId);
NS_LOG_V(DEBUG, "subData->syncId = %d", subData->syncObId);
- NS_LOG_V(DEBUG, "subData->cloud_syncId = %d", subData->remote_syncObId);
NS_LOG_V(DEBUG, "subData->isWhite = %d", subData->isWhite);
if (subData->isWhite)
obArray[obCount++] = subData->messageObId;
}
}
-
-#if (defined WITH_CLOUD)
- if (subData->remote_messageObId != 0)
- {
- if (msg->topic && (msg->topic)[0] != '\0')
- {
- NS_LOG_V(DEBUG, "this is topic message via remote server: %s", msg->topic);
- if (NSProviderIsTopicSubScribed(consumerTopicList->head, subData->id, msg->topic))
- {
- obArray[obCount++] = subData->remote_messageObId;
- }
- }
- else
- {
- obArray[obCount++] = subData->remote_messageObId;
- }
- }
-#endif
-
}
it = it->next;
}
NSCacheSubData * subData = (NSCacheSubData *) it->data;
NS_LOG_V(INFO_PRIVATE, "sync subData->id = %s", subData->id);
NS_LOG_V(DEBUG, "subData->messageId = %d", subData->messageObId);
- NS_LOG_V(DEBUG, "subData->cloud_messageId = %d", subData->remote_messageObId);
NS_LOG_V(DEBUG, "subData->syncId = %d", subData->syncObId);
- NS_LOG_V(DEBUG, "subData->cloud_syncId = %d", subData->remote_syncObId);
NS_LOG_V(DEBUG, "subData->isWhite = %d", subData->isWhite);
if (subData->isWhite)
{
obArray[obCount++] = subData->syncObId;
}
-
-#if (defined WITH_CLOUD)
- if (subData->remote_syncObId != 0)
- {
- obArray[obCount++] = subData->remote_syncObId;
- }
-#endif
}
it = it->next;
}
\r
NS_LOG_V(INFO_PRIVATE, "Consumer Address: %s", entityHandlerRequest->devAddr.addr);\r
\r
- subData->remote_messageObId = subData->messageObId = 0;\r
-\r
- bool iSRemoteServer = false;\r
-\r
-#if(defined WITH_CLOUD)\r
- iSRemoteServer = NSIsRemoteServerAddress(entityHandlerRequest->devAddr.addr);\r
- if (iSRemoteServer)\r
- {\r
- NS_LOG(DEBUG, "Requested by remote server");\r
- subData->remote_messageObId = entityHandlerRequest->obsInfo.obsId;\r
- NS_LOG_V(DEBUG, "SubList message observation ID = [%d]", subData->remote_messageObId);\r
- }\r
-#endif\r
+ subData->messageObId = 0;\r
\r
- if (!iSRemoteServer)\r
- {\r
- NS_LOG(DEBUG, "Requested by local consumer");\r
- subData->messageObId = entityHandlerRequest->obsInfo.obsId;\r
- NS_LOG_V(DEBUG, "SubList message observation ID = [%d]", subData->messageObId);\r
- }\r
+ NS_LOG(DEBUG, "Requested by local consumer");\r
+ subData->messageObId = entityHandlerRequest->obsInfo.obsId;\r
+ NS_LOG_V(DEBUG, "SubList message observation ID = [%d]", subData->messageObId);\r
\r
subData->isWhite = false;\r
- subData->remote_syncObId = 0;\r
subData->syncObId = 0;\r
\r
element->data = (void*) subData;\r
\r
NS_LOG_V(INFO_PRIVATE, "Consumer Address: %s", entityHandlerRequest->devAddr.addr);\r
\r
- subData->remote_syncObId = subData->syncObId = 0;\r
- bool isRemoteServer = false;\r
+ subData->syncObId = 0;\r
\r
-#if (defined WITH_CLOUD)\r
- isRemoteServer = NSIsRemoteServerAddress(entityHandlerRequest->devAddr.addr);\r
- if (isRemoteServer)\r
- {\r
- NS_LOG(DEBUG, "Requested by remote server");\r
- subData->remote_syncObId = entityHandlerRequest->obsInfo.obsId;\r
- NS_LOG_V(DEBUG, "SubList sync observation ID = [%d]", subData->remote_syncObId);\r
- }\r
-#endif\r
+ NS_LOG(DEBUG, "Requested by local consumer");\r
+ subData->syncObId = entityHandlerRequest->obsInfo.obsId;\r
+ NS_LOG_V(DEBUG, "SubList sync observation ID = [%d]", subData->syncObId);\r
\r
- if (!isRemoteServer)\r
- {\r
- NS_LOG(DEBUG, "Requested by local consumer");\r
- subData->syncObId = entityHandlerRequest->obsInfo.obsId;\r
- NS_LOG_V(DEBUG, "SubList sync observation ID = [%d]", subData->syncObId);\r
- }\r
\r
subData->isWhite = false;\r
subData->messageObId = 0;\r
- subData->remote_messageObId = 0;\r
\r
element->data = (void*) subData;\r
element->next = NULL;\r
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
#include "NSProviderSystem.h"\r
\r
-#if (defined WITH_CLOUD)\r
-#define MAX_SERVER_ADDRESS 32\r
-static char NSRemoteServerAddress[MAX_SERVER_ADDRESS] = {0,};\r
-#endif\r
-\r
#ifdef WITH_MQ\r
static NSMQServerInfo * mqServerInfo = NULL;\r
#endif\r
return NSProviderConnectionState;\r
}\r
\r
-#if (defined WITH_CLOUD)\r
-void NSSetRemoteServerAddress(char *serverAddress)\r
-{\r
-\r
- OICStrcpy(NSRemoteServerAddress, MAX_SERVER_ADDRESS, serverAddress);\r
-}\r
-\r
-void NSDeleteRemoteServerAddress(char *serverAddress)\r
-{\r
- NS_LOG_V(INFO_PRIVATE, "Delete cloud address: %s", serverAddress);\r
-\r
- memset(NSRemoteServerAddress, 0, MAX_SERVER_ADDRESS);\r
-}\r
-\r
-bool NSIsRemoteServerAddress(char *serverAddress)\r
-{\r
- NS_LOG_V(INFO_PRIVATE, "Check server address: %s", serverAddress);\r
-\r
- if (serverAddress != NULL)\r
- {\r
- return strstr(NSRemoteServerAddress, serverAddress);\r
- }\r
-\r
- return false;\r
-}\r
-#endif\r
-\r
void NSInitProviderInfo(const char * userInfo)\r
{\r
NS_LOG(DEBUG, "NSInitProviderInfo");\r
NSMQServerInfo * NSGetMQServerInfo();
#endif
-#if (defined WITH_CLOUD)
-void NSSetRemoteServerAddress(char *serverAddress);
-void NSDeleteRemoteServerAddress(char *serverAddress);
-bool NSIsRemoteServerAddress(char *serverAddress);
-#endif
-
#endif /* _NS_PROVIDER_SYSTEM__H_ */
{
obArray[obCount++] = subData->messageObId;
}
-
-#if (defined WITH_CLOUD)
- if (subData->remote_messageObId != 0)
- {
- obArray[obCount++] = subData->remote_messageObId;
- }
-#endif
}
it = it->next;