Let's go back to recent API while the issue is discussed
[framework/uifw/edbus.git] / src / lib / connman / e_connman.c
index 8f64182..b7911b0 100644 (file)
@@ -4,10 +4,12 @@
 
 static E_DBus_Signal_Handler *cb_name_owner_changed = NULL;
 static DBusPendingCall *pending_get_name_owner = NULL;
+static DBusPendingCall *pending_get_name_owner_old = NULL;
 static unsigned int init_count = 0;
 static char *unique_name = NULL;
 
 static const char bus_name[] = "net.connman";
+static const char bus_name_old[] = "org.moblin.connman";
 
 E_DBus_Connection *e_connman_conn = NULL;
 
@@ -23,12 +25,12 @@ const char *e_connman_iface_service = NULL;
 const char *e_connman_iface_connection = NULL;
 const char *e_connman_iface_technology = NULL;
 
-const char *e_connman_prop_available = NULL;
-const char *e_connman_prop_connections = NULL;
-const char *e_connman_prop_default = NULL;
 const char *e_connman_prop_ipv4 = NULL;
 const char *e_connman_prop_ipv4_configuration = NULL;
 const char *e_connman_prop_ethernet = NULL;
+const char *e_connman_prop_interface = NULL;
+const char *e_connman_prop_speed = NULL;
+const char *e_connman_prop_duplex = NULL;
 const char *e_connman_prop_method = NULL;
 const char *e_connman_prop_address = NULL;
 const char *e_connman_prop_gateway = NULL;
@@ -36,33 +38,35 @@ const char *e_connman_prop_netmask = NULL;
 const char *e_connman_prop_mtu = NULL;
 const char *e_connman_prop_name = NULL;
 const char *e_connman_prop_offline_mode = NULL;
-const char *e_connman_prop_policy = NULL;
-const char *e_connman_prop_priority = NULL;
 const char *e_connman_prop_profiles = NULL;
 const char *e_connman_prop_profile_active = NULL;
 const char *e_connman_prop_services = NULL;
 const char *e_connman_prop_technologies = NULL;
-const char *e_connman_prop_remember = NULL;
 const char *e_connman_prop_state = NULL;
 const char *e_connman_prop_strength = NULL;
 const char *e_connman_prop_type = NULL;
 const char *e_connman_prop_error = NULL;
-const char *e_connman_prop_mode = NULL;
 const char *e_connman_prop_security = NULL;
 const char *e_connman_prop_passphrase = NULL;
 const char *e_connman_prop_passphrase_required = NULL;
+const char *e_connman_prop_login_required = NULL;
 const char *e_connman_prop_favorite = NULL;
 const char *e_connman_prop_immutable = NULL;
 const char *e_connman_prop_auto_connect = NULL;
-const char *e_connman_prop_setup_required = NULL;
-const char *e_connman_prop_apn = NULL;
-const char *e_connman_prop_mcc = NULL;
-const char *e_connman_prop_mnc = NULL;
 const char *e_connman_prop_roaming = NULL;
 const char *e_connman_prop_technology_default = NULL;
 const char *e_connman_prop_technologies_available = NULL;
 const char *e_connman_prop_technologies_enabled = NULL;
 const char *e_connman_prop_technologies_connected = NULL;
+const char *e_connman_prop_nameservers = NULL;
+const char *e_connman_prop_nameservers_configuration = NULL;
+const char *e_connman_prop_domains = NULL;
+const char *e_connman_prop_domains_configuration = NULL;
+const char *e_connman_prop_proxy = NULL;
+const char *e_connman_prop_proxy_configuration = NULL;
+const char *e_connman_prop_url = NULL;
+const char *e_connman_prop_servers = NULL;
+const char *e_connman_prop_excludes = NULL;
 
 int _e_dbus_connman_log_dom = -1;
 
@@ -202,6 +206,63 @@ _e_connman_get_name_owner(void *data __UNUSED__, DBusMessage *msg, DBusError *er
         return;
      }
 
