X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fsrc%2FCAManager.cpp;h=afb6e18c6af9bac0d963c89a7bf4b0a05b74a53f;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=59cba9a2e3fd7871374c3a08cb7ce999ea94a5b3;hpb=43ddc2883a11ca19291776fa12e63ccc24ac0729;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/src/CAManager.cpp b/resource/src/CAManager.cpp index 59cba9a..afb6e18 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; @@ -62,12 +65,31 @@ void DefaultAdapterStateChangedHandler(CATransportAdapter_t adapter, bool enable } } -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)); + + g_connectionHandler(ss.str(), connType, isConnected); } } @@ -86,6 +108,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 +117,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); +}