e_dbus/connman: remove wrong method
[framework/uifw/edbus.git] / src / bin / e_dbus_connman_test.c
index 42f4d23..89796e4 100644 (file)
@@ -1,3 +1,7 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "E_Connman.h"
 #include <stdio.h>
 #include <string.h>
@@ -5,7 +9,7 @@
 #include <errno.h>
 
 static void
-_method_success_check(void *data, DBusMessage *msg, DBusError *error)
+_method_success_check(void *data, __UNUSED__ DBusMessage *msg, DBusError *error)
 {
    const char *name = data;
 
@@ -43,44 +47,44 @@ _strings_print(const char **strings, unsigned int count)
    printf("END: all strings count = %u\n", count);
 }
 
-static int
-_on_element_add(void *data, int type, void *info)
+static Eina_Bool
+_on_element_add(__UNUSED__ void *data, __UNUSED__ int type, void *info)
 {
    E_Connman_Element *element = info;
    printf(">>> %s\n", element->path);
-   return 1;
+   return ECORE_CALLBACK_PASS_ON;
 }
 
-static int
-_on_element_del(void *data, int type, void *info)
+static Eina_Bool
+_on_element_del(__UNUSED__ void *data, __UNUSED__ int type, void *info)
 {
    E_Connman_Element *element = info;
    printf("<<< %s\n", element->path);
-   return 1;
+   return ECORE_CALLBACK_PASS_ON;
 }
 
-static int
-_on_element_updated(void *data, int type, void *info)
+static Eina_Bool
+_on_element_updated(__UNUSED__ void *data, __UNUSED__ int type, void *info)
 {
    E_Connman_Element *element = info;
    printf("!!! %s\n", element->path);
    e_connman_element_print(stderr, element);
-   return 1;
+   return ECORE_CALLBACK_PASS_ON;
 }
 