+   if (!e_connman_iface_manager)
+      e_connman_iface_manager = eina_stringshare_add("net.connman.Manager");
+
+   if (!e_connman_iface_profile)
+      e_connman_iface_profile = eina_stringshare_add("net.connman.Profile");
+
+   if (!e_connman_iface_service)
+      e_connman_iface_service = eina_stringshare_add("net.connman.Service");
+
+   if (!e_connman_iface_connection)
+      e_connman_iface_connection = eina_stringshare_add("net.connman.Connection");
+
+   if (!e_connman_iface_technology)
+      e_connman_iface_technology = eina_stringshare_add("net.connman.Technology");
+
+   _e_connman_system_name_owner_enter(uid);
+   return;
+}
+
+static void
+_e_connman_get_name_owner_old(void *data __UNUSED__, DBusMessage *msg, DBusError *err)
+{
+   DBusMessageIter itr;
+   int t;
+   const char *uid;
+
+   pending_get_name_owner_old = NULL;
+
+   if (!_dbus_callback_check_and_init(msg, &itr, err))
+      return;
+
+   t = dbus_message_iter_get_arg_type(&itr);
+   if (!_dbus_iter_type_check(t, DBUS_TYPE_STRING))
+      return;
+
+   dbus_message_iter_get_basic(&itr, &uid);
+   if (!uid)
+     {
+        ERR("no name owner!");
+        return;
+     }
+
+   if (!e_connman_iface_manager)
+      e_connman_iface_manager = eina_stringshare_add("org.moblin.connman.Manager");
+
+   if (!e_connman_iface_profile)
+      e_connman_iface_profile = eina_stringshare_add("org.moblin.connman.Profile");
+
+   if (!e_connman_iface_service)
+      e_connman_iface_service = eina_stringshare_add("org.moblin.connman.Service");
+
+   if (!e_connman_iface_connection)
+      e_connman_iface_connection = eina_stringshare_add("org.moblin.connman.Connection");
+
+   if (!e_connman_iface_technology)
+      e_connman_iface_technology = eina_stringshare_add("org.moblin.connman.Technology");
+
    _e_connman_system_name_owner_enter(uid);
    return;
 }
@@ -239,7 +300,7 @@ e_connman_system_init(E_DBus_Connection *edbus_conn)
    _e_dbus_connman_log_dom = eina_log_domain_register
          ("e_dbus_connman", EINA_LOG_DEFAULT_COLOR);
 
