X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fsrc%2FCAManager.cpp;h=cb9ea401082088e76a3e2e9576bd38723bb2133e;hb=refs%2Ftags%2Faccepted%2Ftizen%2F4.0%2Funified%2F20171211.061426;hp=59cba9a2e3fd7871374c3a08cb7ce999ea94a5b3;hpb=945944cb3ff5efaccd03e8efa23199e58bd59ded;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/src/CAManager.cpp b/resource/src/CAManager.cpp index 59cba9a..cb9ea40 100644 --- a/resource/src/CAManager.cpp +++ b/resource/src/CAManager.cpp @@ -28,9 +28,12 @@ #include "OCApi.h" #include "CAManager.h" #include "cautilinterface.h" +#include "casecurityinterface.h" +#include "logger.h" -using namespace OC; +#define TAG "OIC_CAMANAGER" +using namespace OC; namespace { CAManager::AdapterChangedCallback g_adapterHandler = nullptr; @@ -58,16 +61,39 @@ void DefaultAdapterStateChangedHandler(CATransportAdapter_t adapter, bool enable { if (g_adapterHandler) { + OIC_LOG(INFO, TAG, "Before calling into application address space for adapterStateChanged"); g_adapterHandler((OCTransportAdapter) adapter, enabled); + OIC_LOG(INFO, TAG, "After calling into application address space for adapterStateChanged"); } } -void DefaultConnectionStateChangedHandler(CATransportAdapter_t adapter, - const char *remote_address, bool connected) +void DefaultConnectionStateChangedHandler(const CAEndpoint_t *info, bool isConnected) { if (g_connectionHandler) { - g_connectionHandler((OCTransportAdapter) adapter, remote_address, connected); + std::ostringstream ss; + + if (info->flags & CA_IPV6) + { + ss << '[' << info->addr << ']'; + } + else + { + ss << info->addr; + } + if (info->port) + { + ss << ':' << info->port; + } + + OCTransportAdapter adapter = (OCTransportAdapter)info->adapter; + OCTransportFlags flags = (OCTransportFlags)info->flags; + OCConnectivityType connType = (OCConnectivityType) + ((adapter << CT_ADAPTER_SHIFT) | (flags & CT_MASK_FLAGS)); + + OIC_LOG(INFO, TAG, "Before calling into application address space for connectionStateChanged"); + g_connectionHandler(ss.str(), connType, isConnected); + OIC_LOG(INFO, TAG, "After calling into application address space for connectionStateChanged"); } } @@ -86,6 +112,7 @@ OCStackResult CAManager::setNetworkMonitorHandler(AdapterChangedCallback adapter OCStackResult CAManager::setPortNumberToAssign(OCTransportAdapter adapter, OCTransportFlags flag, uint16_t port) { + OIC_LOG(INFO, TAG, "setPortNumberToAssign"); CAResult_t ret = CASetPortNumberToAssign((CATransportAdapter_t) adapter, (CATransportFlags_t) flag, port); @@ -94,5 +121,107 @@ OCStackResult CAManager::setPortNumberToAssign(OCTransportAdapter adapter, uint16_t CAManager::getAssignedPortNumber(OCTransportAdapter adapter, OCTransportFlags flag) { + OIC_LOG(INFO, TAG, "getAssignedPortNumber"); return CAGetAssignedPortNumber((CATransportAdapter_t) adapter, (CATransportFlags_t) flag); } + +OCStackResult CAManager::setMulticastTTL(size_t ttl) +{ + OIC_LOG(INFO, TAG, "setMulticastTTL"); + CAResult_t ret = CAUtilSetMulticastTTL(ttl); + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::getMulticastTTL(size_t *ttl) +{ + OIC_LOG(INFO, TAG, "getMulticastTTL"); + CAResult_t ret = CAUtilGetMulticastTTL(ttl); + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::setBTConfigure(const CAUtilConfig& config) +{ + OIC_LOG(INFO, TAG, "setBTConfigure"); + CAUtilConfig_t configs = {(CATransportBTFlags_t)config.bleFlag, { {0}, .adapter = CA_DEFAULT_ADAPTER, .level = HIGH_SPEED }}; + CAResult_t ret = CAUtilSetBTConfigure(configs); + return convertCAResultToOCResult(ret); +} + +void CAManager::setLogLevel(OCLogLevel level, bool hidePrivateLogEntries) +{ + OIC_LOG(INFO, TAG, "setLogLevel"); + CAUtilSetLogLevel((CAUtilLogLevel_t) level, hidePrivateLogEntries); +} + +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) +OCStackResult CAManager::setCipherSuite(const uint16_t cipher, OCTransportAdapter adapter) +{ + CAResult_t ret = CASelectCipherSuite(cipher, (CATransportAdapter_t) adapter); + return convertCAResultToOCResult(ret); +} +#endif // defined(__WITH_DTLS__) || defined(__WITH_TLS__) + +#if defined(__TIZEN__) && defined(LE_ADAPTER) && defined(BLE_CUSTOM_ADVERTISE) +OCStackResult CAManager::setAdvertisementData(const char* data, int length) +{ + CAResult_t ret = CASetAdvertisementData(data, length); + + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::setScanResponseData(const char* data, int length) +{ + CAResult_t ret = CASetScanResponseData(data, length); + + return convertCAResultToOCResult(ret); +} +#endif + +OCStackResult CAManager::startLEAdvertising() +{ + OIC_LOG(INFO, TAG, "startLEAdvertising"); + CAResult_t ret = CAUtilStartLEAdvertising(); + + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::stopLEAdvertising() +{ + OIC_LOG(INFO, TAG, "stopLEAdvertising"); + CAResult_t ret = CAUtilStopLEAdvertising(); + + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::disconnectTCPSession(const char *address, + uint16_t port, + OCTransportFlags flags) +{ + if (!address) + { + OIC_LOG(ERROR, TAG, "address is invalid"); + return OCStackResult::OC_STACK_INVALID_PARAM; + } + + OIC_LOG_V(INFO, TAG, "disconnectTCPSession [addr:%s][port:%d][flags:%d]", + address, port, flags); + CAResult_t ret = CAUtilTCPDisconnectSession(address, port, (CATransportFlags_t)flags); + + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::startCAGattServer() +{ + OIC_LOG(INFO, TAG, "startCAGattServer]"); + CAResult_t ret = CAUtilStartGattServer(); + + return convertCAResultToOCResult(ret); +} + +OCStackResult CAManager::stopCAGattServer() +{ + OIC_LOG(INFO, TAG, "stopCAGattServer]"); + CAResult_t ret = CAUtilStopGattServer(); + + return convertCAResultToOCResult(ret); +}