replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / src / CAManager.cpp
index 740ded3..afb6e18 100644 (file)
 #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 = NULL;
-        CAManager::ConnectionChangedCallback g_connectionHandler = NULL;
+        CAManager::AdapterChangedCallback g_adapterHandler = nullptr;
+        CAManager::ConnectionChangedCallback g_connectionHandler = nullptr;
 }
 
 OCStackResult convertCAResultToOCResult(CAResult_t caResult)
@@ -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);
+}