-static int
-_on_cmd_quit(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_quit(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    fputs("Bye!\n", stderr);
    ecore_main_loop_quit();
-   return 0;
+   return ECORE_CALLBACK_CANCEL;
 }
 
-static int
-_on_cmd_sync(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_sync(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    e_connman_manager_sync_elements();
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
 static char *
@@ -100,13 +104,13 @@ _tok(char *p)
    return p;
 }
 
-static int
-_on_cmd_get_all(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_get_all(__UNUSED__ char *cmd, char *args)
 {
    E_Connman_Element **elements;
    char *type;
    unsigned int count;
-   bool ret;
+   Eina_Bool ret;
 
    if (!args)
      type = NULL;
@@ -126,7 +130,7 @@ _on_cmd_get_all(char *cmd, char *args)
        _elements_print(elements, count);
      }
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
 static E_Connman_Element *
@@ -149,28 +153,28 @@ _element_from_args(char *args, char **next_args)
    return element;
 }
 
-static int
-_on_cmd_print(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_print(__UNUSED__ char *cmd, char *args)
 {
    char *next_args;
    E_Connman_Element *element = _element_from_args(args, &next_args);
    if (element)
      e_connman_element_print(stdout, element);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_get_properties(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_get_properties(__UNUSED__ char *cmd, char *args)
 {
    char *next_args;
    E_Connman_Element *element = _element_from_args(args, &next_args);
    if (element)
      e_connman_element_properties_sync(element);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_property_set(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_property_set(__UNUSED__ char *cmd, char *args)
 {
    char *next_args, *name, *p;
    E_Connman_Element *element = _element_from_args(args, &next_args);
@@ -181,12 +185,12 @@ _on_cmd_property_set(char *cmd, char *args)
    int type;
 
    if (!element)
-     return 1;
+     return ECORE_CALLBACK_RENEW;
 
    if (!next_args)
      {
        fputs("ERROR: missing parameters name, type and value.\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    name = next_args;
@@ -194,14 +198,14 @@ _on_cmd_property_set(char *cmd, char *args)
    if (!p)
      {
        fputs("ERROR: missing parameters type and value.\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    next_args = _tok(p);
    if (!next_args)
      {
        fputs("ERROR: missing parameter value.\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    type = p[0];
@@ -209,7 +213,7 @@ _on_cmd_property_set(char *cmd, char *args)
      {
       case DBUS_TYPE_BOOLEAN:
         vlong = !!atol(next_args);
-        value = (void *)vlong;
+        value = &vlong;
         fprintf(stderr, "DBG: boolean is: %ld\n", vlong);
         break;
       case DBUS_TYPE_UINT16:
@@ -217,7 +221,7 @@ _on_cmd_property_set(char *cmd, char *args)
         if (p == next_args)
           {
              fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
-             return 1;
+             return ECORE_CALLBACK_RENEW;
           }
         value = &vu16;
         fprintf(stderr, "DBG: u16 is: %hu\n", vu16);
@@ -227,7 +231,7 @@ _on_cmd_property_set(char *cmd, char *args)
         if (p == next_args)
           {
              fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
-             return 1;
+             return ECORE_CALLBACK_RENEW;
           }
         value = &vu32;
         fprintf(stderr, "DBG: u16 is: %u\n", vu32);
@@ -250,33 +254,31 @@ _on_cmd_property_set(char *cmd, char *args)
       default:
         fprintf(stderr, "ERROR: don't know how to parse type '%c' (%d)\n",
                 type, type);
-        return 1;
+        return ECORE_CALLBACK_RENEW;
      }
 
    fprintf(stderr, "set_property %s [%p] %s %c %p...\n",
           args, element, name, type, value);
    if (!e_connman_element_property_set(element, name, type, value))
-     {
        fputs("ERROR: error setting property.\n", stderr);
-       return 1;
-     }
-   return 1;
+
+   return ECORE_CALLBACK_RENEW;
 }
 
 
 /* Manager Commands */
 
-static int
-_on_cmd_manager_get(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    E_Connman_Element *element;
    element = e_connman_manager_get();
    e_connman_element_print(stderr, element);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_profiles(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_profiles(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    unsigned int count;
    E_Connman_Element **profiles;
@@ -284,31 +286,15 @@ _on_cmd_manager_get_profiles(char *cmd, char *args)
    if (!e_connman_manager_profiles_get(&count, &profiles))
      {
        fputs("ERROR: can't get profiles\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    printf("BEG: all manager profiles elements count = %d\n", count);
    _elements_print(profiles, count);
-   return 1;
-}
-
-static int
-_on_cmd_manager_get_devices(char *cmd, char *args)
-{
-   unsigned int count;
-   E_Connman_Element **devices;
-
-   if (!e_connman_manager_devices_get(&count, &devices))
-     {
-       fputs("ERROR: can't get devices\n", stderr);
-       return 1;
-     }
-   printf("BEG: all manager devices elements count = %d\n", count);
-   _elements_print(devices, count);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_services(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_services(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    unsigned int count;
    E_Connman_Element **services;
@@ -316,22 +302,22 @@ _on_cmd_manager_get_services(char *cmd, char *args)
    if (!e_connman_manager_services_get(&count, &services))
      {
        fputs("ERROR: can't get services\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    printf("BEG: all manager services elements count = %d\n", count);
    _elements_print(services, count);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_register_agent(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_register_agent(__UNUSED__ char *cmd, char *args)
 {
    char *path;
 
    if (!args)
      {
        fputs("ERROR: missing the object path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    path = args;
@@ -341,18 +327,18 @@ _on_cmd_manager_register_agent(char *cmd, char *args)
    else
      fprintf(stderr, "ERROR: can't register agent %s\n", path);
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_unregister_agent(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_unregister_agent(__UNUSED__ char *cmd, char *args)
 {
    char *path;
 
    if (!args)
      {
        fputs("ERROR: missing the object path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    path = args;
@@ -362,39 +348,39 @@ _on_cmd_manager_unregister_agent(char *cmd, char *args)
    else
      fprintf(stderr, "ERROR: can't unregister agent %s\n", path);
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_state(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_state(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    const char *state;
    if (e_connman_manager_state_get(&state))
      printf(":::Manager state = \"%s\"\n", state);
    else
      fputs("ERROR: can't get manager state\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_offline_mode(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_offline_mode(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
-   bool offline;
+   Eina_Bool offline;
    if (e_connman_manager_offline_mode_get(&offline))
      printf(":::Manager Offline Mode = %hhu\n", offline);
    else
      fputs("ERROR: can't get manager offline mode\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_set_offline_mode(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_set_offline_mode(__UNUSED__ char *cmd, char *args)
 {
-   bool offline;
+   Eina_Bool offline;
    if (!args)
      {
        fputs("ERROR: missing the offline mode value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    offline = !!atol(args);
@@ -404,11 +390,11 @@ _on_cmd_manager_set_offline_mode(char *cmd, char *args)
      printf(":::Manager Offline Mode set to %hhu\n", offline);
    else
      fputs("ERROR: can't set manager offline mode\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_request_scan(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_request_scan(__UNUSED__ char *cmd, char *args)
 {
    if (args)
      _tok(args);
@@ -421,16 +407,16 @@ _on_cmd_manager_request_scan(char *cmd, char *args)
      printf(":::Manager Request Scan for %s\n", args[0] ? args : "<all>");
    else
      fputs("ERROR: can't request scan on manager\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_technology_enable(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_technology_enable(__UNUSED__ char *cmd, char *args)
 {
    if (!args)
      {
        fputs("ERROR: missing the technology type\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
 
@@ -439,16 +425,16 @@ _on_cmd_manager_technology_enable(char *cmd, char *args)
      printf(":::Manager Enable Technology %s\n", args);
    else
      fputs("ERROR: can't enable technology on manager\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_technology_disable(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_technology_disable(__UNUSED__ char *cmd, char *args)
 {
    if (!args)
      {
        fputs("ERROR: missing the technology type\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
 
@@ -457,11 +443,11 @@ _on_cmd_manager_technology_disable(char *cmd, char *args)
      printf(":::Manager Disable Technology %s\n", args);
    else
      fputs("ERROR: can't disable technology on manager\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_technologies_available(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_technologies_available(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    const char **strings;
    unsigned int count;
@@ -474,11 +460,11 @@ _on_cmd_manager_get_technologies_available(char *cmd, char *args)
        _strings_print(strings, count);
      }
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_technologies_enabled(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_technologies_enabled(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    const char **strings;
    unsigned int count;
@@ -491,11 +477,11 @@ _on_cmd_manager_get_technologies_enabled(char *cmd, char *args)
        _strings_print(strings, count);
      }
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_get_technologies_connected(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_get_technologies_connected(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    const char **strings;
    unsigned int count;
@@ -508,18 +494,18 @@ _on_cmd_manager_get_technologies_connected(char *cmd, char *args)
        _strings_print(strings, count);
      }
 
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_profile_remove(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_profile_remove(__UNUSED__ char *cmd, char *args)
 {
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
 
@@ -529,11 +515,11 @@ _on_cmd_manager_profile_remove(char *cmd, char *args)
      printf(":::Manager Remove Profile %s\n", args);
    else
      fputs("ERROR: can't remove profile from manager\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_profile_get_active(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_profile_get_active(__UNUSED__ char *cmd, __UNUSED__ char *args)
 {
    E_Connman_Element *e;
 
@@ -541,18 +527,18 @@ _on_cmd_manager_profile_get_active(char *cmd, char *args)
      fputs("ERROR: can't active_get profile from manager\n", stderr);
    else
      e_connman_element_print(stderr, e);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_manager_profile_set_active(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_manager_profile_set_active(__UNUSED__ char *cmd, char *args)
 {
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
 
@@ -562,287 +548,13 @@ _on_cmd_manager_profile_set_active(char *cmd, char *args)
      printf(":::Manager Active Profile set to %s\n", args);
    else
      fputs("ERROR: can't set active profile\n", stderr);
-   return 1;
-}
-
-/* Device Commands */
-static int
-_on_cmd_device_propose_scan(char *cmd, char *args)
-{
-   char *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_propose_scan
-       (e, _method_success_check, "device_propose_scan"))
-     printf(":::Proposing scan %s...\n", path);
-   else
-     fputs("ERROR: can't propose scan\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_address(char *cmd, char *args)
-{
-   const char *address, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_address_get(e, &address))
-     printf(":::Device %s Address = \"%s\"\n", path, address);
-   else
-     fputs("ERROR: can't get device address\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_name(char *cmd, char *args)
-{
-   const char *name, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_name_get(e, &name))
-     printf(":::Device %s Name = \"%s\"\n", path, name);
-   else
-     fputs("ERROR: can't get device name\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_type(char *cmd, char *args)
-{
-   const char *type, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_type_get(e, &type))
-     printf(":::Device %s Type = \"%s\"\n", path, type);
-   else
-     fputs("ERROR: can't get device type\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_interface(char *cmd, char *args)
-{
-   const char *interface, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_interface_get(e, &interface))
-     printf(":::Device %s Interface = \"%s\"\n", path, interface);
-   else
-     fputs("ERROR: can't get device interface\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_powered(char *cmd, char *args)
-{
-   char *path;
-   bool powered;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_powered_get(e, &powered))
-     printf(":::Device %s Powered = %hhu\n", path, powered);
-   else
-     fputs("ERROR: can't get device powered\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_set_powered(char *cmd, char *args)
-{
-   char *device_path, *next_args;
-   bool powered;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   device_path = args;
-   next_args = _tok(args);
-   if (!next_args)
-     {
-       fputs("ERROR: missing the powered value\n", stderr);
-       return 1;
-     }
-   powered = !!atol(next_args);
-
-   e = e_connman_device_get(device_path);
-   if (e_connman_device_powered_set
-       (e, powered, _method_success_check, "device_set_powered"))
-     printf(":::Device %s powered set to %hhu\n", device_path, powered);
-   else
-     fputs("ERROR: can't set device powered\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_scan_interval(char *cmd, char *args)
-{
-   char *path;
-   unsigned short scan_interval;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_scan_interval_get(e, &scan_interval))
-     printf(":::Device %s ScanInterval = %hu\n", path, scan_interval);
-   else
-     fputs("ERROR: can't get device scan interval\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_set_scan_interval(char *cmd, char *args)
-{
-   char *device_path, *next_args, *p;
-   unsigned short scan_interval;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   device_path = args;
-   next_args = _tok(args);
-   if (!next_args)
-     {
-       fputs("ERROR: missing the scan interval value\n", stderr);
-       return 1;
-     }
-   scan_interval = strtol(next_args, &p, 0);
-   if (p == next_args)
-     {
-       fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
-       return 1;
-     }
-
-   e = e_connman_device_get(device_path);
-   if (e_connman_device_scan_interval_set
-       (e, scan_interval, _method_success_check, "device_set_scan_interval"))
-     printf(":::Device %s scan interval set to %hu\n", device_path, scan_interval);
-   else
-     fputs("ERROR: can't set device scan interval\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_scanning(char *cmd, char *args)
-{
-   char *path;
-   bool scanning;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (e_connman_device_scanning_get(e, &scanning))
-     printf(":::Device %s Scanning = %hhu\n", path, scanning);
-   else
-     fputs("ERROR: can't get device scanning\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_device_get_networks(char *cmd, char *args)
-{
-   E_Connman_Element **networks;
-   unsigned int count;
-   char *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the device path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_device_get(path);
-   if (!e_connman_device_networks_get(e, &count, &networks))
-     {
-       fputs("ERROR: can't get networks\n", stderr);
-       return 1;
-     }
-
-   printf("BEG: all device network elements count = %d\n", count);
-   _elements_print(networks, count);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
 /* Profile Commands */
 
-static int
-_on_cmd_profile_get_name(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_profile_get_name(__UNUSED__ char *cmd, char *args)
 {
    const char *name, *path;
    E_Connman_Element *e;
@@ -850,7 +562,7 @@ _on_cmd_profile_get_name(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -860,11 +572,11 @@ _on_cmd_profile_get_name(char *cmd, char *args)
      printf(":::Profile %s Name = \"%s\"\n", path, name);
    else
      fputs("ERROR: can't get profile name\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_profile_set_name(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_profile_set_name(__UNUSED__ char *cmd, char *args)
 {
    char *path, *next_args;
    E_Connman_Element *e;
@@ -872,14 +584,14 @@ _on_cmd_profile_set_name(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    next_args = _tok(args);
    if (!next_args)
      {
        fputs("ERROR: missing the offline mode value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(next_args);
 
@@ -889,20 +601,20 @@ _on_cmd_profile_set_name(char *cmd, char *args)
      printf(":::Profile %s Name set to %s\n", path, next_args);
    else
      fputs("ERROR: can't set profile name\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_profile_get_offline_mode(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_profile_get_offline_mode(__UNUSED__ char *cmd, char *args)
 {
    char *path;
-   bool offline;
+   Eina_Bool offline;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -912,27 +624,27 @@ _on_cmd_profile_get_offline_mode(char *cmd, char *args)
      printf(":::Profile  %s Offline Mode = %hhu\n", path, offline);
    else
      fputs("ERROR: can't get profile offline mode\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_profile_set_offline_mode(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_profile_set_offline_mode(__UNUSED__ char *cmd, char *args)
 {
    char *path, *next_args;
-   bool offline;
+   Eina_Bool offline;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    next_args = _tok(args);
    if (!next_args)
      {
        fputs("ERROR: missing the offline mode value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(next_args);
    offline = !!atol(next_args);
@@ -943,11 +655,11 @@ _on_cmd_profile_set_offline_mode(char *cmd, char *args)
      printf(":::Profile %s Offline Mode set to %hhu\n", path, offline);
    else
      fputs("ERROR: can't set profile offline mode\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_profile_get_services(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_profile_get_services(__UNUSED__ char *cmd, char *args)
 {
    E_Connman_Element **services;
    E_Connman_Element *e;
@@ -957,7 +669,7 @@ _on_cmd_profile_get_services(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the profile path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -966,294 +678,17 @@ _on_cmd_profile_get_services(char *cmd, char *args)
    if (!e_connman_profile_services_get(e, &count, &services))
      {
        fputs("ERROR: can't get services\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    printf("BEG: all profile services count = %d\n", count);
    _elements_print(services, count);
-   return 1;
-}
-
-
-/* Network Commands */
-
-static int
-_on_cmd_network_get_address(char *cmd, char *args)
-{
-   const char *address, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_address_get(e, &address))
-     printf(":::Network %s Address = \"%s\"\n", path, address);
-   else
-     fputs("ERROR: can't get network address\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_network_get_name(char *cmd, char *args)
-{
-   const char *name, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_name_get(e, &name))
-     printf(":::Network %s Name = \"%s\"\n", path, name);
-   else
-     fputs("ERROR: can't get network name\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_connected(char *cmd, char *args)
-{
-   char *path;
-   bool connected;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_connected_get(e, &connected))
-     printf(":::Network %s Connected = %hhu\n", path, connected);
-   else
-     fputs("ERROR: can't get network connected\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_strength(char *cmd, char *args)
-{
-   char *path;
-   unsigned char strength;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_strength_get(e, &strength))
-     printf(":::Network %s Strength = %#02hhx (%d)\n", path, strength, strength);
-   else
-     fputs("ERROR: can't get network strength\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_frequency(char *cmd, char *args)
-{
-   char *path;
-   unsigned short frequency;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_frequency_get(e, &frequency))
-     printf(":::Network %s Frequency = %#04hx (%d)\n", path, frequency, frequency);
-   else
-     fputs("ERROR: can't get network frequency\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_device(char *cmd, char *args)
-{
-   E_Connman_Element *e, *device;
-   char *path;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (!e_connman_network_device_get(e, &device))
-     fputs("ERROR: can't get network device\n", stderr);
-   else
-     e_connman_element_print(stderr, device);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_ssid(char *cmd, char *args)
-{
-   unsigned char *bytes;
-   char *path;
-   unsigned int i, count;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_ssid_get(e, &count, &bytes))
-     {
-       printf(":::Network %s Wifi SSID = ", path);
-       for (i = 0; i < count; i++)
-         printf("%#02hhx (\"%c\"), ", bytes[i], bytes[i]);
-       printf("\n");
-     }
-   else
-     fputs("ERROR: can't get network wifi ssid\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_mode(char *cmd, char *args)
-{
-   const char *wifi_mode, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_mode_get(e, &wifi_mode))
-     printf(":::Network %s Wifi Mode = \"%s\"\n", path, wifi_mode);
-   else
-     fputs("ERROR: can't get network wifi mode\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_security(char *cmd, char *args)
-{
-   const char *wifi_security, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_security_get(e, &wifi_security))
-     printf(":::Network %s Wifi Security = \"%s\"\n", path, wifi_security);
-   else
-     fputs("ERROR: can't get network wifi security\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_passphrase(char *cmd, char *args)
-{
-   const char *wifi_passphrase, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_passphrase_get(e, &wifi_passphrase))
-     printf(":::Network %s Wifi Passphrase = \"%s\"\n", path, wifi_passphrase);
-   else
-     fputs("ERROR: can't get network wifi passphrase\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_channel(char *cmd, char *args)
-{
-   char *path;
-   E_Connman_Element *e;
-   unsigned short wifi_channel;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_channel_get(e, &wifi_channel))
-     printf(":::Network %s Wifi Channel = %#02hx (%d)\n", path, wifi_channel, wifi_channel);
-   else
-     fputs("ERROR: can't get network wifi channel\n", stderr);
-   return 1;
-}
-
-static int
-_on_cmd_network_get_wifi_eap(char *cmd, char *args)
-{
-   const char *wifi_eap, *path;
-   E_Connman_Element *e;
-
-   if (!args)
-     {
-       fputs("ERROR: missing the network path\n", stderr);
-       return 1;
-     }
-   _tok(args);
-   path = args;
-
-   e = e_connman_network_get(path);
-   if (e_connman_network_wifi_eap_get(e, &wifi_eap))
-     printf(":::Network %s Wifi EAP = \"%s\"\n", path, wifi_eap);
-   else
-     fputs("ERROR: can't get network wifi eap\n", stderr);
-   return 1;
-}
 
 /* Services Commands */
-static int
-_on_cmd_service_connect(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_connect(__UNUSED__ char *cmd, char *args)
 {
    char *path;
    E_Connman_Element *e;
@@ -1261,7 +696,7 @@ _on_cmd_service_connect(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1272,11 +707,11 @@ _on_cmd_service_connect(char *cmd, char *args)
      printf(":::Connecting to Service %s...\n", path);
    else
      fputs("ERROR: can't connect to service\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_disconnect(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_disconnect(__UNUSED__ char *cmd, char *args)
 {
    char *path;
    E_Connman_Element *e;
@@ -1284,7 +719,7 @@ _on_cmd_service_disconnect(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1295,11 +730,11 @@ _on_cmd_service_disconnect(char *cmd, char *args)
      printf(":::Disconnecting Service %s...\n", path);
    else
      fputs("ERROR: can't disconnect service\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_remove(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_remove(__UNUSED__ char *cmd, char *args)
 {
    char *path;
    E_Connman_Element *e;
@@ -1307,7 +742,7 @@ _on_cmd_service_remove(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1318,11 +753,11 @@ _on_cmd_service_remove(char *cmd, char *args)
      printf(":::Removing Service %s...\n", path);
    else
      fputs("ERROR: can't remove service\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_move_before(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_move_before(__UNUSED__ char *cmd, char *args)
 {
    char *path, *service_path;
    E_Connman_Element *e;
@@ -1330,7 +765,7 @@ _on_cmd_service_move_before(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    service_path = args;
    path = _tok(args);
@@ -1338,7 +773,7 @@ _on_cmd_service_move_before(char *cmd, char *args)
    if (!path)
      {
        fputs("ERROR: missing the object service\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(path);
 
@@ -1348,11 +783,11 @@ _on_cmd_service_move_before(char *cmd, char *args)
      printf(":::Moving before %s...\n", path);
    else
      fputs("ERROR: can't move before\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_move_after(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_move_after(__UNUSED__ char *cmd, char *args)
 {
    char *path, *service_path;
    E_Connman_Element *e;
@@ -1360,7 +795,7 @@ _on_cmd_service_move_after(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    service_path = args;
    path = _tok(args);
@@ -1368,7 +803,7 @@ _on_cmd_service_move_after(char *cmd, char *args)
    if (!path)
      {
        fputs("ERROR: missing the object service\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(path);
 
@@ -1378,11 +813,11 @@ _on_cmd_service_move_after(char *cmd, char *args)
      printf(":::Moving after %s...\n", path);
    else
      fputs("ERROR: can't move after\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_state(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_state(__UNUSED__ char *cmd, char *args)
 {
    const char *state, *path;
    E_Connman_Element *e;
@@ -1390,7 +825,7 @@ _on_cmd_service_get_state(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1400,11 +835,11 @@ _on_cmd_service_get_state(char *cmd, char *args)
      printf(":::Service %s State = \"%s\"\n", path, state);
    else
      fputs("ERROR: can't get service state\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_error(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_error(__UNUSED__ char *cmd, char *args)
 {
    const char *error, *path;
    E_Connman_Element *e;
@@ -1412,7 +847,7 @@ _on_cmd_service_get_error(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1422,11 +857,11 @@ _on_cmd_service_get_error(char *cmd, char *args)
      printf(":::Service %s Error = \"%s\"\n", path, error);
    else
      fputs("ERROR: can't get service error\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_name(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_name(__UNUSED__ char *cmd, char *args)
 {
    const char *name, *path;
    E_Connman_Element *e;
@@ -1434,7 +869,7 @@ _on_cmd_service_get_name(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1444,11 +879,11 @@ _on_cmd_service_get_name(char *cmd, char *args)
      printf(":::Service %s Name = \"%s\"\n", path, name);
    else
      fputs("ERROR: can't get service name\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_type(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_type(__UNUSED__ char *cmd, char *args)
 {
    const char *type, *path;
    E_Connman_Element *e;
@@ -1456,7 +891,7 @@ _on_cmd_service_get_type(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1466,11 +901,11 @@ _on_cmd_service_get_type(char *cmd, char *args)
      printf(":::Service %s Type = \"%s\"\n", path, type);
    else
      fputs("ERROR: can't get service type\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_mode(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_mode(__UNUSED__ char *cmd, char *args)
 {
    const char *mode, *path;
    E_Connman_Element *e;
@@ -1478,7 +913,7 @@ _on_cmd_service_get_mode(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1488,33 +923,49 @@ _on_cmd_service_get_mode(char *cmd, char *args)
      printf(":::Service %s Mode = \"%s\"\n", path, mode);
    else
      fputs("ERROR: can't get service mode\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_security(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_security(__UNUSED__ char *cmd, char *args)
 {
-   const char *security, *path;
+   const E_Connman_Array *security;
+   const char *path;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
 
    e = e_connman_service_get(path);
    if (e_connman_service_security_get(e, &security))
-     printf(":::Service %s Security = \"%s\"\n", path, security);
+     {
+        Eina_Array_Iterator iterator;
+        unsigned int i;
+        const char *entry;
+        if (security->type != DBUS_TYPE_STRING)
+          {
+             fprintf(stderr, "ERROR: expected type '%c' but got '%c' for "
+                     "security array.\n",
+                     DBUS_TYPE_STRING, security->type);
+             return ECORE_CALLBACK_RENEW;
+          }
+        printf(":::Service %s Security = ", path);
+        EINA_ARRAY_ITER_NEXT(security->array, i, entry, iterator)
+          printf("\"%s\", ", entry);
+        putchar('\n');
+     }
    else
      fputs("ERROR: can't get service security\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_passphrase(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_passphrase(__UNUSED__ char *cmd, char *args)
 {
    const char *passphrase, *path;
    E_Connman_Element *e;
@@ -1522,7 +973,7 @@ _on_cmd_service_get_passphrase(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1532,11 +983,11 @@ _on_cmd_service_get_passphrase(char *cmd, char *args)
      printf(":::Service %s Passphrase = \"%s\"\n", path, passphrase);
    else
      fputs("ERROR: can't get service passphrase\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_set_passphrase(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_set_passphrase(__UNUSED__ char *cmd, char *args)
 {
    char *passphrase, *path;
    E_Connman_Element *e;
@@ -1544,7 +995,7 @@ _on_cmd_service_set_passphrase(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    passphrase = _tok(args);
@@ -1552,7 +1003,7 @@ _on_cmd_service_set_passphrase(char *cmd, char *args)
    if (!passphrase)
      {
        fputs("ERROR: missing the passphrase value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(passphrase);
 
@@ -1562,20 +1013,20 @@ _on_cmd_service_set_passphrase(char *cmd, char *args)
      printf(":::Service %s passphrase set to \"%s\"\n", path, passphrase);
    else
      fputs("ERROR: can't set service passphrase\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_passphrase_required(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_passphrase_required(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool passphrase;
+   Eina_Bool passphrase;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1585,11 +1036,11 @@ _on_cmd_service_get_passphrase_required(char *cmd, char *args)
      printf(":::Service %s Passphrase Required = %hhu\n", path, passphrase);
    else
      fputs("ERROR: can't get service passphrase required\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_strength(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_strength(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
    unsigned char strength;
@@ -1598,7 +1049,7 @@ _on_cmd_service_get_strength(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1608,20 +1059,20 @@ _on_cmd_service_get_strength(char *cmd, char *args)
      printf(":::Service %s Strength = %#02hhx (%d)\n", path, strength, strength);
    else
      fputs("ERROR: can't get service strength\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_favorite(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_favorite(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool favorite;
+   Eina_Bool favorite;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1631,20 +1082,20 @@ _on_cmd_service_get_favorite(char *cmd, char *args)
      printf(":::Service %s Favorite = %hhu\n", path, favorite);
    else
      fputs("ERROR: can't get service favorite\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_immutable(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_immutable(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool immutable;
+   Eina_Bool immutable;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1654,20 +1105,20 @@ _on_cmd_service_get_immutable(char *cmd, char *args)
      printf(":::Service %s Immutable = %hhu\n", path, immutable);
    else
      fputs("ERROR: can't get service immutable\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_auto_connect(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_auto_connect(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool auto_connect;
+   Eina_Bool auto_connect;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1677,20 +1128,20 @@ _on_cmd_service_get_auto_connect(char *cmd, char *args)
      printf(":::Service %s Auto Connect = %hhu\n", path, auto_connect);
    else
      fputs("ERROR: can't get service auto connect\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_set_auto_connect(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_set_auto_connect(__UNUSED__ char *cmd, char *args)
 {
    char *path, *next_args;
-   bool auto_connect;
+   Eina_Bool auto_connect;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    next_args = _tok(args);
@@ -1698,7 +1149,7 @@ _on_cmd_service_set_auto_connect(char *cmd, char *args)
    if (!next_args)
      {
        fputs("ERROR: missing the auto connect value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(next_args);
    auto_connect = !!atol(next_args);
@@ -1709,20 +1160,20 @@ _on_cmd_service_set_auto_connect(char *cmd, char *args)
      printf(":::Service %s auto connect set to %d\n", path, auto_connect);
    else
      fputs("ERROR: can't set service auto connect\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_setup_required(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_setup_required(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool setup_required;
+   Eina_Bool setup_required;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1732,11 +1183,11 @@ _on_cmd_service_get_setup_required(char *cmd, char *args)
      printf(":::Service %s Setup Required = %hhu\n", path, setup_required);
    else
      fputs("ERROR: can't get service setup required\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_apn(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_apn(__UNUSED__ char *cmd, char *args)
 {
    const char *apn, *path;
    E_Connman_Element *e;
@@ -1744,7 +1195,7 @@ _on_cmd_service_get_apn(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1754,11 +1205,11 @@ _on_cmd_service_get_apn(char *cmd, char *args)
      printf(":::Service %s APN = \"%s\"\n", path, apn);
    else
      fputs("ERROR: can't get service APN\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_set_apn(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_set_apn(__UNUSED__ char *cmd, char *args)
 {
    char *apn, *path;
    E_Connman_Element *e;
@@ -1766,7 +1217,7 @@ _on_cmd_service_set_apn(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    apn = _tok(args);
@@ -1774,7 +1225,7 @@ _on_cmd_service_set_apn(char *cmd, char *args)
    if (!apn)
      {
        fputs("ERROR: missing the apn value\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(apn);
 
@@ -1784,11 +1235,11 @@ _on_cmd_service_set_apn(char *cmd, char *args)
      printf(":::Service %s APN set to \"%s\"\n", path, apn);
    else
      fputs("ERROR: can't set service APN\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_mcc(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_mcc(__UNUSED__ char *cmd, char *args)
 {
    const char *mcc, *path;
    E_Connman_Element *e;
@@ -1796,7 +1247,7 @@ _on_cmd_service_get_mcc(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1806,11 +1257,11 @@ _on_cmd_service_get_mcc(char *cmd, char *args)
      printf(":::Service %s MCC = \"%s\"\n", path, mcc);
    else
      fputs("ERROR: can't get service MCC\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_mnc(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_mnc(__UNUSED__ char *cmd, char *args)
 {
    const char *mnc, *path;
    E_Connman_Element *e;
@@ -1818,7 +1269,7 @@ _on_cmd_service_get_mnc(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1828,20 +1279,20 @@ _on_cmd_service_get_mnc(char *cmd, char *args)
      printf(":::Service %s MNC = \"%s\"\n", path, mnc);
    else
      fputs("ERROR: can't get service MNC\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_roaming(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_roaming(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
-   bool roaming;
+   Eina_Bool roaming;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1851,11 +1302,11 @@ _on_cmd_service_get_roaming(char *cmd, char *args)
      printf(":::Service %s Roaming = %hhu\n", path, roaming);
    else
      fputs("ERROR: can't get service roaming\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_method(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_method(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_method, *path;
    E_Connman_Element *e;
@@ -1863,7 +1314,7 @@ _on_cmd_service_get_ipv4_method(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1873,11 +1324,11 @@ _on_cmd_service_get_ipv4_method(char *cmd, char *args)
      printf(":::Service %s IPv4 Method = \"%s\"\n", path, ipv4_method);
    else
      fputs("ERROR: can't get service ipv4 method\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_address(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_address(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_address, *path;
    E_Connman_Element *e;
@@ -1885,7 +1336,7 @@ _on_cmd_service_get_ipv4_address(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1895,11 +1346,11 @@ _on_cmd_service_get_ipv4_address(char *cmd, char *args)
      printf(":::Service %s IPv4 Address = \"%s\"\n", path, ipv4_address);
    else
      fputs("ERROR: can't get service ipv4 address\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_gateway(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_gateway(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_gateway, *path;
    E_Connman_Element *e;
@@ -1907,7 +1358,7 @@ _on_cmd_service_get_ipv4_gateway(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1917,11 +1368,11 @@ _on_cmd_service_get_ipv4_gateway(char *cmd, char *args)
      printf(":::Service %s IPv4 Gateway = \"%s\"\n", path, ipv4_gateway);
    else
      fputs("ERROR: can't get service ipv4 gateway\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_netmask(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_netmask(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_netmask, *path;
    E_Connman_Element *e;
@@ -1929,7 +1380,7 @@ _on_cmd_service_get_ipv4_netmask(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1939,11 +1390,11 @@ _on_cmd_service_get_ipv4_netmask(char *cmd, char *args)
      printf(":::Service %s IPv4 Netmask = \"%s\"\n", path, ipv4_netmask);
    else
      fputs("ERROR: can't get service ipv4 netmask\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_configuration_method(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_configuration_method(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_method, *path;
    E_Connman_Element *e;
@@ -1951,7 +1402,7 @@ _on_cmd_service_get_ipv4_configuration_method(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1962,11 +1413,11 @@ _on_cmd_service_get_ipv4_configuration_method(char *cmd, char *args)
            path, ipv4_method);
    else
      fputs("ERROR: can't get service ipv4_configuration method\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_configuration_address(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_configuration_address(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_address, *path;
    E_Connman_Element *e;
@@ -1974,7 +1425,7 @@ _on_cmd_service_get_ipv4_configuration_address(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -1985,11 +1436,11 @@ _on_cmd_service_get_ipv4_configuration_address(char *cmd, char *args)
            path, ipv4_address);
    else
      fputs("ERROR: can't get service ipv4_configuration address\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_configuration_gateway(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_configuration_gateway(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_gateway, *path;
    E_Connman_Element *e;
@@ -1997,7 +1448,7 @@ _on_cmd_service_get_ipv4_configuration_gateway(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -2008,11 +1459,11 @@ _on_cmd_service_get_ipv4_configuration_gateway(char *cmd, char *args)
            path, ipv4_gateway);
    else
      fputs("ERROR: can't get service ipv4_configuration gateway\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ipv4_configuration_netmask(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ipv4_configuration_netmask(__UNUSED__ char *cmd, char *args)
 {
    const char *ipv4_netmask, *path;
    E_Connman_Element *e;
@@ -2020,7 +1471,7 @@ _on_cmd_service_get_ipv4_configuration_netmask(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -2031,11 +1482,11 @@ _on_cmd_service_get_ipv4_configuration_netmask(char *cmd, char *args)
            path, ipv4_netmask);
    else
      fputs("ERROR: can't get service ipv4 configuration netmask\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_ipv4_configure_dhcp(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_ipv4_configure_dhcp(__UNUSED__ char *cmd, char *args)
 {
    char *path;
    E_Connman_Element *e;
@@ -2043,7 +1494,7 @@ _on_cmd_service_ipv4_configure_dhcp(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    _tok(args);
@@ -2054,49 +1505,53 @@ _on_cmd_service_ipv4_configure_dhcp(char *cmd, char *args)
      printf(":::Service %s IPv4 Configuration set to DHCP\n", path);
    else
      fputs("ERROR: can't set service ipv4_configuration dhcp\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_ipv4_configure_manual(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_ipv4_configure_manual(__UNUSED__ char *cmd, char *args)
 {
-   char *path, *next_args, *address, *netmask = NULL;
+   char *path, *next_args, *address, *netmask = NULL, *gateway = NULL;
    E_Connman_Element *e;
 
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    path = args;
    next_args = _tok(args);
    if (!next_args)
      {
        fputs("ERROR: missing the service address\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
    address = next_args;
    next_args = _tok(next_args);
    if (next_args)
+      netmask = next_args;
+
+   next_args = _tok(next_args);
+   if (next_args)
      {
-       netmask = next_args;
+       gateway = next_args;
        _tok(next_args);
      }
 
    e = e_connman_service_get(path);
    if (e_connman_service_ipv4_configure_manual
-       (e, address, netmask,
+       (e, address, netmask, gateway,
        _method_success_check, "service_ipv4_configure_manual"))
-     printf(":::Service %s IPv4 Configuration set to Manual (%s/%s)\n",
-           path, address, netmask);
+     printf(":::Service %s IPv4 Configuration set to Manual (%s/%s) gw %s\n",
+           path, address, netmask, gateway);
    else
      fputs("ERROR: can't set service ipv4_configuration manual\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ethernet_method(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ethernet_method(__UNUSED__ char *cmd, char *args)
 {
    const char *ethernet_method, *path;
    E_Connman_Element *e;
@@ -2104,7 +1559,7 @@ _on_cmd_service_get_ethernet_method(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -2114,11 +1569,11 @@ _on_cmd_service_get_ethernet_method(char *cmd, char *args)
      printf(":::Service %s Ethernet Method = \"%s\"\n", path, ethernet_method);
    else
      fputs("ERROR: can't get service ethernet method\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ethernet_address(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ethernet_address(__UNUSED__ char *cmd, char *args)
 {
    const char *ethernet_address, *path;
    E_Connman_Element *e;
@@ -2126,7 +1581,7 @@ _on_cmd_service_get_ethernet_address(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -2137,11 +1592,11 @@ _on_cmd_service_get_ethernet_address(char *cmd, char *args)
            path, ethernet_address);
    else
      fputs("ERROR: can't get service ethernet address\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ethernet_mtu(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_service_get_ethernet_mtu(__UNUSED__ char *cmd, char *args)
 {
    const char *path;
    E_Connman_Element *e;
@@ -2150,7 +1605,7 @@ _on_cmd_service_get_ethernet_mtu(char *cmd, char *args)
    if (!args)
      {
        fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
@@ -2160,41 +1615,83 @@ _on_cmd_service_get_ethernet_mtu(char *cmd, char *args)
      printf(":::Service %s Ethernet MTU = %hu\n", path, ethernet_mtu);
    else
      fputs("ERROR: can't get service ethernet mtu\n", stderr);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
-static int
-_on_cmd_service_get_ethernet_netmask(char *cmd, char *args)
+static Eina_Bool
+_on_cmd_technology_get_state(__UNUSED__ char *cmd, char *args)
 {
-   const char *ethernet_netmask, *path;
+   const char *state, *path;
    E_Connman_Element *e;
 
    if (!args)
      {
-       fputs("ERROR: missing the service path\n", stderr);
-       return 1;
+       fputs("ERROR: missing the technology path\n", stderr);
+       return ECORE_CALLBACK_RENEW;
      }
    _tok(args);
    path = args;
 
-   e = e_connman_service_get(path);
-   if (e_connman_service_ethernet_netmask_get(e, &ethernet_netmask))
-     printf(":::Service %s Ethernet Netmask = \"%s\"\n",
-           path, ethernet_netmask);
+   e = e_connman_technology_get(path);
+   if (e_connman_technology_state_get(e, &state))
+     printf(":::Technology %s State = \"%s\"\n", path, state);
    else
-     fputs("ERROR: can't get service ethernet netmask\n", stderr);
-   return 1;
+     fputs("ERROR: can't get technology state\n", stderr);
+   return ECORE_CALLBACK_RENEW;
 }
 
+static Eina_Bool
+_on_cmd_technology_get_type(__UNUSED__ char *cmd, char *args)
+{
+   const char *type, *path;
+   E_Connman_Element *e;
+
+   if (!args)
+     {
+       fputs("ERROR: missing the technology path\n", stderr);
+       return ECORE_CALLBACK_RENEW;
+     }
+   _tok(args);
+   path = args;
+
+   e = e_connman_technology_get(path);
+   if (e_connman_technology_type_get(e, &type))
+     printf(":::Technology %s Type = \"%s\"\n", path, type);
+   else
+     fputs("ERROR: can't get technology type\n", stderr);
+   return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
+_on_cmd_technology_get_name(__UNUSED__ char *cmd, char *args)
+{
+   const char *name, *path;
+   E_Connman_Element *e;
+
+   if (!args)
+     {
+       fputs("ERROR: missing the technology path\n", stderr);
+       return ECORE_CALLBACK_RENEW;
+     }
+   _tok(args);
+   path = args;
+
+   e = e_connman_technology_get(path);
+   if (e_connman_technology_name_get(e, &name))
+     printf(":::Technology %s Name = \"%s\"\n", path, name);
+   else
+     fputs("ERROR: can't get technology name\n", stderr);
+   return ECORE_CALLBACK_RENEW;
+}
 
-static int
-_on_input(void *data, Ecore_Fd_Handler *fd_handler)
+static Eina_Bool
+_on_input(__UNUSED__ void *data, Ecore_Fd_Handler *fd_handler)
 {
    char buf[256];
    char *cmd, *args;
    const struct {
       const char *cmd;
-      int (*cb)(char *cmd, char *args);
+      Eina_Bool (*cb)(char *cmd, char *args);
    } *itr, maps[] = {
      {"quit", _on_cmd_quit},
      {"sync", _on_cmd_sync},
@@ -2204,7 +1701,6 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
      {"set_property", _on_cmd_property_set},
      {"manager_get", _on_cmd_manager_get},
      {"manager_get_profiles", _on_cmd_manager_get_profiles},
-     {"manager_get_devices", _on_cmd_manager_get_devices},
      {"manager_get_services", _on_cmd_manager_get_services},
      {"manager_register_agent", _on_cmd_manager_register_agent},
      {"manager_unregister_agent", _on_cmd_manager_unregister_agent},
@@ -2220,34 +1716,11 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
      {"manager_profile_remove", _on_cmd_manager_profile_remove},
      {"manager_profile_get_active", _on_cmd_manager_profile_get_active},
      {"manager_profile_set_active", _on_cmd_manager_profile_set_active},
-     {"device_propose_scan", _on_cmd_device_propose_scan},
-     {"device_get_address", _on_cmd_device_get_address},
-     {"device_get_name", _on_cmd_device_get_name},
-     {"device_get_type", _on_cmd_device_get_type},
-     {"device_get_interface", _on_cmd_device_get_interface},
-     {"device_get_powered", _on_cmd_device_get_powered},
-     {"device_set_powered", _on_cmd_device_set_powered},
-     {"device_get_scan_interval", _on_cmd_device_get_scan_interval},
-     {"device_set_scan_interval", _on_cmd_device_set_scan_interval},
-     {"device_get_scanning", _on_cmd_device_get_scanning},
-     {"device_get_networks", _on_cmd_device_get_networks},
      {"profile_get_name", _on_cmd_profile_get_name},
      {"profile_set_name", _on_cmd_profile_set_name},
      {"profile_get_offline_mode", _on_cmd_profile_get_offline_mode},
      {"profile_set_offline_mode", _on_cmd_profile_set_offline_mode},
      {"profile_get_services", _on_cmd_profile_get_services},
-     {"network_get_address", _on_cmd_network_get_address},
-     {"network_get_name", _on_cmd_network_get_name},
-     {"network_get_connected", _on_cmd_network_get_connected},
-     {"network_get_strength", _on_cmd_network_get_strength},
-     {"network_get_frequency", _on_cmd_network_get_frequency},
-     {"network_get_device", _on_cmd_network_get_device},
-     {"network_get_wifi_ssid", _on_cmd_network_get_wifi_ssid},
-     {"network_get_wifi_mode", _on_cmd_network_get_wifi_mode},
-     {"network_get_wifi_security", _on_cmd_network_get_wifi_security},
-     {"network_get_wifi_passphrase", _on_cmd_network_get_wifi_passphrase},
-     {"network_get_wifi_channel", _on_cmd_network_get_wifi_channel},
-     {"network_get_wifi_eap", _on_cmd_network_get_wifi_eap},
      {"service_connect", _on_cmd_service_connect},
      {"service_disconnect", _on_cmd_service_disconnect},
      {"service_remove", _on_cmd_service_remove},
@@ -2286,7 +1759,9 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
      {"service_get_ethernet_method", _on_cmd_service_get_ethernet_method},
      {"service_get_ethernet_address", _on_cmd_service_get_ethernet_address},
      {"service_get_ethernet_mtu", _on_cmd_service_get_ethernet_mtu},
-     {"service_get_ethernet_netmask", _on_cmd_service_get_ethernet_netmask},
+     {"technology_get_state", _on_cmd_technology_get_state},
+     {"technology_get_type", _on_cmd_technology_get_type},
+     {"technology_get_name", _on_cmd_technology_get_name},
      {NULL, NULL}
    };
 
@@ -2294,20 +1769,20 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
    if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_ERROR))
      {
        fputs("ERROR: reading from stdin, exit\n", stderr);
-       return 0;
+       return ECORE_CALLBACK_CANCEL;
      }
 
    if (!ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
      {
        fputs("ERROR: nothing to read?\n", stderr);
-       return 0;
+       return ECORE_CALLBACK_CANCEL;
      }
 
    if (!fgets(buf, sizeof(buf), stdin))
      {
        fprintf(stderr, "ERROR: could not read command: %s\n", strerror(errno));
        ecore_main_loop_quit();
-       return 0;
+       return ECORE_CALLBACK_CANCEL;
      }
 
    cmd = buf;
@@ -2343,30 +1818,30 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
        if (args)
          {
             printf("Commands with '%s' in the name:\n", args);
-            for (itr = maps; itr->cmd != NULL; itr++)
+            for (itr = maps; itr->cmd; itr++)
               if (strstr(itr->cmd, args))
                 printf("\t%s\n", itr->cmd);
          }
        else
          {
             fputs("Commands:\n", stdout);
-            for (itr = maps; itr->cmd != NULL; itr++)
+            for (itr = maps; itr->cmd; itr++)
               printf("\t%s\n", itr->cmd);
          }
        fputc('\n', stdout);
-       return 1;
+       return ECORE_CALLBACK_RENEW;
      }
 
-   for (itr = maps; itr->cmd != NULL; itr++)
+   for (itr = maps; itr->cmd; itr++)
      if (strcmp(itr->cmd, cmd) == 0)
        return itr->cb(cmd, args);
 
    printf("unknown command \"%s\", args=%s\n", cmd, args);
-   return 1;
+   return ECORE_CALLBACK_RENEW;
 }
 
 int
-main(int argc, char *argv[])
+main(__UNUSED__ int argc, __UNUSED__ char *argv[])
 {
    E_DBus_Connection *c;