*/
static CABLEAdapter_t g_adapterType = ADAPTER_EMPTY;
+/**
+ * Variable to define current adapter type.
+ */
+static CABLEAdapter_t g_currentDeviceRole = ADAPTER_EMPTY;
+
#ifdef __WITH_DTLS__
static CADataType_t g_dataType = CA_REQUEST_DATA;
#endif
OIC_LOG(ERROR, CALEADAPTER_TAG, "g_adapterType is Empty");
}
+ if(dataType == CA_REQUEST_DATA && g_currentDeviceRole == ADAPTER_SERVER){
+ OIC_LOG(DEBUG, CALEADAPTER_TAG, "Request Message from server" );
+ dataType = CA_REQUEST_DATA_SERVER_INIT;
+ } else if (dataType == CA_RESPONSE_DATA && g_currentDeviceRole == ADAPTER_CLIENT) {
+ OIC_LOG(DEBUG, CALEADAPTER_TAG, "Response Message from client" );
+ dataType = CA_RESPONSE_DATA_CLIENT_INIT;
+ }
+
oc_mutex_lock(g_bleIsServerMutex);
if (ADAPTER_SERVER == g_adapterType ||
- (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_RESPONSE_DATA == dataType))
+ (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_RESPONSE_DATA == dataType) ||
+ (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_REQUEST_DATA_SERVER_INIT== dataType))
{
#ifdef __WITH_DTLS__
if (endpoint && endpoint->flags & CA_SECURE)
#else
result = CALEAdapterServerSendData(endpoint, data, dataLen);
#endif
+
+ if(g_currentDeviceRole == ADAPTER_EMPTY)
+ {
+ OIC_LOG(INFO, CALEADAPTER_TAG, "Setting current device role as server" );
+ g_currentDeviceRole = ADAPTER_SERVER;
+ }
+
if (CA_STATUS_OK != result)
{
oc_mutex_unlock(g_bleIsServerMutex);
}
else if (ADAPTER_CLIENT == g_adapterType ||
(ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_REQUEST_DATA == dataType) ||
- (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_RESPONSE_FOR_RES == dataType))
+ (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_RESPONSE_FOR_RES == dataType) ||
+ (ADAPTER_BOTH_CLIENT_SERVER == g_adapterType && CA_RESPONSE_DATA_CLIENT_INIT== dataType))
{
#ifdef __WITH_DTLS__
if (endpoint && endpoint->flags & CA_SECURE)
#else
result = CALEAdapterClientSendData(endpoint, data, dataLen);
#endif
+
+ if(g_currentDeviceRole == ADAPTER_EMPTY)
+ {
+ OIC_LOG(INFO, CALEADAPTER_TAG, "Setting current device role as client" );
+ g_currentDeviceRole = ADAPTER_CLIENT;
+ }
+
if (CA_STATUS_OK != result)
{
oc_mutex_unlock(g_bleIsServerMutex);