X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fconnectivity%2Fsrc%2Fcainterfacecontroller.c;h=525f79f605e9eaee7f3f1d9d90ea658f083c2865;hb=8229635f6d207516ccbbdf23b13be164e0fc1787;hp=b0ffc3fa61f500f89074426b53c2bbc2f77d1024;hpb=edcfc3d2329da7b914771c0dcff5f42c9b74fd93;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/src/cainterfacecontroller.c b/resource/csdk/connectivity/src/cainterfacecontroller.c old mode 100644 new mode 100755 index b0ffc3f..525f79f --- a/resource/csdk/connectivity/src/cainterfacecontroller.c +++ b/resource/csdk/connectivity/src/cainterfacecontroller.c @@ -35,6 +35,7 @@ #include "cathreadpool.h" #include "caipadapter.h" #include "cainterface.h" +#include "caipinterface.h" #include #ifdef RA_ADAPTER @@ -45,6 +46,10 @@ #include "catcpadapter.h" #endif +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) +#include "ca_adapter_net_ssl.h" +#endif + #define TAG "OIC_CA_INF_CTR" #define CA_MEMORY_ALLOC_CHECK(arg) {if (arg == NULL) \ @@ -86,6 +91,7 @@ static int CAGetAdapterIndex(CATransportAdapter_t cType) return index; } } + OIC_LOG_V(ERROR, TAG, "adapter info [%d]", g_numberOfAdapters); return -1; } @@ -160,6 +166,8 @@ static CAResult_t AddNetworkStateChangedCallback(CAAdapterStateChangedCB adapter callback->adapter = adapterCB; callback->conn = connCB; LL_APPEND(g_networkChangeCallbackList, callback); + OIC_LOG_V(INFO, TAG, "Added NetworkStateChanged Callback [%p]", callback); + return CA_STATUS_OK; } @@ -191,22 +199,6 @@ static CAResult_t RemoveNetworkStateChangedCallback(CAAdapterStateChangedCB adap return CA_STATUS_OK; } -/** - * Remove all network callback from the network callback list - */ -static void RemoveAllNetworkStateChangedCallback() -{ - OIC_LOG(DEBUG, TAG, "Remove All NetworkStateChanged Callback"); - - CANetworkCallback_t* callback = NULL; - LL_FOREACH(g_networkChangeCallbackList, callback) - { - OIC_LOG(DEBUG, TAG, "remove all callbacks"); - LL_DELETE(g_networkChangeCallbackList, callback); - OICFree(callback); - } -} - #ifdef RA_ADAPTER CAResult_t CASetAdapterRAInfo(const CARAInfo_t *caraInfo) { @@ -214,16 +206,17 @@ CAResult_t CASetAdapterRAInfo(const CARAInfo_t *caraInfo) } #endif -static void CAReceivedPacketCallback(const CASecureEndpoint_t *sep, - const void *data, uint32_t dataLen) +static CAResult_t CAReceivedPacketCallback(const CASecureEndpoint_t *sep, + const void *data, uint32_t dataLen) { if (g_networkPacketReceivedCallback != NULL) { - g_networkPacketReceivedCallback(sep, data, dataLen); + return g_networkPacketReceivedCallback(sep, data, dataLen); } else { - OIC_LOG(ERROR, TAG, "network packet received callback is NULL!"); + OIC_LOG(INFO, TAG, "network packet received callback is NULL!"); + return CA_STATUS_OK; } } @@ -235,6 +228,7 @@ static void CAAdapterChangedCallback(CATransportAdapter_t adapter, CANetworkStat { if (callback && callback->adapter) { + OIC_LOG_V(INFO, TAG, "IN application adapter changed callback [%p]", callback); if (CA_INTERFACE_UP == status) { callback->adapter(adapter, true); @@ -243,6 +237,7 @@ static void CAAdapterChangedCallback(CATransportAdapter_t adapter, CANetworkStat { callback->adapter(adapter, false); } + OIC_LOG_V(INFO, TAG, "OUT application adapter changed callback [%p]", callback); } } OIC_LOG_V(DEBUG, TAG, "[%d] adapter status is changed to [%d]", adapter, status); @@ -277,39 +272,71 @@ static void CAAdapterErrorHandleCallback(const CAEndpoint_t *endpoint, } } -void CAInitializeAdapters(ca_thread_pool_t handle) +void CAInitializeAdapters(ca_thread_pool_t handle, CATransportAdapter_t transportType) { - OIC_LOG(DEBUG, TAG, "initialize adapters.."); + OIC_LOG_V(DEBUG, TAG, "initialize adapters %d", transportType); + + // Initialize ssl adapter. +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) + if (CA_STATUS_OK != CAinitSslAdapter()) + { + OIC_LOG(ERROR, TAG, "Failed to init SSL adapter"); + } +#endif // Initialize adapters and register callback. #ifdef IP_ADAPTER - CAInitializeIP(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - CAAdapterErrorHandleCallback, handle); + if ((transportType & CA_ADAPTER_IP) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeIP(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + CAAdapterErrorHandleCallback, handle); + } #endif /* IP_ADAPTER */ #ifdef EDR_ADAPTER - CAInitializeEDR(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + if ((transportType & CA_ADAPTER_RFCOMM_BTEDR) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeEDR(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + } #endif /* EDR_ADAPTER */ #ifdef LE_ADAPTER - CAInitializeLE(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + if ((transportType & CA_ADAPTER_GATT_BTLE) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeLE(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + } #endif /* LE_ADAPTER */ #ifdef RA_ADAPTER - CAInitializeRA(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - handle); + if ((transportType & CA_ADAPTER_REMOTE_ACCESS) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeRA(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + handle); + } #endif /* RA_ADAPTER */ #ifdef TCP_ADAPTER - CAInitializeTCP(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + if ((transportType & CA_ADAPTER_TCP) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeTCP(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + CAConnectionChangedCallback, CAAdapterErrorHandleCallback, handle); + } #endif /* TCP_ADAPTER */ #ifdef NFC_ADAPTER - CAInitializeNFC(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, - CAAdapterErrorHandleCallback, handle); + if ((transportType & CA_ADAPTER_NFC) || (CA_DEFAULT_ADAPTER == transportType) + || (transportType == CA_ALL_ADAPTERS)) + { + CAInitializeNFC(CARegisterCallback, CAReceivedPacketCallback, CAAdapterChangedCallback, + CAAdapterErrorHandleCallback, handle); + } #endif /* NFC_ADAPTER */ } @@ -423,12 +450,14 @@ CAResult_t CAGetNetworkInfo(CAEndpoint_t **info, uint32_t *size) resSize += tempSize[index]; } +#ifndef __TIZENRT__ OIC_LOG_V(DEBUG, TAG, "%" PRIu32 " adapter network info size is %" PRIu32 " res:%d", index, tempSize[index], res); +#endif } } @@ -532,7 +561,7 @@ CAResult_t CASendUnicastData(const CAEndpoint_t *endpoint, const void *data, uin if (-1 == index) { - OIC_LOG(ERROR, TAG, "unknown transport type!"); + OIC_LOG_V(ERROR, TAG, "unknown transport type[%d]", connType); return CA_STATUS_INVALID_PARAM; } @@ -759,6 +788,10 @@ void CATerminateAdapters() } } +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) + CAdeinitSslAdapter(); +#endif + OICFree(g_adapterHandler); g_adapterHandler = NULL; g_numberOfAdapters = 0; @@ -803,3 +836,33 @@ CAResult_t CAReadData() } #endif +#ifdef IP_ADAPTER +CAResult_t CASetMulticastTTL(size_t ttl) +{ + return CAIPSetMulticastTTL(ttl); +} + +CAResult_t CAGetMulticastTTL(size_t *ttl) +{ + return CAIPGetMulticastTTL(ttl); +} +#endif + +#ifdef TCP_ADAPTER +CAResult_t CADisconnectSession(const CAEndpoint_t *endpoint) +{ + return CATCPDisconnectSession(endpoint); +} +#endif + +#ifdef LE_ADAPTER +void CAStartGattServer() +{ + CALEStartGattServer(); +} + +void CAStopGattServer() +{ + CALEStopGattServer(); +} +#endif