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