<!-- Generator: GNU source-highlight 2.4
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>#
#
# add_dir "packages/efl1/edbus"

# add_file "packages/efl1/edbus/e_nm-big-hack.patch"
#  content [b0ce1ed3ab9387113d316255fdd6604852963a1d]

# add_file "packages/efl1/edbus/series"
#  content [48d6a1ea4ae3f073d1c147489acffecdb51e0bab]

# patch "packages/efl1/edbus_cvs.bb"
#  from [ecd6cb444aeac48cd019c31f15055fb2cca6157a]
#    to [3c1d9550c071173e9c901974a4aad0072d0aabbc]
#
============================================================
<font color="#FF6600">--- packages/efl1/edbus/e_nm-big-hack.patch        b0ce1ed3ab9387113d316255fdd6604852963a1d</font>
<font color="#009900">+++ packages/efl1/edbus/e_nm-big-hack.patch        b0ce1ed3ab9387113d316255fdd6604852963a1d</font>
<font color="#0000FF">@@ -0,0 +1,1913 @@</font>
<font color="#009900">+diff -urN e_dbus/src/bin/nm.c e_dbus-hacky/src/bin/nm.c</font>
<font color="#009900">+--- e_dbus/src/bin/nm.c        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/bin/nm.c        2008-03-30 00:22:03.000000000 +0100</font>
<font color="#009900">+@@ -5,241 +5,154 @@</font>
<font color="#009900">+ #define E_NM_DEVICE_TYPE_WIRED 1</font>
<font color="#009900">+ #define E_NM_DEVICE_TYPE_WIRELESS 2</font>
<font color="#009900">+ </font>
<font color="#009900">+-typedef struct NM_Manager NM_Manager;</font>
<font color="#009900">+ struct NM_Manager</font>
<font color="#009900">+ {</font>
<font color="#009900">+   E_NM_Context *ctx;</font>
<font color="#009900">+   Ecore_List *devices;</font>
<font color="#009900">+-};</font>
<font color="#009900">+-</font>
<font color="#009900">+-void</font>
<font color="#009900">+-cb_manager_get_udi(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+-{</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    char *udi;</font>
<font color="#009900">+-</font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">+-     }</font>
<font color="#009900">+-</font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;udi);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got udi: %s\n", udi);</font>
<font color="#009900">+-}</font>
<font color="#009900">+-</font>
<font color="#009900">+-void</font>
<font color="#009900">+-cb_manager_get_interface(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+-{</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    char *interface;</font>
<font color="#009900">+-</font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">+-     }</font>
<font color="#009900">++  Ecore_List *aps;</font>
<font color="#009900">+ </font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;interface);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got interface: %s\n", interface);</font>
<font color="#009900">+-}</font>
<font color="#009900">++  E_DBus_Callback_Func cb_devices;</font>
<font color="#009900">++  E_DBus_Callback_Func cb_aps;</font>
<font color="#009900">++};</font>
<font color="#009900">+ </font>
<font color="#009900">+ void</font>
<font color="#009900">+-cb_manager_get_driver(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++cb_manager_get_wireless(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+ {</font>
<font color="#009900">+     DBusMessageIter iter, sub;</font>
<font color="#009900">+-    char *driver;</font>
<font color="#009900">++    int wireless;</font>
<font color="#009900">+ </font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">+      {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">+      }</font>
<font color="#009900">+ </font>
<font color="#009900">+     dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+     dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;driver);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;wireless);</font>
<font color="#009900">+ </font>
<font color="#009900">+-    printf("Got driver: %s\n", driver);</font>
<font color="#009900">++   printf("Wireless enabled: %i\n", wireless);</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ void</font>
<font color="#009900">+-cb_manager_get_capabilities(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++cb_manager_get_hw_wireless(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+ {</font>
<font color="#009900">+     DBusMessageIter iter, sub;</font>
<font color="#009900">+-    dbus_uint32_t caps;</font>
<font color="#009900">++    int hw_wireless;</font>
<font color="#009900">+ </font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">+      {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">+      }</font>
<font color="#009900">+ </font>
<font color="#009900">+     dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+     dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;caps);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;hw_wireless);</font>
<font color="#009900">+ </font>
<font color="#009900">+-    printf("Got capabilities: %i\n", caps);</font>
<font color="#009900">++   printf("Wireless hardware enabled: %i\n", hw_wireless);</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ void</font>
<font color="#009900">+-cb_manager_get_ip4address(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++cb_manager_manager_get_state(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+ {</font>
<font color="#009900">+     DBusMessageIter iter, sub;</font>
<font color="#009900">+-    dbus_int32_t ip;</font>
<font color="#009900">++    uint state;</font>
<font color="#009900">+ </font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">+      {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">+-     }</font>
<font color="#009900">+-</font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;ip);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got IPv4 address: %i.%i.%i.%i\n",</font>
<font color="#009900">+-           (ip       &amp; 0xff),</font>
<font color="#009900">+-           ((ip &gt;&gt; 8 ) &amp; 0xff),</font>
<font color="#009900">+-           ((ip &gt;&gt; 16) &amp; 0xff),</font>
<font color="#009900">+-           ((ip &gt;&gt; 24) &amp; 0xff)</font>
<font color="#009900">+-           );</font>
<font color="#009900">+-}</font>
<font color="#009900">+-</font>
<font color="#009900">+-void</font>
<font color="#009900">+-cb_manager_get_state(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+-{</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    dbus_uint32_t state;</font>
<font color="#009900">+-</font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">+      }</font>
<font color="#009900">+ </font>
<font color="#009900">+     dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+     dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+     dbus_message_iter_get_basic(&amp;sub, &amp;state);</font>
<font color="#009900">+ </font>
<font color="#009900">+-    printf("Got state: %i\n", state);</font>
<font color="#009900">++   printf("State: %i\n", state);</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+-void</font>
<font color="#009900">+-cb_manager_get_ip4config(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+-{</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    char *ip4config;</font>
<font color="#009900">+-</font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">+-     }</font>
<font color="#009900">+-</font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;ip4config);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got IPv4 config path: %s\n", ip4config);</font>
<font color="#009900">+-}</font>
<font color="#009900">+ </font>
<font color="#009900">+ void</font>
<font color="#009900">+-cb_manager_get_carrier(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++cb_manager_wifi_aps(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+ {</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    dbus_uint32_t carrier;</font>
<font color="#009900">++   NM_Manager *app = data;</font>
<font color="#009900">++   E_NM_Access_Point *ap;</font>
<font color="#009900">++   const char *ap_path;</font>
<font color="#009900">+ </font>
<font color="#009900">+    if (dbus_error_is_set(err))</font>
<font color="#009900">+      {</font>
<font color="#009900">+         printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+         return;</font>
<font color="#009900">+      }</font>
<font color="#009900">++   //app-&gt;devices = ecore_list_new();</font>
<font color="#009900">++   //ecore_list_init(app-&gt;devices);</font>
<font color="#009900">+ </font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;carrier);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got carrier: %i\n", carrier);</font>
<font color="#009900">++   ecore_list_first_goto(reply);</font>
<font color="#009900">++   printf("Got APs:\n");</font>
<font color="#009900">++   while ((ap_path = ecore_list_next(reply)))</font>
<font color="#009900">++     {</font>
<font color="#009900">++                printf("%s\n", ap_path);</font>
<font color="#009900">++         }</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ void</font>
<font color="#009900">+-cb_manager_get_type(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++cb_manager_get_devices(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+ {</font>
<font color="#009900">+-    DBusMessageIter iter, sub;</font>
<font color="#009900">+-    dbus_uint32_t type;</font>
<font color="#009900">+-</font>
<font color="#009900">+-    if (dbus_error_is_set(err))</font>
<font color="#009900">+-      {</font>
<font color="#009900">+-         printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-         return;</font>
<font color="#009900">+-      }</font>
<font color="#009900">+-</font>
<font color="#009900">+-    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">+-    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">+-    dbus_message_iter_get_basic(&amp;sub, &amp;type);</font>
<font color="#009900">+-</font>
<font color="#009900">+-    printf("Got type: %i (1 = ethernet, 2 = wireless)\n", type);</font>
<font color="#009900">++  NM_Manager *app = data;</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+-void</font>
<font color="#009900">+-cb_manager_get_devices(void *data, void *reply, DBusError *err)</font>
<font color="#009900">+-{</font>
<font color="#009900">+-   NM_Manager *app = data;</font>
<font color="#009900">+-   const char *dev;</font>
<font color="#009900">++#if 0</font>
<font color="#009900">++int</font>
<font color="#009900">++dump2_device_info(void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  E_NM_Device *dev = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  printf("-- Informations from %s --\n", dev-&gt;interface);</font>
<font color="#009900">++  printf("Got udi: %s\n", dev-&gt;udi);</font>
<font color="#009900">++  printf("Got interface: %s\n", dev-&gt;interface);</font>
<font color="#009900">++  printf("Got driver: %s\n", dev-&gt;driver);</font>
<font color="#009900">++  printf("Got capabilities: %i\n", dev-&gt;capabilities);</font>
<font color="#009900">++  printf("Got IPv4 address: %i.%i.%i.%i\n",</font>
<font color="#009900">++            (dev-&gt;ip4address       &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 8 ) &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 16) &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 24) &amp; 0xff)</font>
<font color="#009900">++          );</font>
<font color="#009900">++  printf("Got state: %i\n", dev-&gt;state);</font>
<font color="#009900">++  //printf("Got IPv4 config path: %s\n", dev-&gt;ip4config);</font>
<font color="#009900">++  printf("Got carrier: %i\n", dev-&gt;carrier);</font>
<font color="#009900">++  printf("Got type: %i (1 = ethernet, 2 = wireless)\n", dev-&gt;type);</font>
<font color="#009900">+ </font>
<font color="#009900">+-   if (dbus_error_is_set(err))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">+-        return;</font>
<font color="#009900">+-     }</font>
<font color="#009900">+-   </font>
<font color="#009900">+-   app-&gt;devices = reply;</font>
<font color="#009900">+-   ecore_list_first_goto(app-&gt;devices);</font>
<font color="#009900">+-   printf("Got devices:\n");</font>
<font color="#009900">+-   while ((dev = ecore_list_next(app-&gt;devices)))</font>
<font color="#009900">+-     {</font>
<font color="#009900">+-        printf("%s\n", dev);</font>
<font color="#009900">+-        e_nm_device_get_udi(app-&gt;ctx, dev, cb_manager_get_udi, app);</font>
<font color="#009900">+-        e_nm_device_get_interface(app-&gt;ctx, dev, cb_manager_get_interface, app);</font>
<font color="#009900">+-        e_nm_device_get_driver(app-&gt;ctx, dev, cb_manager_get_driver, app);</font>
<font color="#009900">+-        e_nm_device_get_capabilities(app-&gt;ctx, dev, cb_manager_get_capabilities, app);</font>
<font color="#009900">+-        e_nm_device_get_ip4address(app-&gt;ctx, dev, cb_manager_get_ip4address, app);</font>
<font color="#009900">+-        e_nm_device_get_state(app-&gt;ctx, dev, cb_manager_get_state, app);</font>
<font color="#009900">+-        /* FIXME: Getting the ip4config needs fixing */</font>
<font color="#009900">+-        //e_nm_device_get_ip4config(app-&gt;ctx, dev, cb_manager_get_ip4config, app);</font>
<font color="#009900">+-        e_nm_device_get_carrier(app-&gt;ctx, dev, cb_manager_get_carrier, app);</font>
<font color="#009900">+-        e_nm_device_get_type(app-&gt;ctx, dev, cb_manager_get_type, app);</font>
<font color="#009900">+-     }</font>
<font color="#009900">+ }</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+-int </font>
<font color="#009900">++int</font>
<font color="#009900">+ main(int argc, char **argv)</font>
<font color="#009900">+ {</font>
<font color="#009900">+    NM_Manager *app;</font>
<font color="#009900">++</font>
<font color="#009900">+    ecore_init();</font>
<font color="#009900">+    ecore_string_init();</font>
<font color="#009900">+    e_dbus_init();</font>
<font color="#009900">+-   </font>
<font color="#009900">++</font>
<font color="#009900">+    app = calloc(1, sizeof(NM_Manager));</font>
<font color="#009900">+-   </font>
<font color="#009900">++</font>
<font color="#009900">+    app-&gt;ctx = e_nm_new();</font>
<font color="#009900">+    if (!app-&gt;ctx)</font>
<font color="#009900">+      {</font>
<font color="#009900">+         printf("Error connecting to system bus. Is it running?\n");</font>
<font color="#009900">+         return 1;</font>
<font color="#009900">+      }</font>
<font color="#009900">+-   </font>
<font color="#009900">++</font>
<font color="#009900">++   e_nm_manager_get_wireless_enabled(app-&gt;ctx, cb_manager_get_wireless, app);</font>
<font color="#009900">++   e_nm_manager_get_wireless_hw_enabled(app-&gt;ctx, cb_manager_get_hw_wireless, app);</font>
<font color="#009900">++   e_nm_manager_get_state(app-&gt;ctx, cb_manager_manager_get_state, app);</font>
<font color="#009900">++</font>
<font color="#009900">+    e_nm_get_devices(app-&gt;ctx, cb_manager_get_devices, app);</font>
<font color="#009900">+-   </font>
<font color="#009900">++</font>
<font color="#009900">+    ecore_main_loop_begin();</font>
<font color="#009900">+-   </font>
<font color="#009900">++</font>
<font color="#009900">+    e_nm_free(app-&gt;ctx);</font>
<font color="#009900">+    free(app);</font>
<font color="#009900">+    e_dbus_shutdown();</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_access_point.c e_dbus-hacky/src/lib/nm/e_nm_access_point.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_access_point.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_access_point.c        2008-03-30 22:44:28.000000000 +0200</font>
<font color="#009900">+@@ -0,0 +1,475 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * This file defines functions that query each of the functions provided by</font>
<font color="#009900">++ * the org.freedesktop.NetworkManager.AccessPoint DBus interface.</font>
<font color="#009900">++ */</font>
<font color="#009900">++</font>
<font color="#009900">++#include "E_Nm.h"</font>
<font color="#009900">++#include "e_nm_private.h"</font>
<font color="#009900">++#include &lt;Ecore_Data.h&gt;</font>
<font color="#009900">++#include &lt;string.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#define AP_PROPS 9</font>
<font color="#009900">++</font>
<font color="#009900">++int ap_prop_counter = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++NM_Manager *app_priv;</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the flags of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_flags(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                            E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Flags", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the WPA flags of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_wpa_flags(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                                E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "WpaFlags", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the RSN flags of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_rsn_flags(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                                E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "RsnFlags", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the Ssid of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_ssid(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Ssid", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the Frequency of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_frequency(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                                E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Frequency", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the hw address of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_hw_address(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                                 E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "HwAddress", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the mode of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_mode(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Mode", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the rate of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_rate(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Rate", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the strength of a NetworkManager access point</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param ap a NetworkManager access point to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_access_point_get_strength(E_NM_Context *ctx, const char *ap,</font>
<font color="#009900">++                               E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ap_properties_get(ctx-&gt;conn, ap, "Strength", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_flags(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_uint32_t flags;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;flags);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;flags = flags;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_wpa_flags(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_uint32_t wpaflags;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;wpaflags);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;wpaflags = wpaflags;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_rsn_flags(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_uint32_t rsnflags;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;rsnflags);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;rsnflags = rsnflags;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_ssid(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub, subsub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    char byte;</font>
<font color="#009900">++        char ssid[200] = "0";</font>
<font color="#009900">++        int len, i;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;sub, &amp;subsub);</font>
<font color="#009900">++        len = dbus_message_iter_get_array_len(&amp;subsub);</font>
<font color="#009900">++        for (i = 0; i &lt; len; i++)</font>
<font color="#009900">++          {</font>
<font color="#009900">++            dbus_message_iter_get_basic(&amp;subsub, &amp;byte);</font>
<font color="#009900">++                //printf("Byte value: %c\n", byte);</font>
<font color="#009900">++                ssid[i] = byte;</font>
<font color="#009900">++                dbus_message_iter_next(&amp;subsub);</font>
<font color="#009900">++          }</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;ssid = strdup(ssid);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_frequency(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_uint32_t frequency;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;frequency);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;frequency = frequency;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_hw_address(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    char *hwaddress;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;hwaddress);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;hwaddress = hwaddress;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_mode(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_int32_t mode;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;mode);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;mode = mode;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_rate(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    dbus_uint32_t rate;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;rate);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;rate = rate;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_strength(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Access_Point *ap = data;</font>
<font color="#009900">++    char strength;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;strength);</font>
<font color="#009900">++</font>
<font color="#009900">++    ap-&gt;strength = strength;</font>
<font color="#009900">++</font>
<font color="#009900">++    ap_prop_counter++;</font>
<font color="#009900">++    if (ap_prop_counter == AP_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_ap_properties(data);</font>
<font color="#009900">++          ap_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++fill_ap_properties(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME Store app info in private as workaround */</font>
<font color="#009900">++  app_priv = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  E_NM_Access_Point *ap;</font>
<font color="#009900">++  const char *ap_path;</font>
<font color="#009900">++</font>
<font color="#009900">++  if (dbus_error_is_set(err))</font>
<font color="#009900">++  {</font>
<font color="#009900">++    printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++    return;</font>
<font color="#009900">++   }</font>
<font color="#009900">++</font>
<font color="#009900">++   app_priv-&gt;aps = ecore_list_new();</font>
<font color="#009900">++   ecore_list_init(app_priv-&gt;aps);</font>
<font color="#009900">++</font>
<font color="#009900">++   ecore_list_first_goto(reply);</font>
<font color="#009900">++   while ((ap_path = ecore_list_next(reply)))</font>
<font color="#009900">++     {</font>
<font color="#009900">++        ap = calloc(1, sizeof(E_NM_Access_Point));</font>
<font color="#009900">++        ecore_list_append(app_priv-&gt;aps, ap);</font>
<font color="#009900">++                e_nm_access_point_get_flags(app_priv-&gt;ctx, ap_path, cb_manager_get_flags, ap);</font>
<font color="#009900">++                e_nm_access_point_get_wpa_flags(app_priv-&gt;ctx, ap_path, cb_manager_get_wpa_flags, ap);</font>
<font color="#009900">++                e_nm_access_point_get_rsn_flags(app_priv-&gt;ctx, ap_path, cb_manager_get_rsn_flags, ap);</font>
<font color="#009900">++                e_nm_access_point_get_ssid(app_priv-&gt;ctx, ap_path, cb_manager_get_ssid, ap);</font>
<font color="#009900">++                e_nm_access_point_get_frequency(app_priv-&gt;ctx, ap_path, cb_manager_get_frequency, ap);</font>
<font color="#009900">++                e_nm_access_point_get_hw_address(app_priv-&gt;ctx, ap_path, cb_manager_get_hw_address, ap);</font>
<font color="#009900">++                e_nm_access_point_get_mode(app_priv-&gt;ctx, ap_path, cb_manager_get_mode, ap);</font>
<font color="#009900">++                e_nm_access_point_get_rate(app_priv-&gt;ctx, ap_path, cb_manager_get_rate, ap);</font>
<font color="#009900">++                e_nm_access_point_get_strength(app_priv-&gt;ctx, ap_path, cb_manager_get_strength, ap);</font>
<font color="#009900">++         }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int</font>
<font color="#009900">++dump_ap_properties(void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  E_NM_Access_Point *ap = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  printf("-- Informations from %s --\n", ap-&gt;ssid);</font>
<font color="#009900">++  printf("Got flags: %i\n", ap-&gt;flags);</font>
<font color="#009900">++  printf("Got WPA flags: %i\n", ap-&gt;wpaflags);</font>
<font color="#009900">++  printf("Got RSN flags: %i\n", ap-&gt;rsnflags);</font>
<font color="#009900">++  printf("Got SSID: %s\n", ap-&gt;ssid);</font>
<font color="#009900">++  printf("Got frequency: %i\n", ap-&gt;frequency);</font>
<font color="#009900">++  printf("Got hw address: %s\n", ap-&gt;hwaddress);</font>
<font color="#009900">++  printf("Got mode: %i\n", ap-&gt;mode);</font>
<font color="#009900">++  printf("Got rate: %i\n", ap-&gt;rate);</font>
<font color="#009900">++  printf("Got strength: %i\n", ap-&gt;strength);</font>
<font color="#009900">++</font>
<font color="#009900">++  app_priv-&gt;cb_aps(app_priv, ap, NULL);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_device.c e_dbus-hacky/src/lib/nm/e_nm_device.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_device.c        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_device.c        2008-03-29 14:53:59.000000000 +0100</font>
<font color="#009900">+@@ -7,6 +7,13 @@</font>
<font color="#009900">+ #include "e_nm_private.h"</font>
<font color="#009900">+ #include &lt;Ecore_Data.h&gt;</font>
<font color="#009900">+ </font>
<font color="#009900">++#define DEVICE_PROPS 8</font>
<font color="#009900">++#define E_NM_DEVICE_TYPE_WIRED 1</font>
<font color="#009900">++#define E_NM_DEVICE_TYPE_WIRELESS 2</font>
<font color="#009900">++</font>
<font color="#009900">++int dev_prop_counter = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++NM_Manager *app_priv;</font>
<font color="#009900">+ </font>
<font color="#009900">+ /**</font>
<font color="#009900">+  * Get the UDI of a NetworkManager device</font>
<font color="#009900">+@@ -163,3 +170,342 @@</font>
<font color="#009900">+   /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">+   e_nm_device_properties_get(ctx-&gt;conn, device, "DeviceType", cb_func, data);</font>
<font color="#009900">+ }</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_udi(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *udi;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;udi);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;udi = udi;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_device_info(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_interface(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *interface;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;interface);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;interface = interface;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_driver(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *driver;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;driver);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;driver = driver;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_capabilities(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t caps;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;caps);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;capabilities = caps;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_ip4address(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_int32_t ip;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;ip);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;ip4address = ip;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_state(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t state;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;state);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;state = state;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_ip4config(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *ip4config;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;ip4config);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;ip4config = ip4config;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_carrier(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t carrier;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;carrier);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;carrier = carrier;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_get_type(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t type;</font>
<font color="#009900">++</font>
<font color="#009900">++    if (dbus_error_is_set(err))</font>
<font color="#009900">++      {</font>
<font color="#009900">++             printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++             return;</font>
<font color="#009900">++      }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++    dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;type);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;type = type;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_prop_counter++;</font>
<font color="#009900">++    if (dev_prop_counter == DEVICE_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++fill_dev_properties(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++  NM_Manager *app = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  E_NM_Device *dev;</font>
<font color="#009900">++  const char *dev_path;</font>
<font color="#009900">++</font>
<font color="#009900">++  /* FIXME Store app info in private as workaround */</font>
<font color="#009900">++  app_priv = app;</font>
<font color="#009900">++</font>
<font color="#009900">++  if (dbus_error_is_set(err))</font>
<font color="#009900">++  {</font>
<font color="#009900">++    printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++    return;</font>
<font color="#009900">++   }</font>
<font color="#009900">++</font>
<font color="#009900">++   app-&gt;devices = ecore_list_new();</font>
<font color="#009900">++   ecore_list_init(app-&gt;devices);</font>
<font color="#009900">++</font>
<font color="#009900">++   ecore_list_first_goto(reply);</font>
<font color="#009900">++   while ((dev_path = ecore_list_next(reply)))</font>
<font color="#009900">++     {</font>
<font color="#009900">++        dev = calloc(1, sizeof(E_NM_Device));</font>
<font color="#009900">++        ecore_list_append(app-&gt;devices, dev);</font>
<font color="#009900">++        e_nm_device_get_udi(app-&gt;ctx, dev_path, cb_manager_get_udi, dev);</font>
<font color="#009900">++        e_nm_device_get_interface(app-&gt;ctx, dev_path, cb_manager_get_interface, dev);</font>
<font color="#009900">++        e_nm_device_get_driver(app-&gt;ctx, dev_path, cb_manager_get_driver, dev);</font>
<font color="#009900">++        e_nm_device_get_capabilities(app-&gt;ctx, dev_path, cb_manager_get_capabilities, dev);</font>
<font color="#009900">++        e_nm_device_get_ip4address(app-&gt;ctx, dev_path, cb_manager_get_ip4address, dev);</font>
<font color="#009900">++        e_nm_device_get_state(app-&gt;ctx, dev_path, cb_manager_get_state, dev);</font>
<font color="#009900">++        /* FIXME: We get no reply from NM for this. Broken in used version (3202)? */</font>
<font color="#009900">++        //e_nm_device_get_ip4config(app-&gt;ctx, dev_path, cb_manager_get_ip4config, dev);</font>
<font color="#009900">++        e_nm_device_get_carrier(app-&gt;ctx, dev_path, cb_manager_get_carrier, dev);</font>
<font color="#009900">++        e_nm_device_get_type(app-&gt;ctx, dev_path, cb_manager_get_type, dev);</font>
<font color="#009900">++         }</font>
<font color="#009900">++</font>
<font color="#009900">++  app-&gt;cb_devices(app, app-&gt;devices, err);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++fill_dev_special_properties(void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  E_NM_Device *dev = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  if (dev-&gt;type == E_NM_DEVICE_TYPE_WIRELESS)</font>
<font color="#009900">++  {</font>
<font color="#009900">++    e_nm_device_wifi_get_hw_address(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_get_hw_address, dev);</font>
<font color="#009900">++    e_nm_device_wifi_get_mode(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_get_mode, dev);</font>
<font color="#009900">++    e_nm_device_wifi_get_bitrate(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_get_bitrate, dev);</font>
<font color="#009900">++    e_nm_device_wifi_get_active_ap(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_get_active_ap, dev);</font>
<font color="#009900">++    e_nm_device_wifi_get_wireless_caps(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_get_wireless_caps, dev);</font>
<font color="#009900">++    e_nm_device_wifi_get_access_points(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wifi_aps, app_priv);</font>
<font color="#009900">++  }</font>
<font color="#009900">++</font>
<font color="#009900">++#if 0</font>
<font color="#009900">++    else if (dev-&gt;type == E_NM_DEVICE_TYPE_WIRED)</font>
<font color="#009900">++  {</font>
<font color="#009900">++    e_nm_device_wired_get_hw_address(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wired_get_hw_address, dev);</font>
<font color="#009900">++    /* FIXME: Why does the second call crash? Function does not matter */</font>
<font color="#009900">++        //e_nm_device_wired_get_speed(app_priv-&gt;ctx, dev-&gt;udi, cb_manager_wired_get_speed, dev);</font>
<font color="#009900">++  }</font>
<font color="#009900">++#endif</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int</font>
<font color="#009900">++dump_device_info(void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  E_NM_Device *dev = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  printf("-- Informations from %s --\n", dev-&gt;interface);</font>
<font color="#009900">++  printf("Got udi: %s\n", dev-&gt;udi);</font>
<font color="#009900">++  printf("Got interface: %s\n", dev-&gt;interface);</font>
<font color="#009900">++  printf("Got driver: %s\n", dev-&gt;driver);</font>
<font color="#009900">++  printf("Got capabilities: %i\n", dev-&gt;capabilities);</font>
<font color="#009900">++  printf("Got IPv4 address: %i.%i.%i.%i\n",</font>
<font color="#009900">++            (dev-&gt;ip4address       &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 8 ) &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 16) &amp; 0xff),</font>
<font color="#009900">++            ((dev-&gt;ip4address &gt;&gt; 24) &amp; 0xff)</font>
<font color="#009900">++          );</font>
<font color="#009900">++  printf("Got state: %i\n", dev-&gt;state);</font>
<font color="#009900">++  //printf("Got IPv4 config path: %s\n", dev-&gt;ip4config);</font>
<font color="#009900">++  printf("Got carrier: %i\n", dev-&gt;carrier);</font>
<font color="#009900">++  printf("Got type: %i (1 = ethernet, 2 = wireless)\n", dev-&gt;type);</font>
<font color="#009900">++  if (dev-&gt;type == E_NM_DEVICE_TYPE_WIRELESS)</font>
<font color="#009900">++  {</font>
<font color="#009900">++  }</font>
<font color="#009900">++  else if (dev-&gt;type == E_NM_DEVICE_TYPE_WIRED)</font>
<font color="#009900">++  {</font>
<font color="#009900">++    printf("Got wired hw address %s\n", dev-&gt;sub_device.wired.hwaddress);</font>
<font color="#009900">++    printf("Got wired speed %i\n", dev-&gt;sub_device.wired.speed);</font>
<font color="#009900">++  }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_device_wifi.c e_dbus-hacky/src/lib/nm/e_nm_device_wifi.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_device_wifi.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_device_wifi.c        2008-03-29 14:38:01.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,234 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * This file defines functions that query each of the functions provided by</font>
<font color="#009900">++ * the org.freedesktop.NetworkManager.Device.Wireless DBus interface.</font>
<font color="#009900">++ */</font>
<font color="#009900">++</font>
<font color="#009900">++#include "E_Nm.h"</font>
<font color="#009900">++#include "e_nm_private.h"</font>
<font color="#009900">++#include &lt;Ecore_Data.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#define DEVICE_WIFI_PROPS 6</font>
<font color="#009900">++</font>
<font color="#009900">++int dev_wifi_prop_counter = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get all access points seen on this devices.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * Returns an Ecore_List of dbus object paths for access points. This list is</font>
<font color="#009900">++ * of const char *, and is freed automatically after the callback returns.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ **/</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_access_points(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                                   E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  DBusMessage *msg;</font>
<font color="#009900">++  int ret;</font>
<font color="#009900">++  NM_Manager *app = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  app-&gt;cb_aps = cb_func;</font>
<font color="#009900">++</font>
<font color="#009900">++  msg = e_nm_device_wifi_call_new(device, "GetAccessPoints");</font>
<font color="#009900">++</font>
<font color="#009900">++  ret = e_dbus_method_call_send(ctx-&gt;conn, msg, cb_nm_string_list, fill_ap_properties, free_nm_string_list, -1, data) ? 1 : 0;</font>
<font color="#009900">++  dbus_message_unref(msg);</font>
<font color="#009900">++  return ret;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the hw address of a NetworkManager wireless device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_hw_address(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                                E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wifi_properties_get(ctx-&gt;conn, device, "HwAddress", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the mode of a NetworkManager wireless device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_mode(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                          E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wifi_properties_get(ctx-&gt;conn, device, "Mode", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the bitrate of a NetworkManager wireless device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_bitrate(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                             E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wifi_properties_get(ctx-&gt;conn, device, "Bitrate", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the active ap of a NetworkManager wireless device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_active_ap(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                               E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wifi_properties_get(ctx-&gt;conn, device, "ActiveAccessPoint", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the wireless capabilities of a NetworkManager wireless device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wifi_get_wireless_caps(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                                   E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wifi_properties_get(ctx-&gt;conn, device, "WirelessCapabilities", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wifi_get_hw_address(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *hw_address;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;hw_address);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wifi hw address: %s\n", hw_address);</font>
<font color="#009900">++#if 1</font>
<font color="#009900">++    dev-&gt;sub_device.wireless.hwaddress = hw_address;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_wifi_prop_counter++;</font>
<font color="#009900">++    if (dev_wifi_prop_counter == DEVICE_WIFI_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      fill_dev_special_properties(data);</font>
<font color="#009900">++          dev_wifi_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++#endif</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wifi_get_mode(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t mode;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;mode);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wifi mode: %i\n", mode);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wifi_get_bitrate(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t bitrate;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;bitrate);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wifi bitrate: %i\n", bitrate);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wifi_get_active_ap(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *active_ap;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;active_ap);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wifi active AP: %s\n", active_ap);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wifi_get_wireless_caps(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_uint32_t wifi_caps;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;wifi_caps);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wifi capabilities: %i\n", wifi_caps);</font>
<font color="#009900">++}</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_device_wired.c e_dbus-hacky/src/lib/nm/e_nm_device_wired.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_device_wired.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_device_wired.c        2008-03-28 01:28:01.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,104 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * This file defines functions that query each of the functions provided by</font>
<font color="#009900">++ * the org.freedesktop.NetworkManager.Device.Wired DBus interface.</font>
<font color="#009900">++ */</font>
<font color="#009900">++</font>
<font color="#009900">++#include "E_Nm.h"</font>
<font color="#009900">++#include "e_nm_private.h"</font>
<font color="#009900">++#include &lt;Ecore_Data.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#define DEVICE_WIRED_PROPS 2</font>
<font color="#009900">++</font>
<font color="#009900">++int dev_wired_prop_counter = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the hw address of a NetworkManager wired device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wired_get_hw_address(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                                 E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wired_properties_get(ctx-&gt;conn, device, "HwAddress", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the speed of a NetworkManager wired device.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param device a NetworkManagr device to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_device_wired_get_speed(E_NM_Context *ctx, const char *device,</font>
<font color="#009900">++                            E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_device_wired_properties_get(ctx-&gt;conn, device, "Speed", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wired_get_hw_address(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    char *hw_address;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;hw_address);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wired hw address: %s\n", hw_address);</font>
<font color="#009900">++</font>
<font color="#009900">++    dev-&gt;sub_device.wired.hwaddress = hw_address;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_wired_prop_counter++;</font>
<font color="#009900">++    if (dev_wired_prop_counter == DEVICE_WIRED_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_device_info(dev);</font>
<font color="#009900">++          dev_wired_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++      dump_device_info(dev);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void</font>
<font color="#009900">++cb_manager_wired_get_speed(void *data, void *reply, DBusError *err)</font>
<font color="#009900">++{</font>
<font color="#009900">++    DBusMessageIter iter, sub;</font>
<font color="#009900">++    E_NM_Device *dev = data;</font>
<font color="#009900">++    dbus_int32_t speed;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dbus_error_is_set(err))</font>
<font color="#009900">++     {</font>
<font color="#009900">++            printf("Error: %s - %s\n" ,err-&gt;name, err-&gt;message);</font>
<font color="#009900">++            return;</font>
<font color="#009900">++     }</font>
<font color="#009900">++</font>
<font color="#009900">++    dbus_message_iter_init(reply, &amp;iter);</font>
<font color="#009900">++        dbus_message_iter_recurse(&amp;iter, &amp;sub);</font>
<font color="#009900">++    dbus_message_iter_get_basic(&amp;sub, &amp;speed);</font>
<font color="#009900">++</font>
<font color="#009900">++    printf("Wired speed: %i\n", speed);</font>
<font color="#009900">++</font>
<font color="#009900">++        dev-&gt;sub_device.wired.speed = speed;</font>
<font color="#009900">++</font>
<font color="#009900">++    dev_wired_prop_counter++;</font>
<font color="#009900">++    if (dev_wired_prop_counter == DEVICE_WIRED_PROPS)</font>
<font color="#009900">++        {</font>
<font color="#009900">++      dump_device_info(dev);</font>
<font color="#009900">++          dev_wired_prop_counter = 0;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/E_Nm.h e_dbus-hacky/src/lib/nm/E_Nm.h</font>
<font color="#009900">+--- e_dbus/src/lib/nm/E_Nm.h        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/E_Nm.h        2008-03-30 22:20:51.000000000 +0200</font>
<font color="#009900">+@@ -26,25 +26,12 @@</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ </font>
<font color="#009900">+ typedef struct E_NM_Context E_NM_Context;</font>
<font color="#009900">++typedef struct NM_Manager NM_Manager;</font>
<font color="#009900">+ </font>
<font color="#009900">+ /**</font>
<font color="#009900">+  * Matching structs for the new "object" based DBus API</font>
<font color="#009900">+  * VPN is missing as this was still missing the redesign for the new 0.7 API</font>
<font color="#009900">+  */</font>
<font color="#009900">+-typedef struct E_NM_Device E_NM_Device;</font>
<font color="#009900">+-struct E_NM_Device</font>
<font color="#009900">+-{</font>
<font color="#009900">+-  char *udi; /* object_path */</font>
<font color="#009900">+-  char *interface;</font>
<font color="#009900">+-  char *driver;</font>
<font color="#009900">+-  uint capabilities;</font>
<font color="#009900">+-  int  ip4address;</font>
<font color="#009900">+-  uint state;</font>
<font color="#009900">+-  char *ip4config; /* object_path */</font>
<font color="#009900">+-  int  carrier;</font>
<font color="#009900">+-  uint type;</font>
<font color="#009900">+-};</font>
<font color="#009900">+-</font>
<font color="#009900">+ typedef struct E_NM_Device_Wireless E_NM_Device_Wireless;</font>
<font color="#009900">+ struct E_NM_Device_Wireless</font>
<font color="#009900">+ {</font>
<font color="#009900">+@@ -62,6 +49,25 @@</font>
<font color="#009900">+   uint speed;</font>
<font color="#009900">+ };</font>
<font color="#009900">+ </font>
<font color="#009900">++typedef struct E_NM_Device E_NM_Device;</font>
<font color="#009900">++struct E_NM_Device</font>
<font color="#009900">++{</font>
<font color="#009900">++  char *udi; /* object_path */</font>
<font color="#009900">++  char *interface;</font>
<font color="#009900">++  char *driver;</font>
<font color="#009900">++  uint capabilities;</font>
<font color="#009900">++  int  ip4address;</font>
<font color="#009900">++  uint state;</font>
<font color="#009900">++  char *ip4config; /* object_path */</font>
<font color="#009900">++  int  carrier;</font>
<font color="#009900">++  uint type;</font>
<font color="#009900">++  union</font>
<font color="#009900">++  {</font>
<font color="#009900">++    E_NM_Device_Wired wired;</font>
<font color="#009900">++    E_NM_Device_Wireless wireless;</font>
<font color="#009900">++  } sub_device;</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">+ typedef struct E_NM_Access_Point E_NM_Access_Point;</font>
<font color="#009900">+ struct E_NM_Access_Point</font>
<font color="#009900">+ {</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_ip4config.c e_dbus-hacky/src/lib/nm/e_nm_ip4config.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_ip4config.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_ip4config.c        2008-03-28 01:28:15.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,161 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * This file defines functions that query each of the functions provided by</font>
<font color="#009900">++ * the org.freedesktop.NetworkManager.IP4Config DBus interface.</font>
<font color="#009900">++ */</font>
<font color="#009900">++</font>
<font color="#009900">++#include "E_Nm.h"</font>
<font color="#009900">++#include "e_nm_private.h"</font>
<font color="#009900">++#include &lt;Ecore_Data.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the address of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_address(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Address", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the gateway of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_gateway(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Gateway", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the netmask of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_netmask(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Netmask", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the broadcast of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_Broadcast(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                             E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Broadcast", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the hostname of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_hostname(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                            E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Hostname", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the nameservers of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_nameservers(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                               E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Nameservers", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the domains of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_domains(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                           E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "Domains", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the NIS domain of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_nisdomains(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                              E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "NisDomain", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Get the NIS servers of a NetworkManager IP4Config</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param config a NetworkManager config to communicate with</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_ip4config_get_nisservers(E_NM_Context *ctx, const char *config,</font>
<font color="#009900">++                              E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_ip4config_properties_get(ctx-&gt;conn, config, "NisServers", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_manager.c e_dbus-hacky/src/lib/nm/e_nm_manager.c</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_manager.c        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_manager.c        2008-03-29 14:35:41.000000000 +0100</font>
<font color="#009900">+@@ -17,60 +17,77 @@</font>
<font color="#009900">+ {</font>
<font color="#009900">+   DBusMessage *msg;</font>
<font color="#009900">+   int ret;</font>
<font color="#009900">++  NM_Manager *app = data;</font>
<font color="#009900">++</font>
<font color="#009900">++  app-&gt;cb_devices = cb_func;</font>
<font color="#009900">+ </font>
<font color="#009900">+   msg = e_nm_manager_call_new("GetDevices");</font>
<font color="#009900">+ </font>
<font color="#009900">+-  ret = e_dbus_method_call_send(ctx-&gt;conn, msg, cb_nm_string_list, cb_func, free_nm_string_list, -1, data) ? 1 : 0;</font>
<font color="#009900">++  ret = e_dbus_method_call_send(ctx-&gt;conn, msg, cb_nm_string_list, fill_dev_properties, free_nm_string_list, -1, data) ? 1 : 0;</font>
<font color="#009900">+   dbus_message_unref(msg);</font>
<font color="#009900">+   return ret;</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ </font>
<font color="#009900">+ /**</font>
<font color="#009900">+- * Find the active device that NM has chosen</font>
<font color="#009900">+- * </font>
<font color="#009900">+- * Returns a single string containing the dbus path to the active device</font>
<font color="#009900">++ * Check if wireless is enabled in NetworkManager</font>
<font color="#009900">+  *</font>
<font color="#009900">+  * @param ctx an e_nm context</font>
<font color="#009900">+  * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">+  * @param data user data to pass to the callback function</font>
<font color="#009900">+- **/</font>
<font color="#009900">++ */</font>
<font color="#009900">+ EAPI int</font>
<font color="#009900">+-e_nm_get_active_device(E_NM_Context *ctx, E_DBus_Callback_Func cb_func,</font>
<font color="#009900">+-                       void *data)</font>
<font color="#009900">++e_nm_manager_get_wireless_enabled(E_NM_Context *ctx,</font>
<font color="#009900">++                                  E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">+ {</font>
<font color="#009900">+-  return e_nm_get_from_nm(ctx, cb_func, data,</font>
<font color="#009900">+-                          "getActiveDevice", DBUS_TYPE_STRING);</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_manager_properties_get(ctx-&gt;conn, "WirelessEnabled", cb_func, data);</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ </font>
<font color="#009900">+ /**</font>
<font color="#009900">+- * Query the current state of the network</font>
<font color="#009900">+- * </font>
<font color="#009900">+- * Returns a single string containing the status:</font>
<font color="#009900">+- *</font>
<font color="#009900">+- *  "connecting":  there is a pending network connection (waiting for a DHCP</font>
<font color="#009900">+- *                  request to complete, waiting for an encryption</font>
<font color="#009900">+- *                  key/passphrase, waiting for a wireless network, etc)</font>
<font color="#009900">+- *</font>
<font color="#009900">+- *  "connected":    there is an active network connection</font>
<font color="#009900">+- *</font>
<font color="#009900">+- *  "scanning":     there is no active network connection, but NetworkManager</font>
<font color="#009900">+- *                  is looking for an access point to associate with</font>
<font color="#009900">+- *</font>
<font color="#009900">+- *  "disconnected": there is no network connection</font>
<font color="#009900">+- * </font>
<font color="#009900">++ * Disable wireless in NetworkManager</font>
<font color="#009900">+  *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_manager_set_wireless_enabled(E_NM_Context *ctx,</font>
<font color="#009900">++                                  E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  //e_nm_manager_properties_get(ctx-&gt;conn, "WirelessEnabled", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * Check if wireless is hardware enabled in NetworkManager</font>
<font color="#009900">+  *</font>
<font color="#009900">+  * @param ctx an e_nm context</font>
<font color="#009900">+  * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">+  * @param data user data to pass to the callback function</font>
<font color="#009900">+- **/</font>
<font color="#009900">++ */</font>
<font color="#009900">+ EAPI int</font>
<font color="#009900">+-e_nm_status(E_NM_Context *ctx, E_DBus_Callback_Func cb_func,</font>
<font color="#009900">+-                       void *data)</font>
<font color="#009900">++e_nm_manager_get_wireless_hw_enabled(E_NM_Context *ctx,</font>
<font color="#009900">++                                     E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">+ {</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_manager_properties_get(ctx-&gt;conn, "WirelessHardwareEnabled", cb_func, data);</font>
<font color="#009900">++}</font>
<font color="#009900">+ </font>
<font color="#009900">+-  return e_nm_get_from_nm(ctx, cb_func, data,</font>
<font color="#009900">+-                          "status", DBUS_TYPE_STRING);</font>
<font color="#009900">++</font>
<font color="#009900">++/**</font>
<font color="#009900">++ * State of NetworkManager</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * @param ctx an e_nm context</font>
<font color="#009900">++ * @param cb a callback, used when the method returns (or an error is received)</font>
<font color="#009900">++ * @param data user data to pass to the callback function</font>
<font color="#009900">++ */</font>
<font color="#009900">++EAPI int</font>
<font color="#009900">++e_nm_manager_get_state(E_NM_Context *ctx,</font>
<font color="#009900">++                       E_DBus_Callback_Func cb_func, void *data)</font>
<font color="#009900">++{</font>
<font color="#009900">++  /* FIXME: Decide how to handle the return value for this functions */</font>
<font color="#009900">++  e_nm_manager_properties_get(ctx-&gt;conn, "State", cb_func, data);</font>
<font color="#009900">+ }</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/e_nm_private.h e_dbus-hacky/src/lib/nm/e_nm_private.h</font>
<font color="#009900">+--- e_dbus/src/lib/nm/e_nm_private.h        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/e_nm_private.h        2008-03-30 22:43:51.000000000 +0200</font>
<font color="#009900">+@@ -14,10 +14,22 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define e_nm_device_call_new(path, member) dbus_message_new_method_call(E_NM_SERVICE, path, E_NM_INTERFACE_DEVICE, member)</font>
<font color="#009900">+ </font>
<font color="#009900">++#define e_nm_device_wifi_call_new(path, member) dbus_message_new_method_call(E_NM_SERVICE, path, E_NM_INTERFACE_DEVICE_WIRELESS, member)</font>
<font color="#009900">++</font>
<font color="#009900">+ #define e_nm_network_call_new(member) dbus_message_new_method_call(E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, member)</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define e_nm_device_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">+ </font>
<font color="#009900">++#define e_nm_device_wifi_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE_WIRELESS, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">++</font>
<font color="#009900">++#define e_nm_device_wired_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE_WIRED, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">++</font>
<font color="#009900">++#define e_nm_manager_properties_get(con, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">++</font>
<font color="#009900">++#define e_nm_ip4config_properties_get(con, config, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, config, E_NM_INTERFACE_IP4CONFIG, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">++</font>
<font color="#009900">++#define e_nm_ap_properties_get(con, ap, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, ap, E_NM_INTERFACE_ACCESSPOINT, prop, (E_DBus_Method_Return_Cb) cb, data)</font>
<font color="#009900">++</font>
<font color="#009900">+ struct E_NM_Context</font>
<font color="#009900">+ {</font>
<font color="#009900">+   E_DBus_Connection *conn;</font>
<font color="#009900">+@@ -32,6 +44,16 @@</font>
<font color="#009900">+   void *data_manager_device_removed;</font>
<font color="#009900">+ };</font>
<font color="#009900">+ </font>
<font color="#009900">++struct NM_Manager</font>
<font color="#009900">++{</font>
<font color="#009900">++  E_NM_Context *ctx;</font>
<font color="#009900">++  Ecore_List *devices;</font>
<font color="#009900">++  Ecore_List *aps;</font>
<font color="#009900">++</font>
<font color="#009900">++   E_DBus_Callback_Func cb_devices;</font>
<font color="#009900">++   E_DBus_Callback_Func cb_aps;</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">+ </font>
<font color="#009900">+ int e_nm_get_from_nm(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data,</font>
<font color="#009900">+                      const char *method, int rettype);</font>
<font color="#009900">+@@ -39,6 +61,8 @@</font>
<font color="#009900">+                          E_DBus_Callback_Func cb_func, void *data,</font>
<font color="#009900">+                          const char *method, int rettype);</font>
<font color="#009900">+ </font>
<font color="#009900">++void fill_dev_properties(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void fill_ap_properties(void *data, void *reply, DBusError *err);</font>
<font color="#009900">+ void *cb_nm_generic(DBusMessage *msg, DBusError *err);</font>
<font color="#009900">+ void  free_nm_generic(void *data);</font>
<font color="#009900">+ void *cb_nm_int32(DBusMessage *msg, DBusError *err);</font>
<font color="#009900">+@@ -47,4 +71,13 @@</font>
<font color="#009900">+ void *cb_nm_boolean(DBusMessage *msg, DBusError *err);</font>
<font color="#009900">+ void *cb_nm_string_list(DBusMessage *msg, DBusError *err);</font>
<font color="#009900">+ void  free_nm_string_list(void *data);</font>
<font color="#009900">++</font>
<font color="#009900">++void cb_manager_wifi_get_hw_address(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wifi_get_mode(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wifi_get_bitrate(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wifi_get_active_ap(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wifi_get_wireless_caps(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wifi_aps(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wired_get_hw_address(void *data, void *reply, DBusError *err);</font>
<font color="#009900">++void cb_manager_wired_get_speed(void *data, void *reply, DBusError *err);</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+diff -urN e_dbus/src/lib/nm/Makefile.am e_dbus-hacky/src/lib/nm/Makefile.am</font>
<font color="#009900">+--- e_dbus/src/lib/nm/Makefile.am        2008-04-05 03:26:07.000000000 +0200</font>
<font color="#009900">++++ e_dbus-hacky/src/lib/nm/Makefile.am        2008-03-28 01:35:28.000000000 +0100</font>
<font color="#009900">+@@ -14,7 +14,10 @@</font>
<font color="#009900">+ e_nm.c \</font>
<font color="#009900">+ e_nm_manager.c \</font>
<font color="#009900">+ e_nm_device.c \</font>
<font color="#009900">+-e_nm_network.c \</font>
<font color="#009900">++e_nm_device_wifi.c \</font>
<font color="#009900">++e_nm_device_wired.c \</font>
<font color="#009900">++e_nm_ip4config.c \</font>
<font color="#009900">++e_nm_access_point.c \</font>
<font color="#009900">+ e_nm_util.c</font>
<font color="#009900">+ </font>
<font color="#009900">+ </font>
============================================================
<font color="#FF6600">--- packages/efl1/edbus/series        48d6a1ea4ae3f073d1c147489acffecdb51e0bab</font>
<font color="#009900">+++ packages/efl1/edbus/series        48d6a1ea4ae3f073d1c147489acffecdb51e0bab</font>
<font color="#0000FF">@@ -0,0 +1 @@</font>
<font color="#009900">+e_nm-big-hack.patch -p1</font>
============================================================
<font color="#FF6600">--- packages/efl1/edbus_cvs.bb        ecd6cb444aeac48cd019c31f15055fb2cca6157a</font>
<font color="#009900">+++ packages/efl1/edbus_cvs.bb        3c1d9550c071173e9c901974a4aad0072d0aabbc</font>
<font color="#0000FF">@@ -7,7 +7,7 @@ SRC_URI = "${E_CVS};module=e17/libs/e_db</font>
 inherit efl
 
 SRC_URI = "${E_CVS};module=e17/libs/e_dbus \
<font color="#FF6600">-           http://people.openmoko.org/stefan/e_nm-big-hack.patch;patch=1;pnum=1;mindate=20080330 \</font>
<font color="#009900">+           file://e_nm-big-hack.patch;patch=1;pnum=1;mindate=20080330 \</font>
                         "
 S = "${WORKDIR}/e_dbus"
 
</tt></pre>