2 #include <Ecore_Data.h>
5 #define E_NM_DEVICE_TYPE_WIRED 1
6 #define E_NM_DEVICE_TYPE_WIRELESS 2
8 typedef struct NM_Manager NM_Manager;
16 cb_manager_get_udi(void *data, void *reply, DBusError *err)
18 DBusMessageIter iter, sub;
21 if (dbus_error_is_set(err))
23 printf("Error: %s - %s\n", err->name, err->message);
27 dbus_message_iter_init(reply, &iter);
28 dbus_message_iter_recurse(&iter, &sub);
29 dbus_message_iter_get_basic(&sub, &udi);
31 printf("Got udi: %s\n", udi);
35 cb_manager_get_interface(void *data, void *reply, DBusError *err)
37 DBusMessageIter iter, sub;
40 if (dbus_error_is_set(err))
42 printf("Error: %s - %s\n", err->name, err->message);
46 dbus_message_iter_init(reply, &iter);
47 dbus_message_iter_recurse(&iter, &sub);
48 dbus_message_iter_get_basic(&sub, &interface);
50 printf("Got interface: %s\n", interface);
54 cb_manager_get_driver(void *data, void *reply, DBusError *err)
56 DBusMessageIter iter, sub;
59 if (dbus_error_is_set(err))
61 printf("Error: %s - %s\n", err->name, err->message);
65 dbus_message_iter_init(reply, &iter);
66 dbus_message_iter_recurse(&iter, &sub);
67 dbus_message_iter_get_basic(&sub, &driver);
69 printf("Got driver: %s\n", driver);
73 cb_manager_get_capabilities(void *data, void *reply, DBusError *err)
75 DBusMessageIter iter, sub;
78 if (dbus_error_is_set(err))
80 printf("Error: %s - %s\n", err->name, err->message);
84 dbus_message_iter_init(reply, &iter);
85 dbus_message_iter_recurse(&iter, &sub);
86 dbus_message_iter_get_basic(&sub, &caps);
88 printf("Got capabilities:\n");
89 if (caps & E_NM_DEVICE_CAP_NM_SUPPORTED)
90 printf("\tNM_DEVICE_CAP_NM_SUPPORTED\n");
91 if (caps & E_NM_DEVICE_CAP_CARRIER_DETECT)
92 printf("\tNM_DEVICE_CAP_CARRIER_DETECT\n");
94 printf("\tNM_DEVICE_CAP_NONE\n");
99 cb_manager_get_ip4address(void *data, void *reply, DBusError *err)
101 DBusMessageIter iter, sub;
104 if (dbus_error_is_set(err))
106 printf("Error: %s - %s\n", err->name, err->message);
110 dbus_message_iter_init(reply, &iter);
111 dbus_message_iter_recurse(&iter, &sub);
112 dbus_message_iter_get_basic(&sub, &ip);
114 printf("Got IPv4 address: %i.%i.%i.%i\n",
123 cb_manager_get_state(void *data, void *reply, DBusError *err)
125 DBusMessageIter iter, sub;
128 if (dbus_error_is_set(err))
130 printf("Error: %s - %s\n", err->name, err->message);
134 dbus_message_iter_init(reply, &iter);
135 dbus_message_iter_recurse(&iter, &sub);
136 dbus_message_iter_get_basic(&sub, &state);
138 printf("Got state: %i = ", state);
141 case E_NM_DEVICE_STATE_UNKNOWN:
142 printf("NM_DEVICE_STATE_UNKNOWN\n");
144 case E_NM_DEVICE_STATE_DOWN:
145 printf("NM_DEVICE_STATE_DOWN\n");
147 case E_NM_DEVICE_STATE_DISCONNECTED:
148 printf("NM_DEVICE_STATE_DISCONNECTED\n");
150 case E_NM_DEVICE_STATE_PREPARE:
151 printf("NM_DEVICE_STATE_PREPARE\n");
153 case E_NM_DEVICE_STATE_CONFIG:
154 printf("NM_DEVICE_STATE_CONFIG\n");
156 case E_NM_DEVICE_STATE_NEED_AUTH:
157 printf("NM_DEVICE_STATE_NEED_AUTH\n");
159 case E_NM_DEVICE_STATE_IP_CONFIG:
160 printf("NM_DEVICE_STATE_IP_CONFIG\n");
162 case E_NM_DEVICE_STATE_ACTIVATED:
163 printf("NM_DEVICE_STATE_ACTIVATED\n");
165 case E_NM_DEVICE_STATE_FAILED:
166 printf("NM_DEVICE_STATE_FAILED\n");
168 case E_NM_DEVICE_STATE_CANCELLED:
169 printf("NM_DEVICE_STATE_CANCELLED\n");
175 cb_manager_get_ip4config(void *data, void *reply, DBusError *err)
177 DBusMessageIter iter, sub;
180 if (dbus_error_is_set(err))
182 printf("Error: %s - %s\n", err->name, err->message);
186 dbus_message_iter_init(reply, &iter);
187 dbus_message_iter_recurse(&iter, &sub);
188 dbus_message_iter_get_basic(&sub, &ip4config);
190 printf("Got IPv4 config path: %s\n", ip4config);
194 cb_manager_get_carrier(void *data, void *reply, DBusError *err)
196 DBusMessageIter iter, sub;
197 dbus_uint32_t carrier;
199 if (dbus_error_is_set(err))
201 printf("Error: %s - %s\n", err->name, err->message);
205 dbus_message_iter_init(reply, &iter);
206 dbus_message_iter_recurse(&iter, &sub);
207 dbus_message_iter_get_basic(&sub, &carrier);
209 printf("Got carrier: %i\n", carrier);
213 cb_manager_get_type(void *data, void *reply, DBusError *err)
215 DBusMessageIter iter, sub;
218 if (dbus_error_is_set(err))
220 printf("Error: %s - %s\n", err->name, err->message);
224 dbus_message_iter_init(reply, &iter);
225 dbus_message_iter_recurse(&iter, &sub);
226 dbus_message_iter_get_basic(&sub, &type);
228 printf("Got type: %i (1 = ethernet, 2 = wireless)\n", type);
232 cb_manager_get_devices(void *data, void *reply, DBusError *err)
234 NM_Manager *app = data;
237 if (dbus_error_is_set(err))
239 printf("Error: %s - %s\n", err->name, err->message);
243 app->devices = reply;
244 ecore_list_first_goto(app->devices);
245 printf("Got devices:\n");
246 while ((dev = ecore_list_next(app->devices)))
249 e_nm_device_get_udi(app->ctx, dev, cb_manager_get_udi, app);
250 e_nm_device_get_interface(app->ctx, dev, cb_manager_get_interface, app);
251 e_nm_device_get_driver(app->ctx, dev, cb_manager_get_driver, app);
252 e_nm_device_get_capabilities(app->ctx, dev, cb_manager_get_capabilities, app);
253 e_nm_device_get_ip4address(app->ctx, dev, cb_manager_get_ip4address, app);
254 e_nm_device_get_state(app->ctx, dev, cb_manager_get_state, app);
255 /* FIXME: Getting the ip4config needs fixing */
256 //e_nm_device_get_ip4config(app->ctx, dev, cb_manager_get_ip4config, app);
257 /* FIXME: Only call this when the device supports it */
258 // e_nm_device_get_carrier(app->ctx, dev, cb_manager_get_carrier, app);
259 e_nm_device_get_type(app->ctx, dev, cb_manager_get_type, app);
264 main(int argc, char **argv)
268 eina_stringshare_init();
271 app = calloc(1, sizeof(NM_Manager));
273 app->ctx = e_nm_new();
276 printf("Error connecting to system bus. Is it running?\n");
280 e_nm_get_devices(app->ctx, cb_manager_get_devices, app);
282 ecore_main_loop_begin();
287 eina_stringshare_shutdown();