Prototype code for parsing and printing out the recieved Dbus messages.
>From 29046bdf62b15d2392c8dc6b6de34aced4e35784 Mon Sep 17 00:00:00 2001
From: Stefan Schmidt <[EMAIL PROTECTED]>
Date: Thu, 13 Mar 2008 23:43:57 +0100
Subject: [PATCH 7/8] Prototype code for parsing and printing out the recieved Dbus messages

Prototype code for parsing and printing out the recieved Dbus messages.
---
 src/bin/nm.c |  212 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 139 insertions(+), 73 deletions(-)

diff --git a/src/bin/nm.c b/src/bin/nm.c
index e4285ca..8ac0cfe 100644
--- a/src/bin/nm.c
+++ b/src/bin/nm.c
@@ -1,5 +1,6 @@
 #include <E_Nm.h>
 #include <Ecore_Data.h>
+#include <dbus/dbus.h>
 
 #define E_NM_DEVICE_TYPE_WIRED 1
 #define E_NM_DEVICE_TYPE_WIRELESS 2
@@ -12,134 +13,189 @@ struct NM_Manager
 };
 
 void
-cb_manager_get_name(void *data, void *reply, DBusError *err)
+cb_manager_get_udi(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    char *udi;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got name:\n");
-   printf("  %s\n", (char *)reply);
+
+    dbus_message_iter_init(reply, &iter);
+	dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &udi);
+
+   printf("Got udi: %s\n", udi);
 }
 
 void
-cb_manager_get_type(void *data, void *reply, DBusError *err)
+cb_manager_get_interface(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    char *interface;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got type:\n");
-   printf("  %i (0 == unknown, 1 == ethernet, 2 == wireless)\n", (int)(*((dbus_int32_t *)reply)));
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &interface);
+
+   printf("Got interface: %s\n", interface);
 }
 
 void
-cb_manager_get_hal_udi(void *data, void *reply, DBusError *err)
+cb_manager_get_driver(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    char *driver;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got hal udi:\n");
-   printf("  %s\n", (char *)reply);
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &driver);
+
+   printf("Got driver: %s\n", driver);
 }
 
 void
-cb_manager_get_ip4_address(void *data, void *reply, DBusError *err)
+cb_manager_get_capabilities(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    dbus_uint32_t caps;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got ip4_address:\n");
-   printf("  %i.%i.%i.%i\n", 
-	  (int)(((*((dbus_int32_t *)reply))      ) & 0xff),
-	  (int)(((*((dbus_int32_t *)reply)) >> 8 ) & 0xff),
-	  (int)(((*((dbus_int32_t *)reply)) >> 16) & 0xff),
-	  (int)(((*((dbus_int32_t *)reply)) >> 24) & 0xff)
-	  );
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &caps);
+
+   printf("Got capabilities: %i\n", caps);
 }
 
 void
-cb_manager_get_link_active(void *data, void *reply, DBusError *err)
+cb_manager_get_ip4address(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    dbus_int32_t ip;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got active:\n");
-   printf("  %i\n", (int)(*((dbus_bool_t *)reply)));
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &ip);
+
+   printf("Got IPv4 address: %i.%i.%i.%i\n",
+	  (ip       & 0xff),
+	  ((ip >> 8 ) & 0xff),
+	  ((ip >> 16) & 0xff),
+	  ((ip >> 24) & 0xff)
+	  );
 }
 
 void
-cb_manager_wireless_get_strength(void *data, void *reply, DBusError *err)
+cb_manager_get_state(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    dbus_uint32_t state;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got Wireless Strength:\n");
-   printf("  %i\n", (int)(*((dbus_int32_t *)reply)));
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &state);
+
+   printf("Got state: %i\n", state);
 }
 
 void
-cb_manager_wireless_get_active_network(void *data, void *reply, DBusError *err)
+cb_manager_get_ip4config(void *data, void *reply, DBusError *err)
 {
-   if (dbus_error_is_set(err))
+    DBusMessageIter iter, sub;
+    char *ip4config;
+
+	if (dbus_error_is_set(err))
      {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
-   printf("Got Wireless Active Network:\n");
-   printf("  %s\n", (char *)reply);
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &ip4config);
+
+   printf("Got IPv4 config path: %s\n", ip4config);
 }
 
 void
-cb_manager_wireless_get_networks(void *data, void *reply, DBusError *err)
+cb_manager_get_carrier(void *data, void *reply, DBusError *err)
 {
-   Ecore_List *networks;
-   const char *net;
-   
-   if (dbus_error_is_set(err))
-     {
-	//XXX
-	printf("Error: %s - %s\n" ,err->name, err->message);
-	return;
-     }
-   
-   networks = reply;
-   ecore_list_first_goto(networks);
-   printf("Got Wireless Networks:\n");
-   while ((net = ecore_list_next(networks)))
+    DBusMessageIter iter, sub;
+    dbus_uint32_t carrier;
+
+	if (dbus_error_is_set(err))
      {
-	printf("  %s\n", net);
+	    printf("Error: %s - %s\n" ,err->name, err->message);
+	    return;
      }
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &carrier);
+
+   printf("Got carrier: %i\n", carrier);
 }
 
+void
+cb_manager_get_type(void *data, void *reply, DBusError *err)
+{
+    DBusMessageIter iter, sub;
+    dbus_uint32_t type;
+
+    if (dbus_error_is_set(err))
+      {
+	     printf("Error: %s - %s\n" ,err->name, err->message);
+	     return;
+      }
+
+    dbus_message_iter_init(reply, &iter);
+    dbus_message_iter_recurse(&iter, &sub);
+    dbus_message_iter_get_basic(&sub, &type);
 
+    printf("Got type: %i (1 = ethernet, 2 = wireless)\n", type);
+}
 
 void
 cb_manager_get_devices(void *data, void *reply, DBusError *err)
 {
    NM_Manager *app = data;
    const char *dev;
-   
+
    if (dbus_error_is_set(err))
      {
-	//XXX
 	printf("Error: %s - %s\n" ,err->name, err->message);
 	return;
      }
@@ -150,7 +206,17 @@ cb_manager_get_devices(void *data, void *reply, DBusError *err)
    while ((dev = ecore_list_next(app->devices)))
      {
 	    printf("%s\n", dev);
-     }
+        e_nm_device_get_udi(app->ctx, dev, cb_manager_get_udi, app);
+        e_nm_device_get_interface(app->ctx, dev, cb_manager_get_interface, app);
+        e_nm_device_get_driver(app->ctx, dev, cb_manager_get_driver, app);
+        e_nm_device_get_capabilities(app->ctx, dev, cb_manager_get_capabilities, app);
+        e_nm_device_get_ip4address(app->ctx, dev, cb_manager_get_ip4address, app);
+        e_nm_device_get_state(app->ctx, dev, cb_manager_get_state, app);
+        /* FIXME: Getting the ip4config needs fixing */
+        //e_nm_device_get_ip4config(app->ctx, dev, cb_manager_get_ip4config, app);
+        e_nm_device_get_carrier(app->ctx, dev, cb_manager_get_carrier, app);
+        e_nm_device_get_type(app->ctx, dev, cb_manager_get_type, app);
+	 }
 }
 
 int 
-- 
1.5.4.3

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to