X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=resource%2Fcsdk%2Fconnectivity%2Futil%2Fsrc%2Fcautilinterface.c;h=74b8b459d3a0e05fd6005cd2e6a1592d1ff3d4b7;hb=b9f147a837d6947528ac9440d2d39fd47a68ed5f;hp=8d64dbe0cd80bbab98b36e3f2a69a9c5fffcaf19;hpb=eade4560ff85f569db98da502a26ab603592682f;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/util/src/cautilinterface.c b/resource/csdk/connectivity/util/src/cautilinterface.c index 8d64dbe..74b8b45 100644 --- a/resource/csdk/connectivity/util/src/cautilinterface.c +++ b/resource/csdk/connectivity/util/src/cautilinterface.c @@ -24,140 +24,215 @@ #include "cainterfacecontroller.h" #include "cacommon.h" #include "logger.h" - +#include "caremotehandler.h" +#ifdef TCP_ADAPTER +#include "catcpadapter.h" +#endif #define TAG "OIC_CA_COMMON_UTILS" -CAResult_t CARegisterNetworkMonitorHandler(CAAdapterStateChangedCB adapterStateCB, - CAConnectionStateChangedCB connStateCB) +CAResult_t CARegisterNetworkMonitorHandler(CAAdapterStateChangedCB adapterStateCB, CAConnectionStateChangedCB connStateCB) { - OIC_LOG(DEBUG, TAG, "CARegisterNetworkMonitorHandler"); + OIC_LOG(DEBUG, TAG, "CARegisterNetworkMonitorHandler"); - CASetNetworkMonitorCallbacks(adapterStateCB, connStateCB); - return CA_STATUS_OK; + CASetNetworkMonitorCallbacks(adapterStateCB, connStateCB); + return CA_STATUS_OK; +} + +CAResult_t CAUnregisterNetworkMonitorHandler(CAAdapterStateChangedCB adapterStateCB, CAConnectionStateChangedCB connStateCB) +{ + OIC_LOG(DEBUG, TAG, "CAUnregisterNetworkMonitorHandler"); + + return CAUnsetNetworkMonitorCallbacks(adapterStateCB, connStateCB); } CAResult_t CASetAutoConnectionDeviceInfo(const char *address) { - OIC_LOG(DEBUG, TAG, "CASetAutoConnectionDeviceInfo"); + OIC_LOG(DEBUG, TAG, "CASetAutoConnectionDeviceInfo"); -#if defined(__ANDROID__) && defined(LE_ADAPTER) - return CASetLEClientAutoConnectionDeviceInfo(address); +#if (defined(__ANDROID__) || defined(__APPLE__)) && defined(LE_ADAPTER) + return CASetLEClientAutoConnectionDeviceInfo(address); #else - (void)address; - return CA_NOT_SUPPORTED; + (void)address; + return CA_NOT_SUPPORTED; #endif } CAResult_t CAUnsetAutoConnectionDeviceInfo(const char *address) { - OIC_LOG(DEBUG, TAG, "CAUnsetAutoConnectionDeviceInfo"); + OIC_LOG(DEBUG, TAG, "CAUnsetAutoConnectionDeviceInfo"); -#if defined(__ANDROID__) && defined(LE_ADAPTER) - return CAUnsetLEClientAutoConnectionDeviceInfo(address); +#if (defined(__ANDROID__) || defined(__APPLE__)) && defined(LE_ADAPTER) + return CAUnsetLEClientAutoConnectionDeviceInfo(address); #else - (void)address; - return CA_NOT_SUPPORTED; -#endif -} - -CAResult_t CASetPortNumberToAssign(CATransportAdapter_t adapter, - CATransportFlags_t flag, uint16_t port) -{ - uint16_t *targetPort = 0; - - if (CA_ADAPTER_IP & adapter) - { - if (CA_SECURE & flag) - { - if (CA_IPV6 & flag) - { - targetPort = &caglobals.ports.udp.u6s; - } - else if (CA_IPV4 & flag) - { - targetPort = &caglobals.ports.udp.u4s; - } - } - else - { - if (CA_IPV6 & flag) - { - targetPort = &caglobals.ports.udp.u6; - } - else if (CA_IPV4 & flag) - { - targetPort = &caglobals.ports.udp.u4; - } - } - } + (void)address; + return CA_NOT_SUPPORTED; +#endif +} + +#ifdef __APPLE__ + +CAResult_t CAUtilClientInitialize() +{ + OIC_LOG(DEBUG, TAG, "CAUtilClientInitialize"); + + CAResult_t res = CA_STATUS_OK; +#ifdef LE_ADAPTER + if (CA_STATUS_OK != CAManagerLEClientInitialize()) { + OIC_LOG(ERROR, TAG, "CAManagerLEClientInitialize has failed"); + res = CA_STATUS_FAILED; + } +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + res = CA_NOT_SUPPORTED; +#endif + + return res; +} + +CAResult_t CAUtilClientTerminate() +{ + OIC_LOG(DEBUG, TAG, "CAUtilClientTerminate"); +#ifdef LE_ADAPTER + return CAManagerLEClientTerminate(); +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilStopLEScan() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStopLEScan"); +#ifdef LE_ADAPTER + CAManagerLEStopScan(); + return CA_STATUS_OK; +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilStartLEScan() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStartLEScan"); +#ifdef LE_ADAPTER + CAManagerLEStartScan(); + return CA_STATUS_OK; +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilClientDisconnect() +{ + OIC_LOG(DEBUG, TAG, "CAUtilClientDisconnect"); +#ifdef LE_ADAPTER + CAManagerLEDisconnect(); + return CA_STATUS_OK; +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +#endif + +CAResult_t CASetPortNumberToAssign(CATransportAdapter_t adapter, CATransportFlags_t flag, uint16_t port) +{ + uint16_t *targetPort = 0; + + if (CA_ADAPTER_IP & adapter) { + if (CA_SECURE & flag) { + if (CA_IPV6 & flag) { + targetPort = &caglobals.ports.udp.u6s; + } else if (CA_IPV4 & flag) { + targetPort = &caglobals.ports.udp.u4s; + } + } else { + if (CA_IPV6 & flag) { + targetPort = &caglobals.ports.udp.u6; + } else if (CA_IPV4 & flag) { + targetPort = &caglobals.ports.udp.u4; + } + } + } #ifdef TCP_ADAPTER - if (CA_ADAPTER_TCP & adapter) - { - if (CA_IPV6 & flag) - { - targetPort = &caglobals.ports.tcp.u6; - } - else if (CA_IPV4 & flag) - { - targetPort = &caglobals.ports.tcp.u4; - } - } + if (CA_ADAPTER_TCP & adapter) { + if (CA_IPV6 & flag) { + targetPort = &caglobals.ports.tcp.u6; + } else if (CA_IPV4 & flag) { + targetPort = &caglobals.ports.tcp.u4; + } + } #endif - if (targetPort) - { - *targetPort = port; - return CA_STATUS_OK; - } + if (targetPort) { + *targetPort = port; + return CA_STATUS_OK; + } - return CA_NOT_SUPPORTED; + return CA_NOT_SUPPORTED; } uint16_t CAGetAssignedPortNumber(CATransportAdapter_t adapter, CATransportFlags_t flag) { - OIC_LOG(DEBUG, TAG, "CAGetAssignedPortNumber"); - - if (CA_ADAPTER_IP & adapter) - { - if (CA_SECURE & flag) - { - if (CA_IPV6 & flag) - { - return caglobals.ip.u6s.port; - } - else if (CA_IPV4 & flag) - { - return caglobals.ip.u4s.port; - } - } - else - { - if (CA_IPV6 & flag) - { - return caglobals.ip.u6.port; - } - else if (CA_IPV4 & flag) - { - return caglobals.ip.u4.port; - } - } - } + OIC_LOG(DEBUG, TAG, "CAGetAssignedPortNumber"); + + if (CA_ADAPTER_IP & adapter) { + if (CA_SECURE & flag) { + if (CA_IPV6 & flag) { + return caglobals.ip.u6s.port; + } else if (CA_IPV4 & flag) { + return caglobals.ip.u4s.port; + } + } else { + if (CA_IPV6 & flag) { + return caglobals.ip.u6.port; + } else if (CA_IPV4 & flag) { + return caglobals.ip.u4.port; + } + } + } #ifdef TCP_ADAPTER - if (CA_ADAPTER_TCP & adapter) - { - if (CA_IPV6 & flag) - { - return caglobals.tcp.ipv6.port; - } - else if (CA_IPV4 & flag) - { - return caglobals.tcp.ipv4.port; - } - } + if (CA_ADAPTER_TCP & adapter) { + if (CA_SECURE & flag) { + if (CA_IPV6 & flag) { + return caglobals.tcp.ipv6s.port; + } else if (CA_IPV4 & flag) { + return caglobals.tcp.ipv4s.port; + } + } else { + if (CA_IPV6 & flag) { + return caglobals.tcp.ipv6.port; + } else if (CA_IPV4 & flag) { + return caglobals.tcp.ipv4.port; + } + } + } #endif - return 0; + return 0; } +#if defined(__TIZEN__) && defined(LE_ADAPTER) && defined(BLE_CUSTOM_ADVERTISE) +CAResult_t CASetAdvertisementData(const char* data, int length) +{ + return CAManagerLEServerSetAdvertisementData(data, length); +} +void CASetAdvertisementDataGetter(CAAdvertisementDataGetterCB getter) +{ + CAManagerLEServerSetAdvertisementDataGetter(getter); +} +void CASetAutoAdvertisement(bool autoAdvertisement) +{ + CAManagerLEServerSetAutoAdvertisement(autoAdvertisement); +} +CAResult_t CASetScanResponseData(const char* data, int length) +{ + return CAManagerLEServerSetScanResponseData(data, length); +} +#endif + #ifdef __ANDROID__ /** * initialize client connection manager @@ -167,25 +242,29 @@ uint16_t CAGetAssignedPortNumber(CATransportAdapter_t adapter, CATransportFlags_ */ CAResult_t CAUtilClientInitialize(JNIEnv *env, JavaVM *jvm, jobject context) { - OIC_LOG(DEBUG, TAG, "CAUtilClientInitialize"); + OIC_LOG(DEBUG, TAG, "CAUtilClientInitialize"); - CAResult_t res = CA_STATUS_OK; + CAResult_t res = CA_STATUS_OK; #ifdef LE_ADAPTER - if (CA_STATUS_OK != CAManagerLEClientInitialize(env, jvm, context)) - { - OIC_LOG(ERROR, TAG, "CAManagerLEClientInitialize has failed"); - res = CA_STATUS_FAILED; - } + if (CA_STATUS_OK != CAManagerLEClientInitialize(env, jvm, context)) { + OIC_LOG(ERROR, TAG, "CAManagerLEClientInitialize has failed"); + res = CA_STATUS_FAILED; + } #endif #ifdef EDR_ADAPTER - if (CA_STATUS_OK != CABTPairingInitialize(env, jvm, context)) - { - OIC_LOG(ERROR, TAG, "CABTPairingInitialize has failed"); - res = CA_STATUS_FAILED; - } + if (CA_STATUS_OK != CABTPairingInitialize(env, jvm, context)) { + OIC_LOG(ERROR, TAG, "CABTPairingInitialize has failed"); + res = CA_STATUS_FAILED; + } #endif - return res; + +#if !defined(LE_ADAPTER) && !defined(EDR_ADAPTER) + (void)env; + (void)jvm; + (void)context; +#endif + return res; } /** @@ -194,13 +273,13 @@ CAResult_t CAUtilClientInitialize(JNIEnv *env, JavaVM *jvm, jobject context) */ CAResult_t CAUtilClientTerminate(JNIEnv *env) { - OIC_LOG(DEBUG, TAG, "CAUtilClientTerminate"); + OIC_LOG(DEBUG, TAG, "CAUtilClientTerminate"); #ifdef LE_ADAPTER - return CAManagerLEClientTerminate(env); + return CAManagerLEClientTerminate(env); #else - OIC_LOG(DEBUG, TAG, "it is not supported"); - (void)env; - return CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "it is not supported"); + (void)env; + return CA_NOT_SUPPORTED; #endif } @@ -208,55 +287,233 @@ CAResult_t CAUtilClientTerminate(JNIEnv *env) CAResult_t CAUtilStartScan(JNIEnv *env) { #ifdef EDR_ADAPTER - return CABTPairingStartScan(env); + return CABTPairingStartScan(env); #else - OIC_LOG(DEBUG, TAG, "it is not supported"); - (void)env; - return CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "it is not supported"); + (void)env; + return CA_NOT_SUPPORTED; #endif } CAResult_t CAUtilStopScan(JNIEnv *env) { #ifdef EDR_ADAPTER - return CABTPairingStopScan(env); + return CABTPairingStopScan(env); #else - OIC_LOG(DEBUG, TAG, "it is not supported"); - (void)env; - return CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "it is not supported"); + (void)env; + return CA_NOT_SUPPORTED; #endif } CAResult_t CAUtilCreateBond(JNIEnv *env, jobject device) { #ifdef EDR_ADAPTER - return CABTPairingCreateBond(env, device); + return CABTPairingCreateBond(env, device); #else - OIC_LOG(DEBUG, TAG, "it is not supported"); - (void)env; - (void)device; - return CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "it is not supported"); + (void)env; + (void)device; + return CA_NOT_SUPPORTED; #endif } void CAUtilSetFoundDeviceListener(jobject listener) { #ifdef EDR_ADAPTER - CABTPairingSetFoundDeviceListener(listener); + CABTPairingSetFoundDeviceListener(listener); #else - (void)listener; + (void)listener; #endif } CAResult_t CAUtilSetLEScanInterval(jint intervalTime, jint workingCount) { - OIC_LOG(DEBUG, TAG, "CAUtilSetLEScanInterval"); + OIC_LOG(DEBUG, TAG, "CAUtilSetLEScanInterval"); #ifdef LE_ADAPTER - CAManagerLESetScanInterval(intervalTime, workingCount); - return CA_STATUS_OK; + CAManagerLESetScanInterval(intervalTime, workingCount); + return CA_STATUS_OK; +#else + (void)intervalTime; + (void)workingCount; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilStopLEScan() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStopLEScan"); +#ifdef LE_ADAPTER + CAManagerLEStopScan(); + return CA_STATUS_OK; +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} +#endif // __ANDROID__ + +CAResult_t CAUtilStartLEAdvertising() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStartLEAdvertising"); +#if (defined(__ANDROID__) || defined(__TIZEN__)) && defined(LE_ADAPTER) + return CAManagerLEStartAdvertising(); +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilStopLEAdvertising() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStopLEAdvertising"); +#if (defined(__ANDROID__) || defined(__TIZEN__)) && defined(LE_ADAPTER) + return CAManagerLEStopAdvertising(); #else - OIC_LOG(DEBUG, TAG, "it is not supported"); - return CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; #endif } + +CAResult_t CAUtilSetBTConfigure(CAUtilConfig_t config) +{ + OIC_LOG_V(DEBUG, TAG, "CAUtilSetConfigure"); +#if (defined(__ANDROID__) && defined(LE_ADAPTER)) + OIC_LOG_V(DEBUG, TAG, " - bleFlag [%d]", config.bleFlags); + CAManagerSetConfigure(config); + return CA_STATUS_OK; +#else + (void) config; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +void CAUtilSetLogLevel(CAUtilLogLevel_t level, bool hidePrivateLogEntries) +{ + OIC_LOG(DEBUG, TAG, "CAUtilSetLogLevel"); + LogLevel logLevel = DEBUG; + switch (level) { + case CA_LOG_LEVEL_ALL: + logLevel = DEBUG; + break; + case CA_LOG_LEVEL_INFO: + logLevel = INFO; + break; + default: + logLevel = DEBUG; + break; + } + + OCSetLogLevel(logLevel, hidePrivateLogEntries); +} + +CAResult_t CAUtilSetMulticastTTL(size_t ttl) +{ + OIC_LOG(DEBUG, TAG, "CAUtilSetMulticastTTL"); +#ifdef IP_ADAPTER + if (ttl > 255) { + OIC_LOG(ERROR, TAG, "TTL value is invalid"); + return CA_STATUS_INVALID_PARAM; + } + if (ttl > 32) { + OIC_LOG(INFO, TAG, "TTL value is not supported"); + return CA_NOT_SUPPORTED; + } + return CASetMulticastTTL(ttl); +#else + (void) ttl; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +CAResult_t CAUtilGetMulticastTTL(size_t *ttl) +{ + OIC_LOG(DEBUG, TAG, "CAUtilGetMulticastTTL"); +#ifdef IP_ADAPTER + return CAGetMulticastTTL(ttl); +#else + (void) ttl; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; #endif +} + +CAResult_t CAUtilTCPDisconnectSession(const char *address, uint16_t port, CATransportFlags_t flags) +{ + OIC_LOG(DEBUG, TAG, "CAUtilTCPDisconnectSession"); +#ifdef TCP_ADAPTER + CARequestInfo_t reqInfo = {.info.event = CA_REQ_DISCONNECT}; + CAEndpoint_t *endpoint = CACreateEndpointObject(flags, CA_ADAPTER_TCP, address, port); + if (!endpoint) { + return CA_STATUS_FAILED; + } + + CAResult_t caResult = CASendRequest(endpoint, &reqInfo); + if (CA_STATUS_OK != caResult) { + OIC_LOG(ERROR, TAG, "CASendRequest error"); + } + CAFreeEndpoint(endpoint); + return caResult; +#else + (void) address; + (void) port; + (void) flags; + OIC_LOG(DEBUG, TAG, "it is not supported"); + return CA_NOT_SUPPORTED; +#endif +} + +void CAUtilSkipTCPCloseOnInterfaceDown(bool state) +{ +#ifdef TCP_ADAPTER + CATCPSkipCloseOnInterfaceDown(state); +#else + (void) state; + OIC_LOG(DEBUG, TAG, "Not supported!"); +#endif +} + +CAResult_t CAUtilStartGattServer() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStartGattServer"); + CAResult_t res = CA_STATUS_OK; +#if (defined(__TIZEN__) && defined(LE_ADAPTER)) + CAStartGattServer(); +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + res = CA_NOT_SUPPORTED; +#endif + return res; +} + +CAResult_t CAUtilStopGattServer() +{ + OIC_LOG(DEBUG, TAG, "CAUtilStopGattServer"); + CAResult_t res = CA_STATUS_OK; +#if (defined(__TIZEN__) && defined(LE_ADAPTER)) + CAStopGattServer(); +#else + OIC_LOG(DEBUG, TAG, "it is not supported"); + res = CA_NOT_SUPPORTED; +#endif + return res; +} + +CAResult_t CAGetTCPIPHeader(CATransportAdapter_t adapter, int flag, TCPHeaderInfo* info) +{ + CAResult_t res = CA_STATUS_OK; +#ifdef TCP_ADAPTER + if (CA_ADAPTER_TCP & adapter) { + res = CAGetTCPIPHeaderInfo(flag,info); + } + else + res = CA_NOT_SUPPORTED; +#else + res = CA_NOT_SUPPORTED; + OIC_LOG(DEBUG, TAG, "Not supported!"); +#endif + return res; +}