-   if(_e_dbus_connman_log_dom < 0)
+   if (_e_dbus_connman_log_dom < 0)
      {
         EINA_LOG_ERR
            ("impossible to create a log domain for edbus_connman module");
@@ -261,140 +322,64 @@ e_connman_system_init(E_DBus_Connection *edbus_conn)
    if (E_CONNMAN_EVENT_ELEMENT_UPDATED == 0)
       E_CONNMAN_EVENT_ELEMENT_UPDATED = ecore_event_type_new();
 
-   if (!e_connman_iface_manager)
-      e_connman_iface_manager = eina_stringshare_add("net.connman.Manager");
-
-   if (!e_connman_iface_profile)
-      e_connman_iface_profile = eina_stringshare_add("net.connman.Profile");
-
-   if (!e_connman_iface_service)
-      e_connman_iface_service = eina_stringshare_add("net.connman.Service");
-
-   if (!e_connman_iface_connection)
-      e_connman_iface_connection = eina_stringshare_add("net.connman.Connection");
-
-   if (!e_connman_iface_technology)
-      e_connman_iface_technology = eina_stringshare_add("net.connman.Technology");
-
-   if (!e_connman_prop_available)
-      e_connman_prop_available = eina_stringshare_add("Available");
-
-   if (!e_connman_prop_connections)
-      e_connman_prop_connections = eina_stringshare_add("Connections");
-
-   if (!e_connman_prop_default)
-      e_connman_prop_default = eina_stringshare_add("Default");
-
-   if (!e_connman_prop_ipv4)
-      e_connman_prop_ipv4 = eina_stringshare_add("IPv4");
-
-   if (!e_connman_prop_ipv4_configuration)
-      e_connman_prop_ipv4_configuration = eina_stringshare_add("IPv4.Configuration");
-
-   if (!e_connman_prop_ethernet)
-      e_connman_prop_ethernet = eina_stringshare_add("Ethernet");
-
-   if (!e_connman_prop_method)
-      e_connman_prop_method = eina_stringshare_add("Method");
-
-   if (!e_connman_prop_address)
-      e_connman_prop_address = eina_stringshare_add("Address");
-
-   if (!e_connman_prop_gateway)
-      e_connman_prop_gateway = eina_stringshare_add("Gateway");
-
-   if (!e_connman_prop_netmask)
-      e_connman_prop_netmask = eina_stringshare_add("Netmask");
-
-   if (!e_connman_prop_mtu)
-      e_connman_prop_mtu = eina_stringshare_add("MTU");
-
-   if (!e_connman_prop_name)
-      e_connman_prop_name = eina_stringshare_add("Name");
-
-   if (!e_connman_prop_offline_mode)
-      e_connman_prop_offline_mode = eina_stringshare_add("OfflineMode");
-
-   if (!e_connman_prop_policy)
-      e_connman_prop_policy = eina_stringshare_add("Policy");
-
-   if (!e_connman_prop_priority)
-      e_connman_prop_priority = eina_stringshare_add("Priority");
-
-   if (!e_connman_prop_profiles)
-      e_connman_prop_profiles = eina_stringshare_add("Profiles");
-
-   if (!e_connman_prop_profile_active)
-      e_connman_prop_profile_active = eina_stringshare_add("ActiveProfile");
-
-   if (!e_connman_prop_services)
-      e_connman_prop_services = eina_stringshare_add("Services");
-
-   if (!e_connman_prop_technologies)
-      e_connman_prop_technologies = eina_stringshare_add("Technologies");
-
-   if (!e_connman_prop_remember)
-      e_connman_prop_remember = eina_stringshare_add("Remember");
-
-   if (!e_connman_prop_state)
-      e_connman_prop_state = eina_stringshare_add("State");
-
-   if (!e_connman_prop_strength)
-      e_connman_prop_strength = eina_stringshare_add("Strength");
-
-   if (!e_connman_prop_type)
-      e_connman_prop_type = eina_stringshare_add("Type");
-
-   if (!e_connman_prop_error)
-      e_connman_prop_error = eina_stringshare_add("Error");
-
-   if (!e_connman_prop_mode)
-      e_connman_prop_mode = eina_stringshare_add("Mode");
-
-   if (!e_connman_prop_security)
-      e_connman_prop_security = eina_stringshare_add("Security");
-
-   if (!e_connman_prop_passphrase)
-      e_connman_prop_passphrase = eina_stringshare_add("Passphrase");
-
-   if (!e_connman_prop_passphrase_required)
-      e_connman_prop_passphrase_required = eina_stringshare_add("PassphraseRequired");
-
-   if (!e_connman_prop_favorite)
-      e_connman_prop_favorite = eina_stringshare_add("Favorite");
-
-   if (!e_connman_prop_immutable)
-      e_connman_prop_immutable = eina_stringshare_add("Immutable");
-
-   if (!e_connman_prop_auto_connect)
-      e_connman_prop_auto_connect = eina_stringshare_add("AutoConnect");
-
-   if (!e_connman_prop_setup_required)
-      e_connman_prop_setup_required = eina_stringshare_add("SetupRequired");
-
-   if (!e_connman_prop_apn)
-      e_connman_prop_apn = eina_stringshare_add("APN");
-
-   if (!e_connman_prop_mcc)
-      e_connman_prop_mcc = eina_stringshare_add("MCC");
-
-   if (!e_connman_prop_mnc)
-      e_connman_prop_mnc = eina_stringshare_add("MNC");
-
-   if (!e_connman_prop_roaming)
-      e_connman_prop_roaming = eina_stringshare_add("Roaming");
-
-   if (!e_connman_prop_technology_default)
-      e_connman_prop_technology_default = eina_stringshare_add("DefaultTechnology");
-
-   if (!e_connman_prop_technologies_available)
-      e_connman_prop_technologies_available = eina_stringshare_add("AvailableTechnologies");
-
-   if (!e_connman_prop_technologies_enabled)
-      e_connman_prop_technologies_enabled = eina_stringshare_add("EnabledTechnologies");
-
-   if (!e_connman_prop_technologies_connected)
-      e_connman_prop_technologies_connected = eina_stringshare_add("ConnectedTechnologies");
+#define ADD_STRINGSHARE(name, s)       \
+   if (!name)                          \
+      name = eina_stringshare_add(s)
+/*
+   ADD_STRINGSHARE(e_connman_iface_manager, "net.connman.Manager");
+   ADD_STRINGSHARE(e_connman_iface_profile, "net.connman.Profile");
+   ADD_STRINGSHARE(e_connman_iface_service, "net.connman.Service");
+   ADD_STRINGSHARE(e_connman_iface_connection, "net.connman.Connection");
+   ADD_STRINGSHARE(e_connman_iface_technology, "net.connman.Technology");
+ */
+   ADD_STRINGSHARE(e_connman_prop_ipv4, "IPv4");
+   ADD_STRINGSHARE(e_connman_prop_ipv4_configuration, "IPv4.Configuration");
+   ADD_STRINGSHARE(e_connman_prop_ethernet, "Ethernet");
+   ADD_STRINGSHARE(e_connman_prop_interface, "Interface");
+   ADD_STRINGSHARE(e_connman_prop_speed, "Speed");
+   ADD_STRINGSHARE(e_connman_prop_duplex, "Duplex");
+   ADD_STRINGSHARE(e_connman_prop_method, "Method");
+   ADD_STRINGSHARE(e_connman_prop_address, "Address");
+   ADD_STRINGSHARE(e_connman_prop_gateway, "Gateway");
+   ADD_STRINGSHARE(e_connman_prop_netmask, "Netmask");
+   ADD_STRINGSHARE(e_connman_prop_mtu, "MTU");
+   ADD_STRINGSHARE(e_connman_prop_name, "Name");
+   ADD_STRINGSHARE(e_connman_prop_offline_mode, "OfflineMode");
+   ADD_STRINGSHARE(e_connman_prop_profiles, "Profiles");
+   ADD_STRINGSHARE(e_connman_prop_profile_active, "ActiveProfile");
+   ADD_STRINGSHARE(e_connman_prop_services, "Services");
+   ADD_STRINGSHARE(e_connman_prop_technologies, "Technologies");
+   ADD_STRINGSHARE(e_connman_prop_state, "State");
+   ADD_STRINGSHARE(e_connman_prop_strength, "Strength");
+   ADD_STRINGSHARE(e_connman_prop_type, "Type");
+   ADD_STRINGSHARE(e_connman_prop_error, "Error");
+   ADD_STRINGSHARE(e_connman_prop_security, "Security");
+   ADD_STRINGSHARE(e_connman_prop_passphrase, "Passphrase");
+   ADD_STRINGSHARE(e_connman_prop_passphrase_required, "PassphraseRequired");
+   ADD_STRINGSHARE(e_connman_prop_login_required, "LoginRequired");
+   ADD_STRINGSHARE(e_connman_prop_favorite, "Favorite");
+   ADD_STRINGSHARE(e_connman_prop_immutable, "Immutable");
+   ADD_STRINGSHARE(e_connman_prop_auto_connect, "AutoConnect");
+   ADD_STRINGSHARE(e_connman_prop_roaming, "Roaming");
+   ADD_STRINGSHARE(e_connman_prop_technology_default, "DefaultTechnology");
+   ADD_STRINGSHARE(e_connman_prop_technologies_available,
+                   "AvailableTechnologies");
+   ADD_STRINGSHARE(e_connman_prop_technologies_enabled, "EnabledTechnologies");
+   ADD_STRINGSHARE(e_connman_prop_technologies_connected,
+                   "ConnectedTechnologies");
+   ADD_STRINGSHARE(e_connman_prop_nameservers, "Nameservers");
+   ADD_STRINGSHARE(e_connman_prop_nameservers_configuration,
+                   "Nameservers.Configuration");
+   ADD_STRINGSHARE(e_connman_prop_domains, "Domains");
+   ADD_STRINGSHARE(e_connman_prop_domains_configuration,
+                   "Domains.Configuration");
+   ADD_STRINGSHARE(e_connman_prop_proxy, "Proxy");
+   ADD_STRINGSHARE(e_connman_prop_proxy_configuration, "Proxy.Configuration");
+   ADD_STRINGSHARE(e_connman_prop_url, "URL");
+   ADD_STRINGSHARE(e_connman_prop_servers, "Servers");
+   ADD_STRINGSHARE(e_connman_prop_excludes, "Excludes");
+
+#undef ADD_STRINGSHARE
 
    e_connman_conn = edbus_conn;
    cb_name_owner_changed = e_dbus_signal_handler_add
@@ -407,6 +392,12 @@ e_connman_system_init(E_DBus_Connection *edbus_conn)
    pending_get_name_owner = e_dbus_get_name_owner
          (e_connman_conn, bus_name, _e_connman_get_name_owner, NULL);
 
+   if (pending_get_name_owner_old)
+      dbus_pending_call_cancel(pending_get_name_owner_old);
+
+   pending_get_name_owner_old = e_dbus_get_name_owner
+         (e_connman_conn, bus_name_old, _e_connman_get_name_owner_old, NULL);
+
    e_connman_elements_init();
 
    return init_count;
@@ -447,12 +438,12 @@ e_connman_system_shutdown(void)
    _stringshare_del(&e_connman_iface_connection);
    _stringshare_del(&e_connman_iface_technology);
 
-   _stringshare_del(&e_connman_prop_available);
-   _stringshare_del(&e_connman_prop_connections);
-   _stringshare_del(&e_connman_prop_default);
    _stringshare_del(&e_connman_prop_ipv4);
    _stringshare_del(&e_connman_prop_ipv4_configuration);
    _stringshare_del(&e_connman_prop_ethernet);
+   _stringshare_del(&e_connman_prop_interface);
+   _stringshare_del(&e_connman_prop_speed);
+   _stringshare_del(&e_connman_prop_duplex);
    _stringshare_del(&e_connman_prop_method);
    _stringshare_del(&e_connman_prop_address);
    _stringshare_del(&e_connman_prop_gateway);
@@ -460,33 +451,35 @@ e_connman_system_shutdown(void)
    _stringshare_del(&e_connman_prop_mtu);
    _stringshare_del(&e_connman_prop_name);
    _stringshare_del(&e_connman_prop_offline_mode);
-   _stringshare_del(&e_connman_prop_policy);
-   _stringshare_del(&e_connman_prop_priority);
    _stringshare_del(&e_connman_prop_profiles);
    _stringshare_del(&e_connman_prop_profile_active);
    _stringshare_del(&e_connman_prop_services);
    _stringshare_del(&e_connman_prop_technologies);
-   _stringshare_del(&e_connman_prop_remember);
    _stringshare_del(&e_connman_prop_state);
    _stringshare_del(&e_connman_prop_strength);
    _stringshare_del(&e_connman_prop_type);
    _stringshare_del(&e_connman_prop_error);
-   _stringshare_del(&e_connman_prop_mode);
    _stringshare_del(&e_connman_prop_security);
    _stringshare_del(&e_connman_prop_passphrase);
    _stringshare_del(&e_connman_prop_passphrase_required);
+   _stringshare_del(&e_connman_prop_login_required);
    _stringshare_del(&e_connman_prop_favorite);
    _stringshare_del(&e_connman_prop_immutable);
    _stringshare_del(&e_connman_prop_auto_connect);
-   _stringshare_del(&e_connman_prop_setup_required);
-   _stringshare_del(&e_connman_prop_apn);
-   _stringshare_del(&e_connman_prop_mcc);
-   _stringshare_del(&e_connman_prop_mnc);
    _stringshare_del(&e_connman_prop_roaming);
    _stringshare_del(&e_connman_prop_technology_default);
    _stringshare_del(&e_connman_prop_technologies_available);
    _stringshare_del(&e_connman_prop_technologies_enabled);
    _stringshare_del(&e_connman_prop_technologies_connected);
+   _stringshare_del(&e_connman_prop_nameservers);
+   _stringshare_del(&e_connman_prop_nameservers_configuration);
+   _stringshare_del(&e_connman_prop_domains);
+   _stringshare_del(&e_connman_prop_domains_configuration);
+   _stringshare_del(&e_connman_prop_proxy);
+   _stringshare_del(&e_connman_prop_proxy_configuration);
+   _stringshare_del(&e_connman_prop_url);
+   _stringshare_del(&e_connman_prop_servers);
+   _stringshare_del(&e_connman_prop_excludes);
 
    if (pending_get_name_owner)
      {