*
******************************************************************/
-#include "caipinterface.h"
-
#include <sys/types.h>
#include <ifaddrs.h>
#include <net/if.h>
#include <errno.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <wifi.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <arpa/inet.h>
#include <netinet/in.h>
+#include <wifi.h>
+#include <net_connection.h>
+#include "caipinterface.h"
#include "caipnwmonitor.h"
#include "caadapterutils.h"
#include "logger.h"
#include "oic_string.h"
#include <coap/utlist.h>
-#define TAG "IP_MONITOR"
+#define TAG "OIC_CA_IP_MONITOR"
+
+#define MAX_INTERFACE_INFO_LENGTH (1024)
+
#define NETLINK_MESSAGE_LENGTH (4096)
#define IFC_LABEL_LOOP "lo"
#define IFC_ADDR_LOOP_IPV4 "127.0.0.1"
#define IFC_ADDR_LOOP_IPV6 "::1"
/**
+ * Used to storing a connection handle for managing data connections.
+ */
+static connection_h connection = NULL;
+
+/**
* Used to storing adapter changes callback interface.
*/
static struct CAIPCBData_t *g_adapterCallbackList = NULL;
/**
* Callback function to received connection state changes.
*/
-static void CAWIFIConnectionStateChangedCb(wifi_connection_state_e state, wifi_ap_h ap,
- void *userData);
-
-/**
- * Callback function to received device state changes.
- */
-static void CAWIFIDeviceStateChangedCb(wifi_device_state_e state, void *userData);
+static void CAIPConnectionStateChangedCb(connection_type_e type, void* userData);
int CAGetPollingInterval(int interval)
{
if (!g_adapterCallbackList)
{
- // Initialize Wifi service
- wifi_error_e ret = wifi_initialize();
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_initialize failed");
- return CA_STATUS_FAILED;
- }
-
- // Set callback for receiving state changes
- ret = wifi_set_device_state_changed_cb(CAWIFIDeviceStateChangedCb, NULL);
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_set_device_state_changed_cb failed");
- return CA_STATUS_FAILED;
- }
-
- // Set callback for receiving connection state changes
- ret = wifi_set_connection_state_changed_cb(CAWIFIConnectionStateChangedCb, NULL);
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_set_connection_state_changed_cb failed");
- return CA_STATUS_FAILED;
- }
+ // Initialize Wifi service.
+ if (WIFI_ERROR_NONE != wifi_initialize())
+ {
+ OIC_LOG(ERROR, TAG, "wifi_initialize failed");
+ }
+
+ // Initialize Connections.
+ connection_error_e ret = connection_create(&connection);
+ if (CONNECTION_ERROR_NONE != ret)
+ {
+ OIC_LOG(ERROR, TAG, "connection_create failed");
+ return CA_STATUS_FAILED;
+ }
+
+ // Set callback for receiving state changes.
+ ret = connection_set_type_changed_cb(connection, CAIPConnectionStateChangedCb, NULL);
+ if (CONNECTION_ERROR_NONE != ret)
+ {
+ OIC_LOG(ERROR, TAG, "connection_set_type_changed_cb failed");
+ return CA_STATUS_FAILED;
+ }
}
return CAIPSetNetworkMonitorCallback(callback, adapter);
CAIPUnSetNetworkMonitorCallback(adapter);
if (!g_adapterCallbackList)
{
- // Reset callback for receiving state changes
- wifi_error_e ret = wifi_unset_device_state_changed_cb();
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_unset_device_state_changed_cb failed");
- }
-
- // Reset callback for receiving connection state changes
- ret = wifi_unset_connection_state_changed_cb();
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_unset_connection_state_changed_cb failed");
- }
-
- // Deinitialize Wifi service
- ret = wifi_deinitialize();
- if (WIFI_ERROR_NONE != ret)
- {
- OIC_LOG(ERROR, TAG, "wifi_deinitialize failed");
- }
+ // Deinitialize Wifi service.
+ if (WIFI_ERROR_NONE != wifi_deinitialize())
+ {
+ OIC_LOG(ERROR, TAG, "wifi_deinitialize failed");
+ }
+
+ // Reset callback for receiving state changes.
+ if (connection)
+ {
+ connection_error_e ret = connection_unset_type_changed_cb(connection);
+ if (CONNECTION_ERROR_NONE != ret)
+ {
+ OIC_LOG(ERROR, TAG, "connection_unset_type_changed_cb failed");
+ }
+
+ // Deinitialize Wifi service.
+ ret = connection_destroy(connection);
+ if (CONNECTION_ERROR_NONE != ret)
+ {
+ OIC_LOG(ERROR, TAG, "connection_destroy failed");
+ }
+ connection = NULL;
+ }
}
return CA_STATUS_OK;
return ifitem;
}
-void CAWIFIConnectionStateChangedCb(wifi_connection_state_e state, wifi_ap_h ap,
- void *userData)
-{
- OIC_LOG(DEBUG, TAG, "IN");
-
- if (WIFI_CONNECTION_STATE_ASSOCIATION == state
- || WIFI_CONNECTION_STATE_CONFIGURATION == state)
- {
- OIC_LOG(DEBUG, TAG, "Connection is in Association State");
- return;
- }
-
- if (WIFI_CONNECTION_STATE_CONNECTED == state)
- {
- CAIPPassNetworkChangesToAdapter(CA_INTERFACE_UP);
- }
- else
- {
- CAIPPassNetworkChangesToAdapter(CA_INTERFACE_DOWN);
- }
-
- OIC_LOG(DEBUG, TAG, "OUT");
-}
-
-void CAWIFIDeviceStateChangedCb(wifi_device_state_e state, void *userData)
+void CAIPConnectionStateChangedCb(connection_type_e type, void* userData)
{
- OIC_LOG(DEBUG, TAG, "IN");
-
- if (WIFI_DEVICE_STATE_ACTIVATED == state)
+ switch (type)
{
- OIC_LOG(DEBUG, TAG, "Wifi is in Activated State");
+ case CONNECTION_TYPE_DISCONNECTED:
+ OIC_LOG(DEBUG, TAG, "Connection is in CONNECTION_TYPE_DISCONNECTED");
+ CAIPPassNetworkChangesToAdapter(CA_INTERFACE_DOWN);
+ break;
+ case CONNECTION_TYPE_ETHERNET:
+ OIC_LOG(DEBUG, TAG, "Connection is in CONNECTION_TYPE_ETHERNET");
+ CAIPPassNetworkChangesToAdapter(CA_INTERFACE_UP);
+ break;
+ case CONNECTION_TYPE_WIFI:
+ OIC_LOG(DEBUG, TAG, "Connection is in CONNECTION_TYPE_WIFI");
+ CAIPPassNetworkChangesToAdapter(CA_INTERFACE_UP);
+ break;
+ case CONNECTION_TYPE_CELLULAR:
+ OIC_LOG(DEBUG, TAG, "Connection is in CONNECTION_TYPE_CELLULAR");
+ CAIPPassNetworkChangesToAdapter(CA_INTERFACE_UP);
+ break;
+ default:
+ break;
}
- else
- {
- CAWIFIConnectionStateChangedCb(WIFI_CONNECTION_STATE_DISCONNECTED, NULL, NULL);
- OIC_LOG(DEBUG, TAG, "Wifi is in Deactivated State");
- }
-
- OIC_LOG(DEBUG, TAG, "OUT");
}
print "MQ flag is %s" % with_mq
-env.AppendUnique(CPPFLAGS = ['-std=c++0x', '-fPIC', '-D__TIZEN__','-DWITH_POSIX', '-Wall', '-DSLP_SDK_LOG', '-g','-D_GNU_SOURCE','-DTIZEN_DEBUG_ENABLE', '-DTB_LOG','`pkg-config', '--cflags', '--libs','dlog', 'com.oic.ri', 'capi-network-wifi',
+env.AppendUnique(CPPFLAGS = ['-std=c++0x', '-fPIC', '-D__TIZEN__','-DWITH_POSIX', '-Wall', '-DSLP_SDK_LOG', '-g','-D_GNU_SOURCE','-DTIZEN_DEBUG_ENABLE', '-DTB_LOG','`pkg-config', '--cflags', '--libs','dlog', 'com.oic.ri', 'capi-network-wifi', 'capi-network-connection',
'gobject-2.0','glib-2.0`'])
if routing == 'GW':
env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
env.Append(LIBS=[
- 'm', 'pthread', 'rt', 'dl', 'stdc++', 'gobject-2.0', 'gio-2.0', 'glib-2.0', 'capi-network-wifi', 'dlog', 'capi-network-bluetooth', 'connectivity_abstraction', 'coap', 'octbstack', 'ocsrm', 'c_common'
+ 'm', 'pthread', 'rt', 'dl', 'stdc++', 'gobject-2.0', 'gio-2.0', 'glib-2.0', 'capi-network-wifi', 'capi-network-connection', 'dlog', 'capi-network-bluetooth', 'connectivity_abstraction', 'coap', 'octbstack', 'ocsrm', 'c_common'
])
if secured == '1':