if BUILD_EHAL
EHAL_PC = ehal.pc
endif
-if BUILD_ENM
-ENM_PC = enm.pc
-endif
if BUILD_ENOTIFY
ENOTIFY_PC = enotify.pc
endif
if BUILD_EBLUEZ
EBLUEZ_PC = ebluez.pc
endif
-pkgconfig_DATA = edbus.pc $(EHAL_PC) $(ENM_PC) $(ENOTIFY_PC) $(ECONNMAN_PC) $(EBLUEZ_PC)
+pkgconfig_DATA = edbus.pc $(EHAL_PC) $(ENOTIFY_PC) $(ECONNMAN_PC) $(EBLUEZ_PC)
EXTRA_DIST = e_dbus.spec
ebluez_release_info="-release $release"
edbus_release_info="-release $release"
ehal_release_info="-release $release"
-enm_release_info="-release $release"
enotify_release_info="-release $release"
AC_SUBST(version_info)
AC_SUBST(econnman_release_info)
AC_SUBST(ebluez_release_info)
AC_SUBST(edbus_release_info)
AC_SUBST(ehal_release_info)
-AC_SUBST(enm_release_info)
AC_SUBST(enotify_release_info)
dnl Check enabled modules to build
[enable_ehal=$enableval],
[enable_ehal="yes"])
-AC_ARG_ENABLE([enm],
- [AC_HELP_STRING([--enable-enm], [Enable enm (network manager) build])],
- [enable_enm=$enableval],
- [enable_enm="no"])
-
AC_ARG_ENABLE([econnman],
[AC_HELP_STRING([--enable-econnman], [Enable econnman build])],
[enable_econnman=$enableval],
])
AM_CONDITIONAL([BUILD_EHAL], [test "x${enable_ehal}" = "xyes"])
-AM_CONDITIONAL([BUILD_ENM], [test "x${enable_enm}" = "xyes"])
AM_CONDITIONAL([BUILD_ENOTIFY], [test "x${enable_enotify}" = "xyes"])
AM_CONDITIONAL([BUILD_ECONNMAN], [test "x${enable_econnman}" = "xyes"])
AM_CONDITIONAL([BUILD_EBLUEZ], [test "x${enable_ebluez}" = "xyes"])
src/lib/Makefile
src/lib/dbus/Makefile
src/lib/hal/Makefile
-src/lib/nm/Makefile
src/lib/notification/Makefile
src/lib/connman/Makefile
src/lib/bluez/Makefile
edbus.pc
ehal.pc
enotify.pc
-enm.pc
econnman.pc
ebluez.pc
])
echo " Modules:"
echo
echo " EHal...............: $enable_ehal"
-echo " ENM................: $enable_enm"
echo " EConnman...........: $enable_econnman"
echo " EBluez.............: $enable_ebluez"
echo " ENotify............: $enable_enotify"
+++ /dev/null
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: enotify
-Description: Network Manager convenience library
-@pkgconfig_requires_private@: ecore edbus
-Version: @VERSION@
-Libs: -L${libdir} -lenm
-Cflags: -I${includedir}
EDBUS_CPPFLAGS = \
-I$(top_srcdir)/src/lib/dbus \
-I$(top_srcdir)/src/lib/hal \
--I$(top_srcdir)/src/lib/nm \
-I$(top_srcdir)/src/lib/notification \
-I$(top_srcdir)/src/lib/connman \
-I$(top_srcdir)/src/lib/bluez \
if BUILD_EHAL
EHAL_PROG = e_dbus_hal
endif
-if BUILD_ENM
-ENM_PROG = e_dbus_nm
-endif
if BUILD_ENOTIFY
ENOTIFY_PROG = e_dbus_notify e_dbus_notification_daemon e-notify-send
endif
bin_PROGRAMS = \
$(EDBUS_PROG) \
$(EHAL_PROG) \
-$(ENM_PROG) \
$(ENOTIFY_PROG) \
$(ECONNMAN_PROG) \
$(EBLUEZ_PROG)
endif
-if BUILD_ENM
-NMSOURCES = \
-nm.c
-
-e_dbus_nm_SOURCES = \
- $(NMSOURCES)
-
-e_dbus_nm_CPPFLAGS = $(EDBUS_CPPFLAGS)
-e_dbus_nm_LDADD = $(top_builddir)/src/lib/dbus/libedbus.la $(top_builddir)/src/lib/nm/libenm.la
-e_dbus_nm_DEPENDENCIES = $(top_builddir)/src/lib/dbus/libedbus.la $(top_builddir)/src/lib/nm/libenm.la
-endif
-
-
if BUILD_ENOTIFY
e_dbus_notify_SOURCES = \
notify.c
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <Ecore.h>
-
-#include <E_Nm.h>
-
-E_NM *nm = NULL;
-E_NMS *nms = NULL;
-
-static void *
-memdup(const void *p, size_t n)
-{
- void *q;
-
- q = malloc(n);
- memcpy(q, p, n);
- return q;
-}
-
-static void
-dump_variant(E_NM_Variant *var)
-{
- if (!var) return;
- switch (var->type)
- {
- case 'a': {
- E_NM_Variant *subvar;
- Eina_List *l;
-
- printf("a:");
- EINA_LIST_FOREACH(var->a, l, subvar)
- {
- dump_variant(subvar);
- printf(";");
- }
- printf("\n");
- break;
- }
- case 's':
- printf("s:%s", var->s);
- break;
- case 'o':
- printf("o:%s", var->s);
- break;
- case 'u':
- printf("u:%d", var->u);
- break;
- case 'b':
- printf("b:%d", var->b);
- break;
- case 'y':
- printf("y:%d", var->y);
- break;
- case 't':
- printf("t:%lld", var->t);
- break;
- }
-}
-
-static Eina_Bool
-dump_values(const Eina_Hash *hash __UNUSED__, const void *key, void *value, void *data __UNUSED__)
-{
- printf(" - name: %s - ", (char *)key);
- dump_variant(value);
- printf("\n");
-
- return 1;
-}
-
-static Eina_Bool
-dump_settings(const Eina_Hash *hash __UNUSED__, const void *key, void *value, void *fdata __UNUSED__)
-{
- printf("name: %s\n", (char *)key);
- printf("values:\n");
- eina_hash_foreach(value, dump_values, NULL);
- printf("\n");
-
- return 1;
-}
-
-static int
-cb_nms_connection_secrets(void *data __UNUSED__, Eina_Hash *secrets)
-{
- printf("Secrets:\n");
- if (secrets)
- eina_hash_foreach(secrets, dump_settings, NULL);
- return 1;
-}
-
-static int
-cb_nms_connection_settings(void *data, Eina_Hash *settings)
-{
- printf("Settings:\n");
- if (settings)
- {
- if (eina_hash_find(settings, "802-11-wireless-security"))
- e_nms_connection_secrets_get_secrets(data, "802-11-wireless-security", NULL, 0, cb_nms_connection_secrets, NULL);
- eina_hash_foreach(settings, dump_settings, NULL);
- eina_hash_free(settings);
- }
- return 1;
-}
-
-static int
-cb_nms_connections(void *data __UNUSED__, Eina_List *list)
-{
- E_NMS_Connection *conn;
- Eina_List *l;
-
- EINA_LIST_FOREACH(list, l, conn)
- {
- e_nms_connection_dump(conn);
- e_nms_connection_get_settings(conn, cb_nms_connection_settings, conn);
- }
- //ecore_main_loop_quit();
- //e_nms_list_connections(nms, cb_nms_connections, nms);
- return 1;
-}
-
-static int
-cb_access_point(void *data __UNUSED__, E_NM_Access_Point *ap)
-{
- e_nm_access_point_dump(ap);
- e_nm_access_point_free(ap);
- return 1;
-}
-
-static int
-cb_activate_connection(void *data, E_NM_Device *device)
-{
- E_NM_Active_Connection *conn;
-
- conn = data;
- sleep(1);
- e_nm_active_connection_dump(conn);
- e_nm_activate_connection(nm, conn->service_name, conn->path, device, conn->specific_object);
- return 1;
-}
-
-static int
-cb_active_connection(void *data __UNUSED__, E_NM_Active_Connection *conn)
-{
- const char *device;
- Eina_List *l;
-
- e_nm_deactivate_connection(nm, conn);
- EINA_LIST_FOREACH(conn->devices, l, device)
- e_nm_device_get(nm, device, cb_activate_connection, conn);
- /*
- e_nm_active_connection_dump(conn);
- e_nm_active_connection_free(conn);
- */
- return 1;
-}
-
-static int
-cb_ip4_config(void *data __UNUSED__, E_NM_IP4_Config *config)
-{
- e_nm_ip4_config_dump(config);
- e_nm_ip4_config_free(config);
- return 1;
-}
-
-static int
-cb_access_points(void *data __UNUSED__, Eina_List *list)
-{
- E_NM_Access_Point *ap;
-
- EINA_LIST_FREE(list, ap)
- {
- e_nm_access_point_dump(ap);
- e_nm_access_point_free(ap);
- }
- return 1;
-}
-
-static int
-cb_get_devices(void *data __UNUSED__, Eina_List *list)
-{
- E_NM_Device *device;
- Eina_List *l;
-
- EINA_LIST_FOREACH(list, l, device)
- {
- e_nm_device_dump(device);
- if (device->device_type == E_NM_DEVICE_TYPE_WIRELESS)
- {
- /*
- e_nm_device_wireless_get_access_points(device, cb_access_points, NULL);
- e_nm_access_point_get(nm, device->wireless.active_access_point, cb_access_point, NULL);
- e_nm_ip4_config_get(nm, device->ip4_config, cb_ip4_config, NULL);
- */
- }
- }
- //ecore_main_loop_quit();
- return 1;
-}
-
-static int
-cb_nms(void *data __UNUSED__, E_NMS *reply)
-{
- Eina_Hash *settings, *values;
- E_NM_Variant variant;
- const char ssid[] = { };
- const char *bssids[] = { };
-
- settings = eina_hash_string_small_new(EINA_FREE_CB(eina_hash_free));
- /* connection */
- values = eina_hash_string_small_new(EINA_FREE_CB(e_nm_variant_free));
- eina_hash_add(settings, strdup("connection"), values);
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 't';
- variant.t = 1228201388;
- eina_hash_add(values, strdup("timestamp"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("");
- eina_hash_add(values, strdup("id"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("");
- eina_hash_add(values, strdup("uuid"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("802-11-wireless");
- eina_hash_add(values, strdup("type"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 'b';
- variant.b = 0;
- eina_hash_add(values, strdup("autoconnect"), memdup(&variant, sizeof(E_NM_Variant)));
- /* 802-11-wireless */
- values = eina_hash_string_small_new(EINA_FREE_CB(e_nm_variant_free));
- eina_hash_add(settings, strdup("802-11-wireless"), values);
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("mode");
- eina_hash_add(values, strdup("infrastructure"), memdup(&variant, sizeof(E_NM_Variant)));
- eina_hash_add(values, strdup("ssid"), e_nm_variant_array_new('y', ssid, sizeof(ssid) / sizeof(ssid[0])));
- eina_hash_add(values, strdup("seen-bssids"), e_nm_variant_array_new('s', bssids, sizeof(bssids) / sizeof(bssids[0])));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("802-11-wireless-security");
- eina_hash_add(values, strdup("security"), memdup(&variant, sizeof(E_NM_Variant)));
- /* ipv4 */
- values = eina_hash_string_small_new(EINA_FREE_CB(e_nm_variant_free));
- eina_hash_add(settings, strdup("ipv4"), values);
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("auto");
- eina_hash_add(values, strdup("method"), memdup(&variant, sizeof(E_NM_Variant)));
- /* 802-11-wireless-security */
- values = eina_hash_string_small_new(EINA_FREE_CB(e_nm_variant_free));
- eina_hash_add(settings, strdup("802-11-wireless-security"), values);
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("none");
- eina_hash_add(values, strdup("key-mgmt"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("open");
- eina_hash_add(values, strdup("auth-alg"), memdup(&variant, sizeof(E_NM_Variant)));
- memset(&variant, 0, sizeof(E_NM_Variant));
- variant.type = 's';
- variant.s = strdup("");
- eina_hash_add(values, strdup("wep-key0"), memdup(&variant, sizeof(E_NM_Variant)));
-
- nms = reply;
- e_nms_dump(nms);
- //ecore_hash_for_each_node(settings, dump_settings, NULL);
- //e_nms_system_add_connection(nms, settings);
- //sleep(1);
- e_nms_list_connections(nms, cb_nms_connections, nms);
- return 1;
-}
-
-static int
-cb_nm(void *data __UNUSED__, E_NM *reply)
-{
- if (!reply)
- {
- ecore_main_loop_quit();
- return 1;
- }
- nm = reply;
- /*
- e_nm_wireless_enabled_set(nm, 1);
- if (nm->active_connections)
- {
- const char *conn;
- ecore_list_first_goto(nm->active_connections);
- while ((conn = ecore_list_next(nm->active_connections)))
- e_nm_active_connection_get(nm, conn, cb_active_connection, NULL);
- }
- */
- /*
- e_nm_get_devices(nm, cb_get_devices, nm);
- */
- e_nms_get(nm, E_NMS_CONTEXT_SYSTEM, cb_nms, NULL);
- return 1;
-}
-
-
-int
-main()
-{
- ecore_init();
- eina_init();
- e_dbus_init();
-
- if (!e_nm_get(cb_nm, (void *)0xdeadbeef))
- {
- printf("Error connecting to system bus. Is it running?\n");
- return 1;
- }
-
- ecore_main_loop_begin();
- e_nms_free(nms);
- e_nm_free(nm);
-
- e_dbus_shutdown();
- eina_shutdown();
- ecore_shutdown();
- return 0;
-}
MAINTAINERCLEANFILES = Makefile.in
-SUBDIRS=dbus hal nm notification connman bluez
+SUBDIRS=dbus hal notification connman bluez
+++ /dev/null
-.deps
-.libs
-Makefile
-Makefile.in
-*.lo
-*.la
+++ /dev/null
-#ifndef E_NM_H
-#define E_NM_H
-
-#include <E_DBus.h>
-#include <Eina.h>
-
-/*
- * TODO:
- * - Return objects instead of object paths.
- * - Define who is responsible to clean up mem
- * - Only listen to signals if a callback is connected
- * - Free properties on property changed
- */
-
-#ifdef EAPI
-#undef EAPI
-#endif
-#ifdef _MSC_VER
-# ifdef BUILDING_DLL
-# define EAPI __declspec(dllexport)
-# else
-# define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-# if __GNUC__ >= 4
-# define EAPI __attribute__ ((visibility("default")))
-# else
-# define EAPI
-# endif
-# else
-# define EAPI
-# endif
-#endif
-
-#define E_NM_DEVICE_TYPE_WIRED 1
-#define E_NM_DEVICE_TYPE_WIRELESS 2
-
-typedef enum E_NM_State E_NM_State;
-enum E_NM_State
-{
- E_NM_STATE_UNKNOWN = 0,
- E_NM_STATE_ASLEEP = 1,
- E_NM_STATE_CONNECTING = 2,
- E_NM_STATE_CONNECTED = 3,
- E_NM_STATE_DISCONNECTED = 4
-};
-
-typedef enum E_NM_802_11_Ap_Flags E_NM_802_11_Ap_Flags;
-enum E_NM_802_11_Ap_Flags
-{
- E_NM_802_11_AP_FLAGS_NONE = 0x0,
- E_NM_802_11_AP_FLAGS_PRIVACY = 0x1
-};
-
-typedef enum E_NM_802_11_Ap_Sec E_NM_802_11_Ap_Sec;
-enum E_NM_802_11_Ap_Sec
-{
- E_NM_802_11_AP_SEC_NONE = 0x0,
- E_NM_802_11_AP_SEC_PAIR_WEP40 = 0x1,
- E_NM_802_11_AP_SEC_PAIR_WEP104 = 0x2,
- E_NM_802_11_AP_SEC_PAIR_TKIP = 0x4,
- E_NM_802_11_AP_SEC_PAIR_CCMP = 0x8,
- E_NM_802_11_AP_SEC_GROUP_WEP40 = 0x10,
- E_NM_802_11_AP_SEC_GROUP_WEP104 = 0x20,
- E_NM_802_11_AP_SEC_GROUP_TKIP = 0x40,
- E_NM_802_11_AP_SEC_GROUP_CCMP = 0x80,
- E_NM_802_11_AP_SEC_KEY_MGMT_PSK = 0x100,
- E_NM_802_11_AP_SEC_KEY_MGMT_802_1X = 0x200
-};
-
-typedef enum E_NM_Device_Cap E_NM_Device_Cap;
-enum E_NM_Device_Cap
-{
- E_NM_DEVICE_CAP_NONE = 0x0,
- E_NM_DEVICE_CAP_NM_SUPPORTED = 0x1,
- E_NM_DEVICE_CAP_CARRIER_DETECT = 0x2
-};
-
-typedef enum E_NM_Device_State E_NM_Device_State;
-enum E_NM_Device_State
-{
- E_NM_DEVICE_STATE_UNKNOWN = 0,
- E_NM_DEVICE_STATE_UNMANAGED = 1,
- E_NM_DEVICE_STATE_UNAVAILABLE = 2,
- E_NM_DEVICE_STATE_DISCONNECTED = 3,
- E_NM_DEVICE_STATE_PREPARE = 4,
- E_NM_DEVICE_STATE_CONFIG = 5,
- E_NM_DEVICE_STATE_NEED_AUTH = 6,
- E_NM_DEVICE_STATE_IP_CONFIG = 7,
- E_NM_DEVICE_STATE_ACTIVATED = 8,
- E_NM_DEVICE_STATE_FAILED = 9
-};
-
-typedef enum E_NM_Device_State_Reason E_NM_Device_State_Reason;
-enum E_NM_Device_State_Reason
-{
- E_NM_DEVICE_STATE_REASON_UNKNOWN = 0,
- E_NM_DEVICE_STATE_REASON_NONE = 1,
- E_NM_DEVICE_STATE_REASON_NOW_MANAGED = 2,
- E_NM_DEVICE_STATE_REASON_NOW_UNMANAGED = 3,
- E_NM_DEVICE_STATE_REASON_CONFIG_FAILED = 4,
- E_NM_DEVICE_STATE_REASON_CONFIG_UNAVAILABLE = 5,
- E_NM_DEVICE_STATE_REASON_CONFIG_EXPIRED = 6,
- E_NM_DEVICE_STATE_REASON_NO_SECRETS = 7,
- E_NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8,
- E_NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED = 9,
- E_NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED = 10,
- E_NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT = 11,
- E_NM_DEVICE_STATE_REASON_PPP_START_FAILED = 12,
- E_NM_DEVICE_STATE_REASON_PPP_DISCONNECT = 13,
- E_NM_DEVICE_STATE_REASON_PPP_FAILED = 14,
- E_NM_DEVICE_STATE_REASON_DHCP_START_FAILED = 15,
- E_NM_DEVICE_STATE_REASON_DHCP_ERROR = 16,
- E_NM_DEVICE_STATE_REASON_DHCP_FAILED = 17,
- E_NM_DEVICE_STATE_REASON_SHARED_START_FAILED = 18,
- E_NM_DEVICE_STATE_REASON_SHARED_FAILED = 19,
- E_NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED = 20,
- E_NM_DEVICE_STATE_REASON_AUTOIP_ERROR = 21,
- E_NM_DEVICE_STATE_REASON_AUTOIP_FAILED = 22,
- E_NM_DEVICE_STATE_REASON_MODEM_BUSY = 23,
- E_NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE = 24,
- E_NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER = 25,
- E_NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT = 26,
- E_NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED = 27,
- E_NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED = 28,
- E_NM_DEVICE_STATE_REASON_GSM_APN_FAILED = 29,
- E_NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING = 30,
- E_NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED = 31,
- E_NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT = 32,
- E_NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED = 33,
- E_NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED = 34,
- E_NM_DEVICE_STATE_REASON_FIRMWARE_MISSING = 35,
- E_NM_DEVICE_STATE_REASON_REMOVED = 36,
- E_NM_DEVICE_STATE_REASON_SLEEPING = 37,
- E_NM_DEVICE_STATE_REASON_CONNECTION_REMOVED = 38,
- E_NM_DEVICE_STATE_REASON_USER_REQUESTED = 39
-};
-
-typedef enum E_NM_802_11_Mode E_NM_802_11_Mode;
-enum E_NM_802_11_Mode
-{
- E_NM_802_11_MODE_UNKNOWN = 0,
- E_NM_802_11_MODE_ADHOC = 1,
- E_NM_802_11_MODE_INFRA = 2
-};
-
-typedef enum E_NM_802_11_Device_Cap E_NM_802_11_Device_Cap;
-enum E_NM_802_11_Device_Cap
-{
- E_NM_802_11_DEVICE_CAP_NONE = 0x0,
- E_NM_802_11_DEVICE_CAP_CIPHER_WEP40 = 0x1,
- E_NM_802_11_DEVICE_CAP_CIPHER_WEP104 = 0x2,
- E_NM_802_11_DEVICE_CAP_CIPHER_TKIP = 0x4,
- E_NM_802_11_DEVICE_CAP_CIPHER_CCMP = 0x8,
- E_NM_802_11_DEVICE_CAP_WPA = 0x10,
- E_NM_802_11_DEVICE_CAP_RSN = 0x20
-};
-
-typedef enum E_NM_Active_Connection_State E_NM_Active_Connection_State;
-enum E_NM_Active_Connection_State
-{
- E_NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0,
- E_NM_ACTIVE_CONNECTION_STATE_ACTIVATING = 1,
- E_NM_ACTIVE_CONNECTION_STATE_ACTIVATED = 2
-};
-
-typedef struct E_NM E_NM;
-struct E_NM
-{
- int wireless_enabled; /* writeable*/
- int wireless_hardware_enabled;
- Eina_List *active_connections;
- E_NM_State state;
-};
-
-typedef struct E_NM_Access_Point E_NM_Access_Point;
-struct E_NM_Access_Point
-{
- char *path;
- E_NM_802_11_Ap_Flags flags;
- E_NM_802_11_Ap_Sec wpa_flags;
- E_NM_802_11_Ap_Sec rsn_flags;
- Eina_List *ssid; /* unsigned char */
- unsigned int frequency;
- char *hw_address;
- E_NM_802_11_Mode mode;
- unsigned int max_bitrate;
- unsigned char strength;
-};
-
-typedef struct E_NM_Device E_NM_Device;
-struct E_NM_Device
-{
- char *udi; /* object_path */
- char *interface;
- char *driver;
- E_NM_Device_Cap capabilities;
- unsigned int ip4_address;
- E_NM_Device_State state;
- char *ip4_config; /* object_path */
- char *dhcp4_config; /* object_path */
- int managed;
- unsigned int device_type;
- union
- {
- struct {
- char *hw_address;
- unsigned int speed;
- int carrier;
- } wired;
- struct {
- char *hw_address;
- E_NM_802_11_Mode mode;
- unsigned int bitrate;
- char *active_access_point; /* object_path */
- E_NM_802_11_Device_Cap wireless_capabilities;
- } wireless;
- /* TODO: cdma */
- /* TODO: gsm */
- /* TODO: serial */
- };
-};
-
-typedef struct E_NM_IP4_Config E_NM_IP4_Config;
-struct E_NM_IP4_Config
-{
- Eina_List *addresses; /* list unsigned int */
- Eina_List *nameservers;/* unsigned int */
- Eina_List *domains; /* char* */
- Eina_List *routes; /* list unsigned int */
-};
-
-/* TODO typedef struct E_NM_DHCP4_Config E_NM_DHCP4_Config; */
-
-typedef enum E_NMS_Context E_NMS_Context;
-enum E_NMS_Context
-{
- E_NMS_CONTEXT_SYSTEM
- /* TODO: E_NMS_CONTEXT_USER */
-};
-
-typedef struct E_NMS E_NMS;
-struct E_NMS
-{
- const char *service_name;
- Eina_List *unmanaged_devices; /* object_path */
- char *hostname;
-};
-
-typedef struct E_NMS_Connection E_NMS_Connection;
-struct E_NMS_Connection
-{
- char *service_name;
- char *path;
-};
-
-typedef struct E_NM_Active_Connection E_NM_Active_Connection;
-struct E_NM_Active_Connection
-{
- char *path;
- char *service_name;
- char *connection; /* object_path */
- char *specific_object; /* object_path */
- Eina_List *devices; /* object_path */
- E_NM_Active_Connection_State state;
- int def; /* default */
-};
-
-/* TODO typedef struct E_NM_VPN_Connection E_NM_VPN_Connection */
-/* TODO typedef struct E_NM_VPN_Plugin E_NM_VPN_Plugin */
-
-typedef struct E_NM_Variant E_NM_Variant;
-struct E_NM_Variant
-{
- union
- {
- unsigned char y;
- unsigned int u;
- char *s;
- unsigned long long t;
- int b;
- Eina_List *a;
- };
- char type;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* org.freedesktop.NetworkManager api */
- EAPI int e_nm_get(int (*cb_func)(void *data, E_NM *nm), void *data);
- EAPI void e_nm_free(E_NM *nm);
- EAPI void e_nm_dump(E_NM *nm);
-
- EAPI int e_nm_wireless_enabled_set(E_NM *nm, int enabled);
-
- EAPI int e_nm_get_devices(E_NM *nm, int (*cb_func)(void *data, Eina_List *list), void *data);
- /* TODO: Add return value cb */
- EAPI int e_nm_activate_connection(E_NM *nm, const char *service_name, const char *connection, E_NM_Device *device, const char *specific_object);
- EAPI int e_nm_deactivate_connection(E_NM *nm, E_NM_Active_Connection *connection);
- EAPI int e_nm_sleep(E_NM *nm, int sleep);
-
- EAPI void e_nm_data_set(E_NM *nm, void *data);
- EAPI void *e_nm_data_get(E_NM *nm);
- EAPI void e_nm_callback_state_changed_set(E_NM *nm, int (*cb_func)(E_NM *nm, E_NM_State state));
- EAPI void e_nm_callback_properties_changed_set(E_NM *nm, int (*cb_func)(E_NM *nm));
- EAPI void e_nm_callback_device_added_set(E_NM *nm, int (*cb_func)(E_NM *nm, const char *device));
- EAPI void e_nm_callback_device_removed_set(E_NM *nm, int (*cb_func)(E_NM *nm, const char *device));
-
- /* org.freedesktop.NetworkManager.AccessPoint api */
- EAPI int e_nm_access_point_get(E_NM *nm, const char *access_point,
- int (*cb_func)(void *data, E_NM_Access_Point *ap),
- void *data);
- EAPI void e_nm_access_point_free(E_NM_Access_Point *access_point);
- EAPI void e_nm_access_point_dump(E_NM_Access_Point *access_point);
-
- EAPI void e_nm_access_point_data_set(E_NM_Access_Point *access_point, void *data);
- EAPI void *e_nm_access_point_data_get(E_NM_Access_Point *access_point);
- EAPI void e_nm_access_point_callback_properties_changed_set(E_NM_Access_Point *access_point, int (*cb_func)(E_NM_Access_Point *access_point));
-
- /* org.freedesktop.NetworkManager.Device(.*) api */
- EAPI int e_nm_device_get(E_NM *nm, const char *device,
- int (*cb_func)(void *data, E_NM_Device *dev),
- void *data);
- EAPI void e_nm_device_free(E_NM_Device *device);
- EAPI void e_nm_device_dump(E_NM_Device *device);
-
- EAPI int e_nm_device_wireless_get_access_points(E_NM_Device *device, int (*cb_func)(void *data, Eina_List *access_points), void *data);
-
- EAPI void e_nm_device_data_set(E_NM_Device *device, void *data);
- EAPI void *e_nm_device_data_get(E_NM_Device *device);
- EAPI void e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason));
- EAPI void e_nm_device_callback_properties_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device));
- EAPI void e_nm_device_wireless_callback_access_point_added_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, const char *access_point));
- EAPI void e_nm_device_wireless_callback_access_point_removed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, const char *access_point));
-
- /* org.freedesktop.NetworkManager.IP4Config api */
- EAPI int e_nm_ip4_config_get(E_NM *nm, const char *config,
- int (*cb_func)(void *data, E_NM_IP4_Config *config),
- void *data);
- EAPI void e_nm_ip4_config_free(E_NM_IP4_Config *config);
- EAPI void e_nm_ip4_config_dump(E_NM_IP4_Config *config);
-
- /* TODO: org.freedesktop.NetworkManager.DHCP4Config api */
-
- /* org.freedesktop.NetworkManagerSettings api */
- EAPI int e_nms_get(E_NM *nm, E_NMS_Context context, int (*cb_func)(void *data, E_NMS *nms), void *data);
- EAPI void e_nms_free(E_NMS *nms);
- EAPI void e_nms_dump(E_NMS *nms);
- EAPI int e_nms_list_connections(E_NMS *nms,
- int (*cb_func)(void *data, Eina_List *list),
- void *data);
-
- EAPI void e_nms_callback_new_connection_set(E_NMS *nms, int (*cb_func)(E_NMS *nms, const char *service_name, const char *connection));
-
- /* org.freedesktop.NetworkManagerSettings.System */
- EAPI int e_nms_system_save_hostname(E_NMS *nms, const char *hostname);
- EAPI int e_nms_system_add_connection(E_NMS *nms, Eina_Hash *settings);
-
- EAPI void e_nms_system_callback_properties_changed_set(E_NMS *nms, int (*cb_func)(E_NMS *nms));
-
- /* org.freedesktop.NetworkManagerSettings.Connection(.*) api */
- EAPI E_NMS_Connection *e_nms_connection_get(E_NMS *nms, const char *service_name, const char *connection);
- EAPI void e_nms_connection_free(E_NMS_Connection *conn);
- EAPI void e_nms_connection_dump(E_NMS_Connection *conn);
-
- /* TODO: e_nms_connection_update */
- /* TODO: e_nms_connection_delete */
-
- EAPI int e_nms_connection_get_settings(E_NMS_Connection *conn, int (*cb_func)(void *data, Eina_Hash *settings), void *data);
- EAPI int e_nms_connection_secrets_get_secrets(E_NMS_Connection *connection, const char *setting_name, Eina_List *hints, int request_new, int (*cb_func)(void *data, Eina_Hash *secrets), void *data);
-
- EAPI void e_nms_connection_callback_updated_set(E_NMS_Connection *connection, int (*cb_func)(E_NMS_Connection *conn, Eina_Hash *settings));
- /* TODO: e_nms_connection_callback_removed_set */
-
- /* org.freedesktop.NetworkManager.Connection.Active api */
- EAPI int e_nm_active_connection_get(E_NM *nm, const char *conn, int (*cb_func)(void *data, E_NM_Active_Connection *conn), void *data);
- EAPI void e_nm_active_connection_free(E_NM_Active_Connection *conn);
- EAPI void e_nm_active_connection_dump(E_NM_Active_Connection *conn);
-
- EAPI void e_nm_active_connection_callback_properties_changed_set(E_NM_Active_Connection *conn, int (*cb_func)(E_NM_Active_Connection *conn));
-
- /* TODO: org.freedesktop.NetworkManager.VPN.Connection api */
- /* TODO: org.freedesktop.NetworkManager.VPN.Plugin api */
-
- EAPI E_NM_Variant *e_nm_variant_new(int type, const void *value);
- EAPI E_NM_Variant *e_nm_variant_array_new(int type, const void *value, int size);
- EAPI void e_nm_variant_free(E_NM_Variant *variant);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-MAINTAINERCLEANFILES = Makefile.in
-
-AM_CPPFLAGS = \
--I $(top_srcdir)/src/lib/dbus \
-@EDBUS_CFLAGS@ @EINA_CFLAGS@
-
-if BUILD_ENM
-
-lib_LTLIBRARIES = libenm.la
-include_HEADERS = E_Nm.h
-
-libenm_la_SOURCES = \
-e_nm_private.h \
-e_nm.c \
-e_nm_manager.c \
-e_nm_access_point.c \
-e_nm_device.c \
-e_nm_ip4_config.c \
-e_nms.c \
-e_nms_connection.c \
-e_nm_active_connection.c \
-e_nm_variant.c \
-e_nm_util.c
-
-
-libenm_la_LIBADD = \
-@EDBUS_LIBS@ \
-$(top_builddir)/src/lib/dbus/libedbus.la \
-@EINA_LIBS@
-libenm_la_LDFLAGS = -version-info @version_info@ @enm_release_info@
-
-
-libenm_la_DEPENDENCIES = \
-$(top_builddir)/src/lib/dbus/libedbus.la
-
-endif
+++ /dev/null
-This depends on NetworkManager 0.7, which was unrealeased as of 2007-03-20.
-It is only a start, and can't really be finished until the NetworkManagerInfo interface is reworked. So, for now, ignore it :)
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static const Property properties[] = {
- { .name = "WirelessEnabled", .sig = "b", .offset = offsetof(E_NM, wireless_enabled) },
- { .name = "WirelessHardwareEnabled", .sig = "b", .offset = offsetof(E_NM, wireless_hardware_enabled) },
- { .name = "ActiveConnections", .sig = "ao", .offset = offsetof(E_NM, active_connections) },
- { .name = "State", .sig = "u", .offset = offsetof(E_NM, state) },
- { .name = NULL }
-};
-
-static void
-cb_state_changed(void *data, DBusMessage *msg)
-{
- E_NM_Internal *nmi;
- unsigned int state;
- DBusError err;
- if (!msg || !data) return;
-
- nmi = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &state, DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
- nmi->nm.state = state;
- if (nmi->state_changed)
- nmi->state_changed(&(nmi->nm), state);
-}
-
-static void
-cb_properties_changed(void *data, DBusMessage *msg)
-{
- E_NM_Internal *nmi;
- if (!msg || !data) return;
-
- nmi = data;
- parse_properties(nmi, properties, msg);
-
- if (nmi->properties_changed)
- nmi->properties_changed(&(nmi->nm));
-}
-
-static void
-cb_device_added(void *data, DBusMessage *msg)
-{
- E_NM_Internal *nmi;
- const char *device;
- DBusError err;
- if (!msg || !data) return;
-
- nmi = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err, DBUS_TYPE_OBJECT_PATH, &device, DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
- if (nmi->device_added)
- nmi->device_added(&(nmi->nm), device);
-}
-
-static void
-cb_device_removed(void *data, DBusMessage *msg)
-{
- E_NM_Internal *nmi;
- const char *device;
- DBusError err;
- if (!msg || !data) return;
-
- nmi = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err, DBUS_TYPE_OBJECT_PATH, &device, DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
- if (nmi->device_removed)
- nmi->device_removed(&(nmi->nm), device);
-}
-
-EAPI int
-e_nm_get(int (*cb_func)(void *data, E_NM *nm), void *data)
-{
- E_NM_Internal *nmi = NULL;
- Property_Data *d = NULL;
-
- nmi = calloc(1, sizeof(E_NM_Internal));
- if (!nmi) goto error;
- d = calloc(1, sizeof(Property_Data));
- if (!d) goto error;
- d->nmi = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->property = properties;
- d->service = E_NM_SERVICE;
- d->object = strdup(E_NM_PATH);
- d->interface = E_NM_INTERFACE;
- d->reply = nmi;
-
- nmi->conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
- if (!nmi->conn) goto error;
- nmi->handlers = NULL;
- nmi->handlers = eina_list_append(nmi->handlers, e_nm_signal_handler_add(nmi->conn, "StateChanged", cb_state_changed, nmi));
- nmi->handlers = eina_list_append(nmi->handlers, e_nm_signal_handler_add(nmi->conn, "PropertiesChanged", cb_properties_changed, nmi));
- nmi->handlers = eina_list_append(nmi->handlers, e_nm_signal_handler_add(nmi->conn, "DeviceAdded", cb_device_added, nmi));
- nmi->handlers = eina_list_append(nmi->handlers, e_nm_signal_handler_add(nmi->conn, "DeviceRemoved", cb_device_removed, nmi));
-
- return property_get(nmi->conn, d);
-
-error:
- if (d) free(d);
- if (nmi) free(nmi);
- return 0;
-}
-
-EAPI void
-e_nm_free(E_NM *nm)
-{
- E_NM_Internal *nmi;
- void *data;
-
- if (!nm) return;
- nmi = (E_NM_Internal *)nm;
- EINA_LIST_FREE(nmi->nm.active_connections, data)
- free(data);
- EINA_LIST_FREE(nmi->handlers, data)
- e_dbus_signal_handler_del(nmi->conn, data);
- e_dbus_connection_close(nmi->conn);
- free(nmi);
-}
-
-EAPI void
-e_nm_dump(E_NM *nm)
-{
- const char *conn;
- Eina_List *l;
-
- if (!nm) return;
- printf("E_NM:\n");
- printf("wireless_enabled : %d\n", nm->wireless_enabled);
- printf("wireless_hardware_enabled: %d\n", nm->wireless_hardware_enabled);
- printf("active_connections :\n");
- EINA_LIST_FOREACH(nm->active_connections, l, conn)
- printf(" - %s\n", conn);
- printf("state : ");
- switch (nm->state)
- {
- case E_NM_STATE_UNKNOWN:
- printf("E_NM_STATE_UNKNOWN\n");
- break;
- case E_NM_STATE_ASLEEP:
- printf("E_NM_STATE_ASLEEP\n");
- break;
- case E_NM_STATE_CONNECTING:
- printf("E_NM_STATE_CONNECTING\n");
- break;
- case E_NM_STATE_CONNECTED:
- printf("E_NM_STATE_CONNECTED\n");
- break;
- case E_NM_STATE_DISCONNECTED:
- printf("E_NM_STATE_DISCONNECTED\n");
- break;
- }
-}
-
-EAPI void
-e_nm_data_set(E_NM *nm, void *data)
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- nmi->data = data;
-}
-
-EAPI void *
-e_nm_data_get(E_NM *nm)
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- return nmi->data;
-}
-
-EAPI void
-e_nm_callback_state_changed_set(E_NM *nm, int (*cb_func)(E_NM *nm, E_NM_State state))
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- nmi->state_changed = cb_func;
-}
-
-EAPI void
-e_nm_callback_properties_changed_set(E_NM *nm, int (*cb_func)(E_NM *nm))
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- nmi->properties_changed = cb_func;
-}
-
-EAPI void
-e_nm_callback_device_added_set(E_NM *nm, int (*cb_func)(E_NM *nm, const char *device))
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- nmi->device_added = cb_func;
-}
-
-EAPI void
-e_nm_callback_device_removed_set(E_NM *nm, int (*cb_func)(E_NM *nm, const char *device))
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- nmi->device_removed = cb_func;
-}
-
-EAPI int
-e_nm_wireless_enabled_set(E_NM *nm, int enabled)
-{
- E_NM_Internal *nmi;
-
- nmi = (E_NM_Internal *)nm;
- return e_nm_properties_set(nmi->conn, "WirelessEnabled", DBUS_TYPE_BOOLEAN, &enabled, NULL, NULL) ? 1 : 0;
-}
+++ /dev/null
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-#include <string.h>
-
-static const Property access_point_properties[] = {
- { .name = "Flags", .sig = "u", .offset = offsetof(E_NM_Access_Point, flags) },
- { .name = "WpaFlags", .sig = "u", .offset = offsetof(E_NM_Access_Point, wpa_flags) },
- { .name = "RsnFlags", .sig = "u", .offset = offsetof(E_NM_Access_Point, rsn_flags) },
- { .name = "Ssid", .sig = "ay", .offset = offsetof(E_NM_Access_Point, ssid) },
- { .name = "Frequency", .sig = "u", .offset = offsetof(E_NM_Access_Point, frequency) },
- { .name = "HwAddress", .sig = "s", .offset = offsetof(E_NM_Access_Point, hw_address) },
- { .name = "Mode", .sig = "u", .offset = offsetof(E_NM_Access_Point, mode) },
- { .name = "MaxBitrate", .sig = "u", .offset = offsetof(E_NM_Access_Point, max_bitrate) },
- { .name = "Strength", .sig = "y", .offset = offsetof(E_NM_Access_Point, strength) },
- { .name = NULL }
-};
-
-static void
-cb_properties_changed(void *data, DBusMessage *msg)
-{
- E_NM_Access_Point_Internal *ap;
- if (!msg || !data) return;
-
- ap = data;
- parse_properties(ap, access_point_properties, msg);
-
- if (ap->properties_changed)
- ap->properties_changed(&(ap->ap));
-}
-
-EAPI int
-e_nm_access_point_get(E_NM *nm, const char *access_point,
- int (*cb_func)(void *data, E_NM_Access_Point *ap),
- void *data)
-{
- E_NM_Internal *nmi;
- E_NM_Access_Point_Internal *ap;
- Property_Data *d;
-
- if (!access_point) return 0;
-
- nmi = (E_NM_Internal *)nm;
- ap = calloc(1, sizeof(E_NM_Access_Point_Internal));
- ap->nmi = nmi;
- ap->ap.path = strdup(access_point);
- d = calloc(1, sizeof(Property_Data));
- d->nmi = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->reply = ap;
- d->property = access_point_properties;
- d->service = E_NM_SERVICE;
- d->object = strdup(access_point);
- d->interface = E_NM_INTERFACE_ACCESSPOINT;
-
- ap->handlers = eina_list_append(ap->handlers, e_nm_access_point_signal_handler_add(nmi->conn, access_point, "PropertiesChanged", cb_properties_changed, ap));
-
- return property_get(nmi->conn, d);
-}
-
-EAPI void
-e_nm_access_point_free(E_NM_Access_Point *access_point)
-{
- E_NM_Access_Point_Internal *ap;
- void *data;
-
- if (!access_point) return;
- ap = (E_NM_Access_Point_Internal *)access_point;
- if (ap->ap.path) free(ap->ap.path);
- EINA_LIST_FREE(ap->ap.ssid, data)
- free(data);
- if (ap->ap.hw_address) free(ap->ap.hw_address);
- EINA_LIST_FREE(ap->handlers, data)
- e_dbus_signal_handler_del(ap->nmi->conn, data);
- free(ap);
-}
-
-EAPI void
-e_nm_access_point_dump(E_NM_Access_Point *ap)
-{
- Eina_List *l;
- char buffer[1024];
- char *c;
-
- if (!ap) return;
- INFO("E_NM_Access_Point:");
- INFO("flags :");
- if (ap->flags & E_NM_802_11_AP_FLAGS_PRIVACY)
- INFO(" E_NM_802_11_AP_FLAGS_PRIVACY");
- if (ap->flags == E_NM_802_11_AP_FLAGS_NONE)
- INFO(" E_NM_802_11_AP_FLAGS_NONE");
- INFO("wpa_flags :");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_PAIR_WEP40)
- INFO(" E_NM_802_11_AP_SEC_PAIR_WEP40");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_PAIR_WEP104)
- INFO(" E_NM_802_11_AP_SEC_PAIR_WEP104");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_PAIR_TKIP)
- INFO(" E_NM_802_11_AP_SEC_PAIR_TKIP");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_PAIR_CCMP)
- INFO(" E_NM_802_11_AP_SEC_PAIR_CCMP");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_GROUP_WEP40)
- INFO(" E_NM_802_11_AP_SEC_GROUP_WEP40");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_GROUP_WEP104)
- INFO(" E_NM_802_11_AP_SEC_GROUP_WEP104");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_GROUP_TKIP)
- INFO(" E_NM_802_11_AP_SEC_GROUP_TKIP");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_GROUP_CCMP)
- INFO(" E_NM_802_11_AP_SEC_GROUP_CCMP");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_KEY_MGMT_PSK)
- INFO(" E_NM_802_11_AP_SEC_KEY_MGMT_PSK");
- if (ap->wpa_flags & E_NM_802_11_AP_SEC_KEY_MGMT_802_1X)
- INFO(" E_NM_802_11_AP_SEC_KEY_MGMT_802_1X");
- if (ap->wpa_flags == E_NM_802_11_AP_SEC_NONE)
- INFO(" E_NM_802_11_AP_SEC_NONE");
- INFO("rsn_flags :");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_PAIR_WEP40)
- INFO(" E_NM_802_11_AP_SEC_PAIR_WEP40");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_PAIR_WEP104)
- INFO(" E_NM_802_11_AP_SEC_PAIR_WEP104");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_PAIR_TKIP)
- INFO(" E_NM_802_11_AP_SEC_PAIR_TKIP");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_PAIR_CCMP)
- INFO(" E_NM_802_11_AP_SEC_PAIR_CCMP");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_GROUP_WEP40)
- INFO(" E_NM_802_11_AP_SEC_GROUP_WEP40");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_GROUP_WEP104)
- INFO(" E_NM_802_11_AP_SEC_GROUP_WEP104");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_GROUP_TKIP)
- INFO(" E_NM_802_11_AP_SEC_GROUP_TKIP");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_GROUP_CCMP)
- INFO(" E_NM_802_11_AP_SEC_GROUP_CCMP");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_KEY_MGMT_PSK)
- INFO(" E_NM_802_11_AP_SEC_KEY_MGMT_PSK");
- if (ap->rsn_flags & E_NM_802_11_AP_SEC_KEY_MGMT_802_1X)
- INFO(" E_NM_802_11_AP_SEC_KEY_MGMT_802_1X");
- if (ap->rsn_flags == E_NM_802_11_AP_SEC_NONE)
- INFO(" E_NM_802_11_AP_SEC_NONE");
- strcpy(buffer, "ssid : ");
- EINA_LIST_FOREACH(ap->ssid, l, c)
- strcat(buffer, c);
- INFO("%s", buffer);
- INFO("frequency : %u", ap->frequency);
- INFO("hw_address : %s", ap->hw_address);
- INFO("mode : ");
- switch (ap->mode)
- {
- case E_NM_802_11_MODE_UNKNOWN:
- INFO("E_NM_802_11_MODE_UNKNOWN");
- break;
- case E_NM_802_11_MODE_ADHOC:
- INFO("E_NM_802_11_MODE_ADHOC");
- break;
- case E_NM_802_11_MODE_INFRA:
- INFO("E_NM_802_11_MODE_INFRA");
- break;
- }
- INFO("max_bitrate: %u", ap->max_bitrate);
- INFO("strength : %u", ap->strength);
-}
-
-EAPI void
-e_nm_access_point_data_set(E_NM_Access_Point *access_point, void *data)
-{
- E_NM_Access_Point_Internal *ap;
-
- ap = (E_NM_Access_Point_Internal *)access_point;
- ap->data = data;
-}
-
-EAPI void *
-e_nm_access_point_data_get(E_NM_Access_Point *access_point)
-{
- E_NM_Access_Point_Internal *ap;
-
- ap = (E_NM_Access_Point_Internal *)access_point;
- return ap->data;
-}
-
-EAPI void
-e_nm_access_point_callback_properties_changed_set(E_NM_Access_Point *access_point, int (*cb_func)(E_NM_Access_Point *ap))
-{
- E_NM_Access_Point_Internal *ap;
-
- ap = (E_NM_Access_Point_Internal *)access_point;
- ap->properties_changed = cb_func;
-}
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static const Property active_connection_properties[] = {
- { .name = "ServiceName", .sig = "s", .offset = offsetof(E_NM_Active_Connection, service_name) },
- { .name = "Connection", .sig = "o", .offset = offsetof(E_NM_Active_Connection, connection) },
- { .name = "SpecificObject", .sig = "o", .offset = offsetof(E_NM_Active_Connection, specific_object) },
- { .name = "Devices", .sig = "ao", .offset = offsetof(E_NM_Active_Connection, devices) },
- { .name = "State", .sig = "u", .offset = offsetof(E_NM_Active_Connection, state) },
- { .name = "Default", .sig = "b", .offset = offsetof(E_NM_Active_Connection, def) },
- { .name = NULL }
-};
-
-
-EAPI int
-e_nm_active_connection_get(E_NM *nm, const char *connection,
- int (*cb_func)(void *data, E_NM_Active_Connection *conn),
- void *data)
-{
- E_NM_Internal *nmi;
- E_NM_Active_Connection_Internal *conn;
- Property_Data *d;
-
- nmi = (E_NM_Internal *)nm;
- conn = calloc(1, sizeof(E_NM_Active_Connection_Internal));
- conn->nmi = nmi;
- conn->conn.path = strdup(connection);
- d = calloc(1, sizeof(Property_Data));
- d->nmi = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->reply = conn;
- d->property = active_connection_properties;
- d->service = E_NM_SERVICE;
- d->object = strdup(connection);
- d->interface = E_NM_INTERFACE_CONNECTION_ACTIVE;
-
- return property_get(nmi->conn, d);
-}
-
-EAPI void
-e_nm_active_connection_free(E_NM_Active_Connection *conn)
-{
- void *data;
-
- if (!conn) return;
- if (conn->path) free(conn->path);
- if (conn->service_name) free(conn->service_name);
- if (conn->connection) free(conn->connection);
- if (conn->specific_object) free(conn->specific_object);
- EINA_LIST_FREE(conn->devices, data)
- free(data);
- free(conn);
-}
-
-EAPI void
-e_nm_active_connection_dump(E_NM_Active_Connection *conn)
-{
- Eina_List *l;
- const char *device;
-
- if (!conn) return;
- printf("E_NM_Active_Connection:\n");
- printf("service_name : %s\n", conn->service_name);
- printf("connection : %s\n", conn->connection);
- printf("specific_object: %s\n", conn->specific_object);
- printf("devices :\n");
- EINA_LIST_FOREACH(conn->devices, l, device)
- printf(" - %s\n", device);
- printf("state : ");
- switch (conn->state)
- {
- case E_NM_ACTIVE_CONNECTION_STATE_UNKNOWN:
- printf("E_NM_ACTIVE_CONNECTION_STATE_UNKNOWN\n");
- break;
- case E_NM_ACTIVE_CONNECTION_STATE_ACTIVATING:
- printf("E_NM_ACTIVE_CONNECTION_STATE_ACTIVATING\n");
- break;
- case E_NM_ACTIVE_CONNECTION_STATE_ACTIVATED:
- printf("E_NM_ACTIVE_CONNECTION_STATE_ACTIVATED\n");
- break;
- }
- printf("default : %d\n", conn->def);
-}
-
+++ /dev/null
-/*
- * This file defines functions that query each of the functions provided by
- * the org.freedesktop.NetworkManager.Device DBus interface.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static void property_device_type(Property_Data *data, DBusMessageIter *iter);
-
-static const Property device_wired_properties[] = {
- { .name = "HwAddress", .sig = "s", .offset = offsetof(E_NM_Device, wired.hw_address) },
- { .name = "Speed", .sig = "u", .offset = offsetof(E_NM_Device, wired.speed) },
- { .name = "Carrier", .sig = "b", .offset = offsetof(E_NM_Device, wired.carrier) },
- { .name = NULL }
-};
-
-static const Property device_wireless_properties[] = {
- { .name = "HwAddress", .sig = "s", .offset = offsetof(E_NM_Device, wireless.hw_address) },
- { .name = "Mode", .sig = "u", .offset = offsetof(E_NM_Device, wireless.mode) },
- { .name = "Bitrate", .sig = "u", .offset = offsetof(E_NM_Device, wireless.bitrate) },
- { .name = "ActiveAccessPoint", .sig = "o", .offset = offsetof(E_NM_Device, wireless.active_access_point) },
- { .name = "WirelessCapabilities", .sig = "u", .offset = offsetof(E_NM_Device, wireless.wireless_capabilities) },
- { .name = NULL }
-};
-
-static const Property device_properties[] = {
- { .name = "Udi", .sig = "s", .offset = offsetof(E_NM_Device, udi) },
- { .name = "Interface", .sig = "s", .offset = offsetof(E_NM_Device, interface) },
- { .name = "Driver", .sig = "s", .offset = offsetof(E_NM_Device, driver) },
- { .name = "Capabilities", .sig = "u", .offset = offsetof(E_NM_Device, capabilities) },
- { .name = "Ip4Address", .sig = "u", .offset = offsetof(E_NM_Device, ip4_address) },
- { .name = "State", .sig = "u", .offset = offsetof(E_NM_Device, state) },
- { .name = "Ip4Config", .sig = "o", .offset = offsetof(E_NM_Device, ip4_config) },
- { .name = "Dhcp4Config", .sig = "o", .offset = offsetof(E_NM_Device, dhcp4_config) },
- { .name = "Managed", .sig = "b", .offset = offsetof(E_NM_Device, managed) },
- { .name = "DeviceType", .func = property_device_type, .offset = offsetof(E_NM_Device, device_type) },
- { .name = NULL }
-};
-
-static void
-cb_state_changed(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- unsigned int new_state, old_state, reason;
- DBusError err;
- if (!msg || !data) return;
-
- dev = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err,
- DBUS_TYPE_UINT32, &new_state,
- DBUS_TYPE_UINT32, &old_state,
- DBUS_TYPE_UINT32, &reason,
- DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
- dev->dev.state = new_state;
- if (dev->state_changed)
- dev->state_changed(&(dev->dev), new_state, old_state, reason);
-}
-
-static void
-cb_wired_properties_changed(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- if (!msg || !data) return;
-
- dev = data;
- parse_properties(dev, device_wired_properties, msg);
-
- if (dev->properties_changed)
- dev->properties_changed(&(dev->dev));
-}
-
-static void
-cb_wireless_properties_changed(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- if (!msg || !data) return;
-
- dev = data;
- parse_properties(dev, device_wireless_properties, msg);
-
- if (dev->properties_changed)
- dev->properties_changed(&(dev->dev));
-}
-
-static void
-cb_wireless_access_point_added(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- DBusError err;
- const char *path;
- if (!msg || !data) return;
-
- dev = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err,
- DBUS_TYPE_OBJECT_PATH, &path,
- DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
-
- if (dev->access_point_added)
- dev->access_point_added(&(dev->dev), path);
-}
-
-static void
-cb_wireless_access_point_removed(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- DBusError err;
- const char *path;
- if (!msg || !data) return;
-
- dev = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err,
- DBUS_TYPE_OBJECT_PATH, &path,
- DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
-
- if (dev->access_point_removed)
- dev->access_point_removed(&(dev->dev), path);
-}
-
-static void
-cb_properties_changed(void *data, DBusMessage *msg)
-{
- E_NM_Device_Internal *dev;
- if (!msg || !data) return;
-
- dev = data;
- parse_properties(dev, device_properties, msg);
-
- if (dev->properties_changed)
- dev->properties_changed(&(dev->dev));
-}
-
-static void
-property_device_type(Property_Data *data, DBusMessageIter *iter)
-{
- E_NM_Device_Internal *dev;
-
- if (!check_arg_type(iter, 'u')) goto error;
-
- dev = data->reply;
- dbus_message_iter_get_basic(iter, &(dev->dev.device_type));
- switch (dev->dev.device_type)
- {
- case E_NM_DEVICE_TYPE_WIRED:
- data->property = device_wired_properties;
- data->interface = E_NM_INTERFACE_DEVICE_WIRED;
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_wired_signal_handler_add(data->nmi->conn, dev->dev.udi, "PropertiesChanged", cb_wired_properties_changed, dev));
- property_get(data->nmi->conn, data);
- break;
- case E_NM_DEVICE_TYPE_WIRELESS:
- data->property = device_wireless_properties;
- data->interface = E_NM_INTERFACE_DEVICE_WIRELESS;
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_wireless_signal_handler_add(data->nmi->conn, dev->dev.udi, "PropertiesChanged", cb_wireless_properties_changed, dev));
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_wireless_signal_handler_add(data->nmi->conn, dev->dev.udi, "AccessPointAdded", cb_wireless_access_point_added, dev));
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_wireless_signal_handler_add(data->nmi->conn, dev->dev.udi, "AccessPointRemoved", cb_wireless_access_point_removed, dev));
- property_get(data->nmi->conn, data);
- break;
- default:
- if (data->cb_func) data->cb_func(data->data, dev);
- property_data_free(data);
- break;
- }
- return;
-
-error:
- if (data->reply) e_nm_device_free(data->reply);
- if (data->cb_func) data->cb_func(data->data, NULL);
- property_data_free(data);
-}
-
-static void
-check_done(Reply_Data *d, Eina_List *list)
-{
- if (!list)
- {
- d->cb_func(d->data, NULL);
- free(d);
- }
- else if (eina_list_data_get(list) != (void *)-1)
- {
- d->cb_func(d->data, list);
- free(d);
- }
-}
-
-static int
-cb_access_point(void *data, E_NM_Access_Point *ap)
-{
- Reply_Data *d;
- Eina_List *list;
-
- d = data;
- list = d->reply;
- if (ap)
- list = eina_list_append(list, ap);
- list = eina_list_remove_list(list, list);
-
- check_done(d, list);
- d->reply = list;
- return 1;
-}
-
-static void
-cb_access_points(void *data, void *reply, DBusError *err)
-{
- Reply_Data *d;
- E_NM_Device_Internal *dev;
- Eina_List *access_points;
- Eina_List *list = NULL;
- Eina_List *l;
- const char *ap;
-
- d = data;
- dev = d->object;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- d->cb_func(d->data, NULL);
- free(d);
- return;
- }
- access_points = reply;
- //TODO: ecore_list_free_cb_set(list, ECORE_FREE_CB(e_nm_access_point_free));
- EINA_LIST_FOREACH(access_points, l, ap)
- {
- list = eina_list_prepend(list, (void *)-1);
- d->reply = list;
- e_nm_access_point_get(&(dev->nmi->nm), ap, cb_access_point, d);
- }
-}
-
-EAPI int
-e_nm_device_get(E_NM *nm, const char *device,
- int (*cb_func)(void *data, E_NM_Device *device),
- void *data)
-{
- E_NM_Internal *nmi;
- E_NM_Device_Internal *dev;
- Property_Data *d;
-
- nmi = (E_NM_Internal *)nm;
- dev = calloc(1, sizeof(E_NM_Device_Internal));
- dev->nmi = nmi;
- d = calloc(1, sizeof(Property_Data));
- d->nmi = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->reply = dev;
- d->property = device_properties;
- d->service = E_NM_SERVICE;
- d->object = strdup(device);
- d->interface = E_NM_INTERFACE_DEVICE;
-
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_signal_handler_add(nmi->conn, device, "StateChanged", cb_state_changed, dev));
- dev->handlers = eina_list_append(dev->handlers, e_nm_device_signal_handler_add(nmi->conn, device, "PropertiesChanged", cb_properties_changed, dev));
-
- return property_get(nmi->conn, d);
-}
-
-EAPI void
-e_nm_device_free(E_NM_Device *device)
-{
- E_NM_Device_Internal *dev;
- void *data;
-
- if (!device) return;
- dev = (E_NM_Device_Internal *)device;
- if (dev->dev.udi) free(dev->dev.udi);
- if (dev->dev.interface) free(dev->dev.interface);
- if (dev->dev.driver) free(dev->dev.driver);
- if (dev->dev.ip4_config) free(dev->dev.ip4_config);
- if (dev->dev.dhcp4_config) free(dev->dev.dhcp4_config);
- switch (dev->dev.device_type)
- {
- case E_NM_DEVICE_TYPE_WIRED:
- if (dev->dev.wired.hw_address) free(dev->dev.wired.hw_address);
- break;
- case E_NM_DEVICE_TYPE_WIRELESS:
- if (dev->dev.wireless.hw_address) free(dev->dev.wireless.hw_address);
- if (dev->dev.wireless.active_access_point) free(dev->dev.wireless.active_access_point);
- break;
- }
- EINA_LIST_FREE(dev->handlers, data)
- e_dbus_signal_handler_del(dev->nmi->conn, data);
- free(dev);
-}
-
-EAPI void
-e_nm_device_dump(E_NM_Device *dev)
-{
- if (!dev) return;
- printf("E_NM_Device:\n");
- printf("udi : %s\n", dev->udi);
- printf("interface : %s\n", dev->interface);
- printf("driver : %s\n", dev->driver);
- printf("capabilities : ");
- if (dev->capabilities & E_NM_DEVICE_CAP_NM_SUPPORTED)
- printf(" E_NM_DEVICE_CAP_NM_SUPPORTED");
- if (dev->capabilities & E_NM_DEVICE_CAP_CARRIER_DETECT)
- printf(" E_NM_DEVICE_CAP_CARRIER_DETECT");
- if (dev->capabilities == E_NM_DEVICE_CAP_NONE)
- printf(" E_NM_DEVICE_CAP_NONE");
- printf("\n");
- printf("ip4_address : %s\n", ip4_address2str(dev->ip4_address));
- printf("state : ");
- switch (dev->state)
- {
- case E_NM_DEVICE_STATE_UNKNOWN:
- printf("E_NM_DEVICE_STATE_UNKNOWN\n");
- break;
- case E_NM_DEVICE_STATE_UNMANAGED:
- printf("E_NM_DEVICE_STATE_UNMANAGED\n");
- break;
- case E_NM_DEVICE_STATE_UNAVAILABLE:
- printf("E_NM_DEVICE_STATE_UNAVAILABLE\n");
- break;
- case E_NM_DEVICE_STATE_DISCONNECTED:
- printf("E_NM_DEVICE_STATE_DISCONNECTED\n");
- break;
- case E_NM_DEVICE_STATE_PREPARE:
- printf("E_NM_DEVICE_STATE_PREPARE\n");
- break;
- case E_NM_DEVICE_STATE_CONFIG:
- printf("E_NM_DEVICE_STATE_CONFIG\n");
- break;
- case E_NM_DEVICE_STATE_NEED_AUTH:
- printf("E_NM_DEVICE_STATE_NEED_AUTH\n");
- break;
- case E_NM_DEVICE_STATE_IP_CONFIG:
- printf("E_NM_DEVICE_STATE_IP_CONFIG\n");
- break;
- case E_NM_DEVICE_STATE_ACTIVATED:
- printf("E_NM_DEVICE_STATE_ACTIVATED\n");
- break;
- case E_NM_DEVICE_STATE_FAILED:
- printf("E_NM_DEVICE_STATE_FAILED\n");
- break;
- }
- printf("ip4_config : %s\n", dev->ip4_config);
- printf("dhcp4_config : %s\n", dev->dhcp4_config);
- printf("managed : %d\n", dev->managed);
- printf("device_type : %u\n", dev->device_type);
- switch (dev->device_type)
- {
- case E_NM_DEVICE_TYPE_WIRED:
- printf("hw_address : %s\n", dev->wired.hw_address);
- printf("speed : %u\n", dev->wired.speed);
- printf("carrier : %d\n", dev->wired.carrier);
- break;
- case E_NM_DEVICE_TYPE_WIRELESS:
- printf("hw_address : %s\n", dev->wireless.hw_address);
- printf("mode : ");
- switch (dev->wireless.mode)
- {
- case E_NM_802_11_MODE_UNKNOWN:
- printf("E_NM_802_11_MODE_UNKNOWN\n");
- break;
- case E_NM_802_11_MODE_ADHOC:
- printf("E_NM_802_11_MODE_ADHOC\n");
- break;
- case E_NM_802_11_MODE_INFRA:
- printf("E_NM_802_11_MODE_INFRA\n");
- break;
- }
- printf("bitrate : %u\n", dev->wireless.bitrate);
- printf("active_access_point : %s\n", dev->wireless.active_access_point);
- printf("wireless_capabilities: ");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_CIPHER_WEP40)
- printf(" E_NM_802_11_DEVICE_CAP_CIPHER_WEP40");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_CIPHER_WEP104)
- printf(" E_NM_802_11_DEVICE_CAP_CIPHER_WEP104");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_CIPHER_TKIP)
- printf(" E_NM_802_11_DEVICE_CAP_CIPHER_TKIP");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_CIPHER_CCMP)
- printf(" E_NM_802_11_DEVICE_CAP_CIPHER_CCMP");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_WPA)
- printf(" E_NM_802_11_DEVICE_CAP_WPA");
- if (dev->wireless.wireless_capabilities & E_NM_802_11_DEVICE_CAP_RSN)
- printf(" E_NM_802_11_DEVICE_CAP_RSN");
- if (dev->wireless.wireless_capabilities == E_NM_802_11_DEVICE_CAP_NONE)
- printf(" E_NM_802_11_DEVICE_CAP_NONE");
- printf("\n");
- break;
- }
-}
-
-EAPI int
-e_nm_device_wireless_get_access_points(E_NM_Device *device, int (*cb_func)(void *data, Eina_List *access_points), void *data)
-{
- DBusMessage *msg;
- Reply_Data *d;
- E_NM_Device_Internal *dev;
- int ret;
-
- if (device->device_type != E_NM_DEVICE_TYPE_WIRELESS) return 0;
-
- dev = (E_NM_Device_Internal *)device;
- d = calloc(1, sizeof(Reply_Data));
- d->object = dev;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
-
- msg = e_nm_device_wireless_call_new(dev->dev.udi, "GetAccessPoints");
-
- ret = e_dbus_method_call_send(dev->nmi->conn, msg, cb_nm_object_path_list, cb_access_points, free_nm_object_path_list, -1, d) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI void
-e_nm_device_data_set(E_NM_Device *device, void *data)
-{
- E_NM_Device_Internal *dev;
-
- dev = (E_NM_Device_Internal *)device;
- dev->data = data;
-}
-
-EAPI void *
-e_nm_device_data_get(E_NM_Device *device)
-{
- E_NM_Device_Internal *dev;
-
- dev = (E_NM_Device_Internal *)device;
- return dev->data;
-}
-
-EAPI void
-e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason))
-{
- E_NM_Device_Internal *dev;
-
- dev = (E_NM_Device_Internal *)device;
- dev->state_changed = cb_func;
-}
-
-EAPI void
-e_nm_device_callback_properties_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *dev))
-{
- E_NM_Device_Internal *dev;
-
- dev = (E_NM_Device_Internal *)device;
- dev->properties_changed = cb_func;
-}
-
-EAPI void
-e_nm_device_wireless_callback_access_point_added_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, const char *access_point))
-{
- E_NM_Device_Internal *dev;
-
- if (device->device_type != E_NM_DEVICE_TYPE_WIRELESS) return;
- dev = (E_NM_Device_Internal *)device;
- dev->access_point_added = cb_func;
-}
-
-EAPI void
-e_nm_device_wireless_callback_access_point_removed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, const char *access_point))
-{
- E_NM_Device_Internal *dev;
-
- if (device->device_type != E_NM_DEVICE_TYPE_WIRELESS) return;
- dev = (E_NM_Device_Internal *)device;
- dev->access_point_removed = cb_func;
-}
-
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static const Property ip4_config_properties[] = {
- { .name = "Addresses", .sig = "aau", .offset = offsetof(E_NM_IP4_Config, addresses) },
- { .name = "Nameservers", .sig = "au", .offset = offsetof(E_NM_IP4_Config, nameservers) },
- { .name = "Domains", .sig = "as", .offset = offsetof(E_NM_IP4_Config, domains) },
- { .name = "Routes", .sig = "aau", .offset = offsetof(E_NM_IP4_Config, routes) },
- { .name = NULL }
-};
-
-EAPI int
-e_nm_ip4_config_get(E_NM *nm, const char *ip4_config,
- int (*cb_func)(void *data, E_NM_IP4_Config *config),
- void *data)
-{
- E_NM_Internal *nmi;
- E_NM_IP4_Config_Internal *config;
- Property_Data *d;
-
- if (!ip4_config) return 0;
-
- nmi = (E_NM_Internal *)nm;
- config = calloc(1, sizeof(E_NM_IP4_Config_Internal));
- config->nmi = nmi;
- d = calloc(1, sizeof(Property_Data));
- d->nmi = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->reply = config;
- d->property = ip4_config_properties;
- d->service = E_NM_SERVICE;
- d->object = strdup(ip4_config);
- d->interface = E_NM_INTERFACE_IP4CONFIG;
-
- return property_get(nmi->conn, d);
-}
-
-EAPI void
-e_nm_ip4_config_free(E_NM_IP4_Config *config)
-{
- Eina_List *l;
- void *data;
-
- if (!config) return;
- EINA_LIST_FREE(config->addresses, l)
- EINA_LIST_FREE(l, data)
- free(data);
- EINA_LIST_FREE(config->nameservers, data)
- free(data);
- EINA_LIST_FREE(config->domains, data)
- free(data);
- EINA_LIST_FREE(config->routes, l)
- EINA_LIST_FREE(l, data)
- free(data);
- free(config);
-}
-
-EAPI void
-e_nm_ip4_config_dump(E_NM_IP4_Config *config)
-{
- unsigned int *u;
- const char *domain;
- Eina_List *list, *l;
-
- if (!config) return;
- printf("E_NM_IP4_Config:\n");
- printf("addresses :\n");
- EINA_LIST_FOREACH(config->addresses, l, list)
- {
- char buffer[1024];
- Eina_List *l2;
-
- strcpy(buffer, " -");
- EINA_LIST_FOREACH(list, l2, u)
- {
- strcat(buffer, " ");
- strcat(buffer, ip4_address2str(*u));
- }
- printf("%s\n", buffer);
- }
- printf("nameservers:\n");
- EINA_LIST_FOREACH(config->nameservers, l, u)
- {
- printf(" - %s\n", ip4_address2str(*u));
- }
- printf("domains :\n");
- EINA_LIST_FOREACH(config->domains, l, domain)
- {
- printf(" - %s\n", domain);
- }
- printf("routes :\n");
- EINA_LIST_FOREACH(config->routes, l, list)
- {
- char buffer[1024];
- Eina_List *l2;
-
- strcpy(buffer, " -");
- EINA_LIST_FOREACH(list, l2, u)
- {
- strcat(buffer, " ");
- strcat(buffer, ip4_address2str(*u));
- }
- printf("%s\n", buffer);
- }
-}
-
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <unistd.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static void
-check_done(Reply_Data *d, Eina_List *list)
-{
- if (!list)
- {
- d->cb_func(d->data, NULL);
- free(d);
- }
- else if (eina_list_data_get(list) != (void *)-1)
- {
- d->cb_func(d->data, list);
- free(d);
- }
-}
-
-static int
-cb_nm_device(void *data, E_NM_Device *dev)
-{
- Reply_Data *d;
- Eina_List *list;
-
- d = data;
- list = d->reply;
- if (dev)
- list = eina_list_append(list, dev);
- list = eina_list_remove_list(list, list);
-
- check_done(d, list);
- d->reply = list;
- return 1;
-}
-
-static void
-cb_nm_devices(void *data, void *reply, DBusError *err)
-{
- Reply_Data *d;
- E_NM *nm;
- Eina_List *devices;
- Eina_List *list = NULL;
- Eina_List *l;
- const char *dev;
-
- d = data;
- nm = d->object;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- d->cb_func(d->data, NULL);
- free(d);
- return;
- }
- devices = reply;
- //TODO: ecore_list_free_cb_set(list, ECORE_FREE_CB(e_nm_device_free));
- EINA_LIST_FOREACH(devices, l, dev)
- {
- list = eina_list_prepend(list, (void *)-1);
- d->reply = list;
- e_nm_device_get(nm, dev, cb_nm_device, d);
- }
-}
-
-/**
- * Get all network devices.
- *
- * Returns an Eina_List of dbus object paths for network devices. This list is
- * of const char *, and is freed automatically after the callback returns.
- *
- * @param nm an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-EAPI int
-e_nm_get_devices(E_NM *nm, int (*cb_func)(void *data, Eina_List *list), void *data)
-{
- DBusMessage *msg;
- Reply_Data *d;
- E_NM_Internal *nmi;
- int ret;
-
- nmi = (E_NM_Internal *)nm;
- d = calloc(1, sizeof(Reply_Data));
- d->object = nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
-
- msg = e_nm_call_new("GetDevices");
-
- ret = e_dbus_method_call_send(nmi->conn, msg, cb_nm_object_path_list, cb_nm_devices, free_nm_object_path_list, -1, d) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI int
-e_nm_activate_connection(E_NM *nm, const char *service_name, const char *connection, E_NM_Device *device, const char *specific_object)
-{
- DBusMessage *msg;
- E_NM_Internal *nmi;
- int ret;
-
- nmi = (E_NM_Internal *)nm;
-
- msg = e_nm_call_new("ActivateConnection");
- dbus_message_append_args(msg,
- DBUS_TYPE_STRING, &service_name,
- DBUS_TYPE_OBJECT_PATH, &connection,
- DBUS_TYPE_OBJECT_PATH, &device->udi,
- DBUS_TYPE_OBJECT_PATH, &specific_object,
- DBUS_TYPE_INVALID);
-
- ret = e_dbus_message_send(nmi->conn, msg, NULL, -1, NULL) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI int
-e_nm_deactivate_connection(E_NM *nm, E_NM_Active_Connection *conn)
-{
- DBusMessage *msg;
- E_NM_Internal *nmi;
- int ret;
-
- nmi = (E_NM_Internal *)nm;
-
- msg = e_nm_call_new("DeactivateConnection");
- dbus_message_append_args(msg,
- DBUS_TYPE_OBJECT_PATH, &conn->path,
- DBUS_TYPE_INVALID);
-
- ret = e_dbus_message_send(nmi->conn, msg, NULL, -1, NULL) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI int
-e_nm_sleep(E_NM *nm, int sleep)
-{
- DBusMessage *msg;
- E_NM_Internal *nmi;
- int ret;
-
- nmi = (E_NM_Internal *)nm;
-
- msg = e_nm_call_new("Sleep");
-
- ret = e_dbus_message_send(nmi->conn, msg, NULL, -1, NULL) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
+++ /dev/null
-#ifndef E_NM_PRIVATE_H
-#define E_NM_PRIVATE_H
-
-#define E_NM_PATH "/org/freedesktop/NetworkManager"
-#define E_NM_SERVICE "org.freedesktop.NetworkManager"
-#define E_NM_INTERFACE "org.freedesktop.NetworkManager"
-#define E_NM_INTERFACE_ACCESSPOINT "org.freedesktop.NetworkManager.AccessPoint"
-#define E_NM_INTERFACE_DEVICE "org.freedesktop.NetworkManager.Device"
-#define E_NM_INTERFACE_DEVICE_WIRELESS "org.freedesktop.NetworkManager.Device.Wireless"
-#define E_NM_INTERFACE_DEVICE_WIRED "org.freedesktop.NetworkManager.Device.Wired"
-#define E_NM_INTERFACE_IP4CONFIG "org.freedesktop.NetworkManager.IP4Config"
-#define E_NM_INTERFACE_CONNECTION_ACTIVE "org.freedesktop.NetworkManager.Connection.Active"
-#define E_NMS_PATH "/org/freedesktop/NetworkManagerSettings"
-#define E_NMS_SERVICE_SYSTEM "org.freedesktop.NetworkManagerSystemSettings"
-#define E_NMS_SERVICE_USER "org.freedesktop.NetworkManagerUserSettings"
-#define E_NMS_INTERFACE "org.freedesktop.NetworkManagerSettings"
-#define E_NMS_INTERFACE_SYSTEM "org.freedesktop.NetworkManagerSettings.System"
-#define E_NMS_INTERFACE_CONNECTION "org.freedesktop.NetworkManagerSettings.Connection"
-#define E_NMS_INTERFACE_CONNECTION_SECRETS "org.freedesktop.NetworkManagerSettings.Connection.Secrets"
-
-#define e_nm_call_new(member) dbus_message_new_method_call(E_NM_SERVICE, E_NM_PATH, E_NM_INTERFACE, member)
-#define e_nm_device_wireless_call_new(device, member) dbus_message_new_method_call(E_NM_SERVICE, device, E_NM_INTERFACE_DEVICE_WIRELESS, member)
-#define e_nms_call_new(service, member) dbus_message_new_method_call(service, E_NMS_PATH, E_NMS_INTERFACE, member)
-#define e_nms_system_call_new(service, member) dbus_message_new_method_call(service, E_NMS_PATH, E_NMS_INTERFACE_SYSTEM, member)
-#define e_nms_connection_call_new(service, conn, member) dbus_message_new_method_call(service, conn, E_NMS_INTERFACE_CONNECTION, member)
-#define e_nms_connection_secrets_call_new(service, conn, member) dbus_message_new_method_call(service, conn, E_NMS_INTERFACE_CONNECTION_SECRETS, member)
-
-#define e_nm_properties_set(con, prop, type, value, cb, data) e_dbus_properties_set(con, E_NM_SERVICE, E_NM_PATH, E_NM_INTERFACE, prop, type, value, (E_DBus_Method_Return_Cb) cb, data)
-
-#define e_nm_signal_handler_add(con, sig, cb, data) e_dbus_signal_handler_add(con, E_NM_SERVICE, E_NM_PATH, E_NM_INTERFACE, sig, cb, data)
-#define e_nm_access_point_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, E_NM_SERVICE, dev, E_NM_INTERFACE_ACCESSPOINT, sig, cb, data)
-#define e_nm_device_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE, sig, cb, data)
-#define e_nm_device_wired_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE_WIRED, sig, cb, data)
-#define e_nm_device_wireless_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE_WIRELESS, sig, cb, data)
-
-#define e_nms_signal_handler_add(con, service, sig, cb, data) e_dbus_signal_handler_add(con, service, E_NMS_PATH, E_NMS_INTERFACE, sig, cb, data)
-#define e_nms_system_signal_handler_add(con, service, sig, cb, data) e_dbus_signal_handler_add(con, service, E_NMS_PATH, E_NMS_INTERFACE_SYSTEM, sig, cb, data)
-#define e_nms_connection_signal_handler_add(con, service, dev, sig, cb, data) e_dbus_signal_handler_add(con, service, dev, E_NMS_INTERFACE_CONNECTION, sig, cb, data)
-
-typedef struct E_NM_Internal E_NM_Internal;
-struct E_NM_Internal
-{
- E_NM nm;
-
- E_DBus_Connection *conn;
-
- int (*state_changed)(E_NM *nm, E_NM_State state);
- int (*properties_changed)(E_NM *nm);
- int (*device_added)(E_NM *nm, const char *device);
- int (*device_removed)(E_NM *nm, const char *device);
- Eina_List *handlers;
-
- void *data;
-};
-
-typedef struct E_NM_Device_Internal E_NM_Device_Internal;
-struct E_NM_Device_Internal
-{
- E_NM_Device dev;
-
- E_NM_Internal *nmi;
-
- int (*state_changed)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason);
- int (*properties_changed)(E_NM_Device *device);
- /* TODO: Save some bytes by having internal wired and wireless object */
- int (*access_point_added)(E_NM_Device *device, const char *access_point);
- int (*access_point_removed)(E_NM_Device *device, const char *access_point);
- Eina_List *handlers;
-
- void *data;
-};
-
-typedef struct E_NM_Access_Point_Internal E_NM_Access_Point_Internal;
-struct E_NM_Access_Point_Internal
-{
- E_NM_Access_Point ap;
-
- E_NM_Internal *nmi;
-
- int (*properties_changed)(E_NM_Access_Point *device);
- Eina_List *handlers;
-
- void *data;
-};
-
-typedef struct E_NM_IP4_Config_Internal E_NM_IP4_Config_Internal;
-struct E_NM_IP4_Config_Internal
-{
- E_NM_IP4_Config cfg;
-
- E_NM_Internal *nmi;
-};
-
-typedef struct E_NMS_Internal E_NMS_Internal;
-struct E_NMS_Internal
-{
- E_NMS nms;
-
- E_NM_Internal *nmi;
-
- int (*new_connection)(E_NMS *nms, const char *service_name, const char *connection);
- int (*properties_changed)(E_NMS *nms);
- Eina_List *handlers;
-
- void *data;
-};
-
-typedef struct E_NMS_Connection_Internal E_NMS_Connection_Internal;
-struct E_NMS_Connection_Internal
-{
- E_NMS_Connection conn;
- E_NM_Internal *nmi;
-
- int (*updated)(E_NMS_Connection *conn, Eina_Hash *settings);
-/* TODO: int (*removed)(E_NMS_Connection *conn); */
- Eina_List *handlers;
-
- void *data;
-};
-
-typedef struct E_NM_Active_Connection_Internal E_NM_Active_Connection_Internal;
-struct E_NM_Active_Connection_Internal
-{
- E_NM_Active_Connection conn;
-
- E_NM_Internal *nmi;
- char *path;
-};
-
-typedef int (*Object_Cb)(void *data, void *reply);
-#define OBJECT_CB(function) ((Object_Cb)function)
-
-typedef struct Property Property;
-typedef struct Property_Data Property_Data;
-struct Property
-{
- const char *name;
- const char *sig;
- void (*func)(Property_Data *data, DBusMessageIter *iter);
- size_t offset;
-};
-struct Property_Data
-{
- E_NM_Internal *nmi;
- const char *service;
- char *object;
- const char *interface;
- Object_Cb cb_func;
- void *reply;
- void *data;
-
- const Property *property;
-};
-
-typedef struct Reply_Data Reply_Data;
-struct Reply_Data
-{
- void *object;
- int (*cb_func)(void *data, void *reply);
- void *data;
- void *reply;
-};
-
-int property_get(E_DBus_Connection *conn, Property_Data *data);
-void property(void *data, DBusMessage *msg, DBusError *err);
-void parse_properties(void *data, const Property *properties, DBusMessage *msg);
-
-void *cb_nm_object_path_list(DBusMessage *msg, DBusError *err);
-void free_nm_object_path_list(void *data);
-Eina_Hash *parse_settings(DBusMessage *msg);
-
-int check_arg_type(DBusMessageIter *iter, char type);
-
-void property_data_free(Property_Data *data);
-
-const char *ip4_address2str(unsigned int address);
-#endif
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "E_DBus.h"
-#include "e_dbus_private.h"
-
-#define CHECK_SIGNATURE(msg, err, sig) \
- if (dbus_error_is_set((err))) \
- { \
- ERR("%s - %s", (err)->name, (err)->message); \
- return NULL; \
- } \
- \
- if (!dbus_message_has_signature((msg), (sig))) \
- { \
- dbus_set_error((err), DBUS_ERROR_INVALID_SIGNATURE, ""); \
- return NULL; \
- }
-
-static E_NM_Variant *property_string(DBusMessageIter *iter, const char *sig, void *value);
-static E_NM_Variant *property_basic(DBusMessageIter *iter, const char *sig, void *value);
-static E_NM_Variant *property_variant(DBusMessageIter *iter, const char *sig, void *value);
-static E_NM_Variant *property_array(DBusMessageIter *iter, const char *sig, void *value);
-static void property_free(E_NM_Variant *var);
-
-typedef E_NM_Variant *(*Property_Cb)(DBusMessageIter *iter, const char *sig, void *value);
-
-typedef struct Sig_Property Sig_Property;
-struct Sig_Property
-{
- const char *sig;
- Property_Cb func;
-};
-
-static const Sig_Property sigs[] = {
- { .sig = "s", property_string },
- { .sig = "o", property_string },
- { .sig = "u", property_basic },
- { .sig = "b", property_basic },
- { .sig = "y", property_basic },
- { .sig = "t", property_basic },
- { .sig = "v", property_variant },
- { .sig = "a", property_array },
- { .sig = "as", property_array },
- { .sig = "ao", property_array },
- { .sig = "ay", property_array },
- { .sig = "au", property_array },
- { .sig = "aau", property_array },
- { .sig = NULL }
-};
-
-static const Property_Cb
-find_property_cb(const char *sig)
-{
- const Sig_Property *t;
-
- if (!sig) return NULL;
-
- for (t = sigs; t->sig; t++)
- {
- if (!strcmp(t->sig, sig))
- return t->func;
- }
- ERR("Missing property parser for sig: %s", sig);
- return NULL;
-}
-
-static const Property *
-find_property(const char *name, const Property *properties)
-{
- const Property *p;
-
- if (!name) return NULL;
-
- for (p = properties; p->name; p++)
- {
- if (!strcmp(p->name, name))
- return p;
- }
- return NULL;
-}
-
-static E_NM_Variant *
-property_string(DBusMessageIter *iter, const char *sig, void *value)
-{
- const char *str;
- E_NM_Variant *var = NULL;
-
- if ((value) && (!sig))
- {
- ERR("Can't have value and no sig");
- return NULL;
- }
- dbus_message_iter_get_basic(iter, &str);
- if (sig)
- {
- if (!check_arg_type(iter, sig[0])) return NULL;
- if (!value) value = &var;
- }
- else
- {
- var = malloc(sizeof(E_NM_Variant));
- var->type = dbus_message_iter_get_arg_type(iter);
- value = &var->s;
- }
- *((char **)value) = strdup(str);
-
- return var;
-}
-
-static E_NM_Variant *
-property_basic(DBusMessageIter *iter, const char *sig, void *value)
-{
- E_NM_Variant *var = NULL;
-
- if ((value) && (!sig))
- {
- ERR("Can't have value and no sig");
- return NULL;
- }
- if (sig)
- {
- if (!check_arg_type(iter, sig[0])) return NULL;
- if (!value)
- {
- // TODO: Only alloc right size
- var = malloc(sizeof(long long));
- value = var;
- }
- }
- else
- {
- var = malloc(sizeof(E_NM_Variant));
- var->type = dbus_message_iter_get_arg_type(iter);
- value = var;
- }
- dbus_message_iter_get_basic(iter, value);
-
- return var;
-}
-
-static E_NM_Variant *
-property_variant(DBusMessageIter *iter, const char *sig __UNUSED__, void *value __UNUSED__)
-{
- DBusMessageIter v_iter;
- Property_Cb func;
- char tmp[2];
-
- if (!check_arg_type(iter, 'v')) return NULL;
- dbus_message_iter_recurse(iter, &v_iter);
- tmp[0] = dbus_message_iter_get_arg_type(&v_iter);
- tmp[1] = 0;
- func = find_property_cb(tmp);
- if (!func) return NULL;
- return (*func)(&v_iter, NULL, NULL);
-}
-
-static E_NM_Variant *
-property_array(DBusMessageIter *iter, const char *sig, void *value)
-{
- DBusMessageIter a_iter;
- Eina_List **list;
- Property_Cb func;
- E_NM_Variant *var = NULL;
- const char *subsig = NULL;
-
- if ((value) && (!sig))
- {
- ERR("Can't have value and no sig");
- return NULL;
- }
-
- dbus_message_iter_recurse(iter, &a_iter);
- if (sig)
- {
- if (!check_arg_type(iter, sig[0])) return NULL;
- subsig = (sig + 1);
- func = find_property_cb(subsig);
- if (!func) return NULL;
- if (!value) value = &var;
- list = (Eina_List **)value;
- *list = NULL;
- }
- else
- {
- char tmp[] = { dbus_message_iter_get_arg_type(&a_iter), 0 };
- func = find_property_cb(tmp);
- if (!func) return NULL;
- var = malloc(sizeof(E_NM_Variant));
- var->type = dbus_message_iter_get_arg_type(iter);
- list = (Eina_List **)&var->a;
- *list = NULL;
- }
-
- while (dbus_message_iter_get_arg_type(&a_iter) != DBUS_TYPE_INVALID)
- {
- void *subvar;
-
- subvar = (*func)(&a_iter, subsig, NULL);
- if (subvar) *list = eina_list_append(*list, subvar);
- dbus_message_iter_next(&a_iter);
- }
-
- return var;
-}
-
-static void
-property_free(E_NM_Variant *var)
-{
- if (!var) return;
- if ((var->type == 's') || (var->type == 'o'))
- free(var->s);
- else if (var->type == 'a')
- {
- E_NM_Variant *v;
-
- EINA_LIST_FREE(var->a, v)
- property_free(v);
- }
- free(var);
-}
-
-int
-property_get(E_DBus_Connection *conn, Property_Data *data)
-
-{
- return e_dbus_properties_get(conn, data->service, data->object, data->interface, data->property->name, property, data) ? 1 : 0;
-}
-
-void
-property(void *data, DBusMessage *msg, DBusError *err)
-{
- DBusMessageIter iter, v_iter;
- Property_Data *d;
- void *value;
- Property_Cb func = NULL;
-
- d = data;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- goto error;
- }
- if (!dbus_message_has_signature(msg, "v")) goto error;
- dbus_message_iter_init(msg, &iter);
- dbus_message_iter_recurse(&iter, &v_iter);
- if (d->property->func)
- {
- d->property->func(d, &v_iter);
- return;
- }
-
- value = ((char *)d->reply + d->property->offset);
- func = find_property_cb(d->property->sig);
- if (func) (*func)(&v_iter, d->property->sig, value);
-
- d->property++;
- if (d->property->name)
- e_dbus_properties_get(d->nmi->conn, d->service, d->object, d->interface, d->property->name, property, d);
- else
- {
- if (d->cb_func) d->cb_func(d->data, d->reply);
- property_data_free(d);
- }
- return;
-
-error:
- if (d->reply) free(d->reply); /* TODO: Correct free for object */
- if (d->cb_func) d->cb_func(d->data, NULL);
- property_data_free(d);
-}
-
-void
-parse_properties(void *data, const Property *properties, DBusMessage *msg)
-{
- DBusMessageIter iter, a_iter;
-
- if (!dbus_message_has_signature(msg, "a{sv}")) return;
-
- dbus_message_iter_init(msg, &iter);
-
- dbus_message_iter_recurse(&iter, &a_iter);
- while (dbus_message_iter_get_arg_type(&a_iter) != DBUS_TYPE_INVALID)
- {
- DBusMessageIter d_iter, v_iter;
- const Property *p;
- Property_Cb func;
- const char *name;
- void *value;
-
- dbus_message_iter_recurse(&a_iter, &d_iter);
- if (!check_arg_type(&d_iter, 's')) return;
- dbus_message_iter_get_basic(&d_iter, &name);
-
- dbus_message_iter_next(&d_iter);
- if (!check_arg_type(&d_iter, 'v')) return;
- dbus_message_iter_recurse(&d_iter, &v_iter);
-
- p = find_property(name, properties);
- if (!p) goto next;
- value = ((char *)data + p->offset);
- func = find_property_cb(p->sig);
- if (!func) goto next;
- func(&v_iter, p->sig, value);
-
-next:
- dbus_message_iter_next(&a_iter);
- }
-}
-
-#if 0
-/**
- * @internal
- * @brief Generic callback for methods that return nothing
- */
-void *
-cb_nm_generic(DBusMessage *msg, DBusError *err)
-{
- return NULL;
-}
-
-/**
- * @internal
- * @brief Generic free for methods
- */
-void
-free_nm_generic(void *data)
-{
- if (!data) return;
- free(data);
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_INT32
- */
-void *
-cb_nm_int32(DBusMessage *msg, DBusError *err)
-{
- dbus_int32_t *i;
-
- CHECK_SIGNATURE(msg, err, "i");
-
- i = malloc(sizeof(dbus_int32_t));
- /* Actually emit the integer */
- dbus_message_get_args(msg, err,
- DBUS_TYPE_INT32, i,
- DBUS_TYPE_INVALID);
-
- return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_UINT32
- */
-void *
-cb_nm_uint32(DBusMessage *msg, DBusError *err)
-{
- dbus_uint32_t *i;
-
- CHECK_SIGNATURE(msg, err, "u");
-
- i = malloc(sizeof(dbus_uint32_t));
- /* Actually emit the unsigned integer */
- dbus_message_get_args(msg, err,
- DBUS_TYPE_UINT32, i,
- DBUS_TYPE_INVALID);
-
- return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_BOOLEAN
- */
-void *
-cb_nm_boolean(DBusMessage *msg, DBusError *err)
-{
- dbus_bool_t *i;
-
- CHECK_SIGNATURE(msg, err, "b");
-
- i = malloc(sizeof(dbus_bool_t));
- /* Actually emit the unsigned integer */
- dbus_message_get_args(msg, err,
- DBUS_TYPE_BOOLEAN, i,
- DBUS_TYPE_INVALID);
-
- return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods returning a single object path
- */
-void *
-cb_nm_object_path(DBusMessage *msg, DBusError *err)
-{
- char *str;
-
- CHECK_SIGNATURE(msg, err, "o");
-
- /* Actually emit the object_path */
- dbus_message_get_args(msg, err,
- DBUS_TYPE_OBJECT_PATH, &str,
- DBUS_TYPE_INVALID);
-
- return str;
-}
-#endif
-
-
-/**
- * @internal
- * @brief Callback for methods returning a list of object paths
- */
-void *
-cb_nm_object_path_list(DBusMessage *msg, DBusError *err)
-{
- Eina_List *devices = NULL;
- char *dev;
-
- DBusMessageIter iter, sub;
-
- CHECK_SIGNATURE(msg, err, "ao");
-
- dbus_message_iter_init(msg, &iter);
-
- dbus_message_iter_recurse(&iter, &sub);
- while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID)
- {
- dev = NULL;
- if (!check_arg_type(&sub, 'o')) goto error;
- dbus_message_iter_get_basic(&sub, &dev);
- if (dev) devices = eina_list_append(devices, strdup(dev));
- dbus_message_iter_next(&sub);
- }
-
- printf("Hm: devices create = %p\n", devices);
- return devices;
-error:
- EINA_LIST_FREE(devices, dev)
- free(dev);
- return NULL;
-}
-
-void
-free_nm_object_path_list(void *data)
-{
- Eina_List *list = data;
- char *s;
-
- printf("Hm: devices delete = %p\n", list);
- EINA_LIST_FREE(list, s)
- free(s);
-}
-
-Eina_Hash *
-parse_settings(DBusMessage *msg)
-{
- Eina_Hash *settings;
- DBusMessageIter iter, a_iter;
-
- if (!dbus_message_has_signature(msg, "a{sa{sv}}")) return NULL;
-
- dbus_message_iter_init(msg, &iter);
-
- settings = eina_hash_string_small_new(EINA_FREE_CB(eina_hash_free));
- dbus_message_iter_recurse(&iter, &a_iter);
- while (dbus_message_iter_get_arg_type(&a_iter) != DBUS_TYPE_INVALID)
- {
- DBusMessageIter d_iter, a2_iter;
- E_NM_Variant *prop;
- const char *name;
- Eina_Hash *value;
-
- dbus_message_iter_recurse(&a_iter, &d_iter);
- if (!check_arg_type(&d_iter, 's')) goto error;
- dbus_message_iter_get_basic(&d_iter, &name);
-
- dbus_message_iter_next(&d_iter);
- if (!check_arg_type(&d_iter, 'a')) goto error;
- dbus_message_iter_recurse(&d_iter, &a2_iter);
-
- value = eina_hash_string_small_new(EINA_FREE_CB(property_free));
- eina_hash_add(settings, name, value);
- while (dbus_message_iter_get_arg_type(&a2_iter) != DBUS_TYPE_INVALID)
- {
- dbus_message_iter_recurse(&a2_iter, &d_iter);
- if (!check_arg_type(&d_iter, 's')) goto error;
- dbus_message_iter_get_basic(&d_iter, &name);
- dbus_message_iter_next(&d_iter);
- if (!check_arg_type(&d_iter, 'v')) goto error;
- prop = property_variant(&d_iter, NULL, NULL);
- if (prop) eina_hash_add(value, name, prop);
- dbus_message_iter_next(&a2_iter);
- }
-
- dbus_message_iter_next(&a_iter);
- }
-
- return settings;
-error:
- eina_hash_free(settings);
- return NULL;
-}
-
-int
-check_arg_type(DBusMessageIter *iter, char type)
-{
- char sig;
-
- sig = dbus_message_iter_get_arg_type(iter);
- return sig == type;
-}
-
-void
-property_data_free(Property_Data *data)
-{
- if (data->object) free(data->object);
- free(data);
-}
-
-const char *
-ip4_address2str(unsigned int address)
-{
- static char buf[16];
-
- snprintf(buf, sizeof(buf), "%u.%u.%u.%u",
- ((address ) & 0xff),
- ((address >> 8 ) & 0xff),
- ((address >> 16) & 0xff),
- ((address >> 24) & 0xff));
- return buf;
-}
-
+++ /dev/null
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_dbus_private.h"
-
-EAPI E_NM_Variant *
-e_nm_variant_new(int type, const void *value)
-{
- E_NM_Variant *variant = NULL;
-
- switch (type)
- {
- case 's':
- case 'o':
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = type;
- variant->s = strdup(*(char **)value);
- break;
- case 'u':
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = type;
- variant->u = *(unsigned int *)value;
- break;
- case 'b':
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = type;
- variant->b = *(int *)value;
- break;
- case 'y':
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = type;
- variant->y = *(unsigned char *)value;
- break;
- case 't':
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = type;
- variant->t = *(unsigned long long *)value;
- break;
- }
- return variant;
-}
-
-EAPI E_NM_Variant *
-e_nm_variant_array_new(int type, const void *value, int size)
-{
- E_NM_Variant *variant = NULL;
- int i;
-
- variant = malloc(sizeof(E_NM_Variant));
- variant->type = 'a';
- variant->a = NULL;
- for (i = 0; i < size; i++)
- variant->a = eina_list_append(variant->a, e_nm_variant_new(type, &(value[i])));
- return variant;
-}
-
-EAPI void
-e_nm_variant_free(E_NM_Variant *variant)
-{
- if (variant->type == 'a')
- {
- void *data;
-
- EINA_LIST_FREE(variant->a, data)
- e_nm_variant_free(data);
- }
- else if ((variant->type == 's') || (variant->type == 'o')) free(variant->s);
- free(variant);
-}
-
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static const Property nms_properties[] = {
- { .name = "UnmanagedDevices", .sig = "ao", .offset = offsetof(E_NMS, unmanaged_devices) },
- { .name = "Hostname", .sig = "s", .offset = offsetof(E_NMS, hostname) },
- { .name = NULL }
-};
-
-static void
-cb_nms_connections(void *data, void *reply, DBusError *err)
-{
- Reply_Data *d;
- E_NMS_Internal *nmsi;
- Eina_List *connections;
- Eina_List *list = NULL;
- Eina_List *l;
- const char *path;
-
- d = data;
- nmsi = d->object;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- d->cb_func(d->data, NULL);
- free(d);
- return;
- }
- //TODO: ecore_list_free_cb_set(list, ECORE_FREE_CB(e_nms_connection_free));
- connections = reply;
- EINA_LIST_FOREACH(connections, l, path)
- list = eina_list_append(list, e_nms_connection_get(&(nmsi->nms), nmsi->nms.service_name, path));
- d->cb_func(d->data, list);
- free(d);
-}
-
-static void
-cb_new_connection(void *data, DBusMessage *msg)
-{
- E_NMS_Internal *nmsi;
- const char *conn;
- DBusError err;
- if (!msg || !data) return;
-
- nmsi = data;
- dbus_error_init(&err);
- dbus_message_get_args(msg, &err, DBUS_TYPE_OBJECT_PATH, &conn, DBUS_TYPE_INVALID);
- if (dbus_error_is_set(&err))
- {
- ERR("%s - %s", err.name, err.message);
- return;
- }
-
- if (nmsi->new_connection)
- nmsi->new_connection(&(nmsi->nms), nmsi->nms.service_name, conn);
-}
-
-static void
-cb_properties_changed(void *data, DBusMessage *msg)
-{
- E_NMS_Internal *nmsi;
- if (!msg || !data) return;
-
- nmsi = data;
- parse_properties(nmsi, nms_properties, msg);
-
- if (nmsi->properties_changed)
- nmsi->properties_changed(&(nmsi->nms));
-}
-
-static void
-add_basic(DBusMessageIter *iter, E_NM_Variant *variant)
-{
- switch (variant->type)
- {
- case 'a':
- ERR("No support for array of array");
- break;
- case 's':
- case 'o':
- dbus_message_iter_append_basic(iter, variant->type, &variant->s);
- break;
- case 'u':
- dbus_message_iter_append_basic(iter, variant->type, &variant->u);
- break;
- case 'b':
- dbus_message_iter_append_basic(iter, variant->type, &variant->b);
- break;
- case 'y':
- dbus_message_iter_append_basic(iter, variant->type, &variant->y);
- break;
- case 't':
- dbus_message_iter_append_basic(iter, variant->type, &variant->t);
- break;
- }
-}
-
-static void
-add_variant(DBusMessageIter *iter, E_NM_Variant *variant)
-{
- DBusMessageIter v_iter;
- char sig[3];
-
- switch (variant->type)
- {
- case 'a': {
- E_NM_Variant *subvar;
- DBusMessageIter a_iter;
- Eina_List *l;
-
- if (variant->a)
- {
- subvar = eina_list_data_get(variant->a);
- sig[0] = 'a';
- sig[1] = subvar->type;
- sig[2] = 0;
- dbus_message_iter_open_container(iter, DBUS_TYPE_VARIANT, sig, &v_iter);
- dbus_message_iter_open_container(&v_iter, DBUS_TYPE_ARRAY, sig, &a_iter);
- EINA_LIST_FOREACH(variant->a, l, subvar)
- add_basic(&a_iter, subvar);
- dbus_message_iter_close_container(&v_iter, &a_iter);
- dbus_message_iter_close_container(iter, &v_iter);
- }
- break;
- }
- default:
- sig[0] = variant->type;
- sig[1] = 0;
-
- dbus_message_iter_open_container(iter, DBUS_TYPE_VARIANT, sig, &v_iter);
- add_basic(&v_iter, variant);
- dbus_message_iter_close_container(iter, &v_iter);
- break;
- }
-}
-
-static Eina_Bool
-add_value(const Eina_Hash *hash __UNUSED__, const void *key, void *data, void *fdata)
-{
- DBusMessageIter *iter, d_iter;
-
- iter = fdata;
-
- dbus_message_iter_open_container(iter, DBUS_TYPE_DICT_ENTRY, NULL, &d_iter);
- dbus_message_iter_append_basic(&d_iter, DBUS_TYPE_STRING, &key);
- add_variant(&d_iter, data);
- dbus_message_iter_close_container(iter, &d_iter);
-
- return 1;
-}
-
-static Eina_Bool
-add_array(const Eina_Hash *hash __UNUSED__, const void *key, void *data, void *fdata)
-{
- DBusMessageIter *iter, d_iter, a_iter;
-
- iter = fdata;
-
- dbus_message_iter_open_container(iter, DBUS_TYPE_DICT_ENTRY, NULL, &d_iter);
- dbus_message_iter_append_basic(&d_iter, DBUS_TYPE_STRING, &key);
- dbus_message_iter_open_container(&d_iter, DBUS_TYPE_ARRAY, "{sv}", &a_iter);
- eina_hash_foreach(data, add_value, &a_iter);
- dbus_message_iter_close_container(&d_iter, &a_iter);
- dbus_message_iter_close_container(iter, &d_iter);
-
- return 1;
-}
-
-EAPI int
-e_nms_get(E_NM *nm, E_NMS_Context context, int (*cb_func)(void *data, E_NMS *nms), void *data)
-{
- E_NMS_Internal *nmsi;
- Property_Data *d;
-
- nmsi = calloc(1, sizeof(E_NMS_Internal));
- nmsi->nmi = (E_NM_Internal *)nm;
-
- d = calloc(1, sizeof(Property_Data));
- d->nmi = nmsi->nmi;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->reply = nmsi;
- d->property = nms_properties;
- d->object = strdup(E_NMS_PATH);
- d->interface = E_NMS_INTERFACE;
- switch (context)
- {
- case E_NMS_CONTEXT_SYSTEM:
- nmsi->nms.service_name = E_NMS_SERVICE_SYSTEM;
- nmsi->handlers = eina_list_append(nmsi->handlers, e_nms_signal_handler_add(nmsi->nmi->conn, nmsi->nms.service_name, "NewConnection", cb_new_connection, nmsi));
- nmsi->handlers = eina_list_append(nmsi->handlers, e_nms_system_signal_handler_add(nmsi->nmi->conn, nmsi->nms.service_name, "PropertiesChanged", cb_properties_changed, nmsi));
- d->service = nmsi->nms.service_name;
- //(*cb_func)(data, &(nmsi->nms));
- return property_get(nmsi->nmi->conn, d);
- }
- return 0;
-}
-
-EAPI void
-e_nms_free(E_NMS *nms)
-{
- E_NMS_Internal *nmsi;
- void *data;
-
- if (!nms) return;
- nmsi = (E_NMS_Internal *)nms;
-
- EINA_LIST_FREE(nms->unmanaged_devices, data)
- free(data);
- if (nms->hostname) free(nms->hostname);
- EINA_LIST_FREE(nmsi->handlers, data)
- e_dbus_signal_handler_del(nmsi->nmi->conn, data);
- free(nmsi);
-}
-
-EAPI void
-e_nms_dump(E_NMS *nms)
-{
- const char *dev;
- Eina_List *l;
-
- if (!nms) return;
- printf("E_NMS:\n");
- printf("unmanaged_devices:\n");
- EINA_LIST_FOREACH(nms->unmanaged_devices, l, dev)
- printf(" - %s\n", dev);
- printf("hostname : %s\n", nms->hostname);
-}
-
-EAPI int
-e_nms_list_connections(E_NMS *nms, int (*cb_func)(void *data, Eina_List *list), void *data)
-{
- DBusMessage *msg;
- Reply_Data *d;
- E_NMS_Internal *nmsi;
- int ret;
-
- nmsi = (E_NMS_Internal *)nms;
- d = calloc(1, sizeof(Reply_Data));
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
- d->object = nmsi;
-
- msg = e_nms_call_new(nms->service_name, "ListConnections");
-
- ret = e_dbus_method_call_send(nmsi->nmi->conn, msg, cb_nm_object_path_list, cb_nms_connections, free_nm_object_path_list, -1, d) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI int
-e_nms_system_save_hostname(E_NMS *nms, const char *hostname)
-{
- DBusMessage *msg;
- E_NMS_Internal *nmsi;
- int ret;
-
- nmsi = (E_NMS_Internal *)nms;
- msg = e_nms_system_call_new(nms->service_name, "SaveHostname");
- dbus_message_append_args(msg, DBUS_TYPE_STRING, &hostname, DBUS_TYPE_INVALID);
-
- ret = e_dbus_message_send(nmsi->nmi->conn, msg, NULL, -1, NULL) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-static void
-cb(void *data __UNUSED__, DBusMessage *msg __UNUSED__, DBusError *err)
-{
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- }
- else
- {
- ERR("Yay!");
- }
-}
-
-EAPI int
-e_nms_system_add_connection(E_NMS *nms, Eina_Hash *settings)
-{
- DBusMessage *msg;
- DBusMessageIter iter, a_iter;
- E_NMS_Internal *nmsi;
- int ret;
-
- nmsi = (E_NMS_Internal *)nms;
- msg = e_nms_system_call_new(nms->service_name, "AddConnection");
- dbus_message_iter_init_append(msg, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sa{sv}}", &a_iter);
- eina_hash_foreach(settings, add_array, &a_iter);
- dbus_message_iter_close_container(&iter, &a_iter);
-
- ret = e_dbus_message_send(nmsi->nmi->conn, msg, cb, -1, NULL) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI void
-e_nms_data_set(E_NMS *nms, void *data)
-{
- E_NMS_Internal *nmsi;
-
- nmsi = (E_NMS_Internal *)nms;
- nmsi->data = data;
-}
-
-EAPI void *
-e_nms_data_get(E_NMS *nms)
-{
- E_NMS_Internal *nmsi;
-
- nmsi = (E_NMS_Internal *)nms;
- return nmsi->data;
-}
-
-EAPI void
-e_nms_callback_new_connection_set(E_NMS *nms, int (*cb_func)(E_NMS *nms, const char *service_name, const char *connection))
-{
- E_NMS_Internal *nmsi;
-
- nmsi = (E_NMS_Internal *)nms;
- nmsi->new_connection = cb_func;
-}
-
-EAPI void
-e_nms_system_callback_properties_changed_set(E_NMS *nms, int (*cb_func)(E_NMS *nms))
-{
- E_NMS_Internal *nmsi;
-
- nmsi = (E_NMS_Internal *)nms;
- nmsi->properties_changed = cb_func;
-}
-
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "e_dbus_private.h"
-
-static void
-cb_updated(void *data, DBusMessage *msg)
-{
- E_NMS_Connection_Internal *conn;
- Eina_Hash *settings;
- if (!msg || !data) return;
-
- conn = data;
- settings = parse_settings(msg);
-
- if (conn->updated)
- conn->updated(&(conn->conn), settings);
-}
-
-static void
-cb_settings(void *data, DBusMessage *msg, DBusError *err)
-{
- Reply_Data *d;
- Eina_Hash *settings;
-
- d = data;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- d->cb_func(d->data, NULL);
- free(d);
- return;
- }
-
- settings = parse_settings(msg);
- d->cb_func(d->data, settings);
- free(d);
-}
-
-static void
-cb_secrets(void *data, DBusMessage *msg, DBusError *err)
-{
- Reply_Data *d;
- Eina_Hash *secrets;
-
- d = data;
- if (dbus_error_is_set(err))
- {
- ERR("%s - %s", err->name, err->message);
- d->cb_func(d->data, NULL);
- free(d);
- return;
- }
-
- secrets = parse_settings(msg);
- d->cb_func(d->data, secrets);
- free(d);
-}
-
-EAPI E_NMS_Connection *
-e_nms_connection_get(E_NMS *nms, const char *service_name, const char *connection)
-{
- E_NMS_Internal *nmsi;
- E_NMS_Connection_Internal *conn;
-
- nmsi = (E_NMS_Internal *)nms;
- conn = calloc(1, sizeof(E_NMS_Connection_Internal));
- conn->nmi = nmsi->nmi;
- conn->conn.path = strdup(connection);
- conn->conn.service_name = strdup(service_name);
- conn->handlers = eina_list_append(conn->handlers, e_nms_connection_signal_handler_add(nmsi->nmi->conn, service_name, connection, "Updated", cb_updated, conn));
-
- return &conn->conn;
-}
-
-EAPI void
-e_nms_connection_free(E_NMS_Connection *connection)
-{
- E_NMS_Connection_Internal *conn;
- void *data;
-
- if (!connection) return;
- conn = (E_NMS_Connection_Internal *)connection;
-
- if (conn->conn.service_name) free(conn->conn.service_name);
- if (conn->conn.path) free(conn->conn.path);
- EINA_LIST_FREE(conn->handlers, data)
- e_dbus_signal_handler_del(conn->nmi->conn, data);
- free(conn);
-}
-
-EAPI void
-e_nms_connection_dump(E_NMS_Connection *conn)
-{
- if (!conn) return;
-
- printf("E_NMS_Connection:\n");
- printf("service_name: %s\n", conn->service_name);
- printf("path : %s\n", conn->path);
-}
-
-EAPI int
-e_nms_connection_get_settings(E_NMS_Connection *connection, int (*cb_func)(void *data, Eina_Hash *settings), void *data)
-{
- DBusMessage *msg;
- Reply_Data *d;
- E_NMS_Connection_Internal *conn;
- int ret;
-
- conn = (E_NMS_Connection_Internal *)connection;
- d = calloc(1, sizeof(Reply_Data));
- d->object = conn;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
-
- msg = e_nms_connection_call_new(conn->conn.service_name, conn->conn.path, "GetSettings");
-
- ret = e_dbus_message_send(conn->nmi->conn, msg, cb_settings, -1, d) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI int
-e_nms_connection_secrets_get_secrets(E_NMS_Connection *connection, const char *setting_name, Eina_List *hints, int request_new, int (*cb_func)(void *data, Eina_Hash *secrets), void *data)
-{
- DBusMessage *msg;
- DBusMessageIter iter, a_iter;
- Reply_Data *d;
- E_NMS_Connection_Internal *conn;
- int ret;
- const char *hint;
- Eina_List *l;
-
- conn = (E_NMS_Connection_Internal *)connection;
- d = calloc(1, sizeof(Reply_Data));
- d->object = conn;
- d->cb_func = OBJECT_CB(cb_func);
- d->data = data;
-
- msg = e_nms_connection_secrets_call_new(conn->conn.service_name, conn->conn.path, "GetSecrets");
- dbus_message_iter_init_append(msg, &iter);
- dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &setting_name);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &a_iter);
- EINA_LIST_FOREACH(hints, l, hint)
- dbus_message_iter_append_basic(&a_iter, DBUS_TYPE_STRING, &hint);
- dbus_message_iter_close_container(&iter, &a_iter);
- dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &request_new);
-
- ret = e_dbus_message_send(conn->nmi->conn, msg, cb_secrets, -1, d) ? 1 : 0;
- dbus_message_unref(msg);
- return ret;
-}
-
-EAPI void
-e_nms_connection_callback_updated_set(E_NMS_Connection *connection, int (*cb_func)(E_NMS_Connection *conn, Eina_Hash *settings))
-{
- E_NMS_Connection_Internal *conn;
-
- conn = (E_NMS_Connection_Internal*)connection;
- conn->updated = cb_func;
-}
-