e_connman.c   e_connman.c 
#include "e_connman_private.h" #include "e_connman_private.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
static E_DBus_Signal_Handler *cb_name_owner_changed = NULL; static E_DBus_Signal_Handler *cb_name_owner_changed = NULL;
static DBusPendingCall *pending_get_name_owner = NULL; static DBusPendingCall *pending_get_name_owner = NULL;
static DBusPendingCall *pending_get_name_owner_old = NULL;
static unsigned int init_count = 0; static unsigned int init_count = 0;
static char *unique_name = NULL; static char *unique_name = NULL;
static const char bus_name[] = "net.connman"; static const char bus_name[] = "net.connman";
static const char bus_name_old[] = "org.moblin.connman";
E_DBus_Connection *e_connman_conn = NULL; E_DBus_Connection *e_connman_conn = NULL;
EAPI int E_CONNMAN_EVENT_MANAGER_IN = 0; EAPI int E_CONNMAN_EVENT_MANAGER_IN = 0;
EAPI int E_CONNMAN_EVENT_MANAGER_OUT = 0; EAPI int E_CONNMAN_EVENT_MANAGER_OUT = 0;
EAPI int E_CONNMAN_EVENT_ELEMENT_ADD = 0; EAPI int E_CONNMAN_EVENT_ELEMENT_ADD = 0;
EAPI int E_CONNMAN_EVENT_ELEMENT_DEL = 0; EAPI int E_CONNMAN_EVENT_ELEMENT_DEL = 0;
EAPI int E_CONNMAN_EVENT_ELEMENT_UPDATED = 0; EAPI int E_CONNMAN_EVENT_ELEMENT_UPDATED = 0;
const char *e_connman_iface_manager = NULL; const char *e_connman_iface_manager = NULL;
const char *e_connman_iface_profile = NULL; const char *e_connman_iface_profile = NULL;
const char *e_connman_iface_service = NULL; const char *e_connman_iface_service = NULL;
const char *e_connman_iface_connection = NULL; const char *e_connman_iface_connection = NULL;
const char *e_connman_iface_technology = 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 = NULL;
const char *e_connman_prop_ipv4_configuration = NULL; const char *e_connman_prop_ipv4_configuration = NULL;
const char *e_connman_prop_ethernet = 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_method = NULL;
const char *e_connman_prop_address = NULL; const char *e_connman_prop_address = NULL;
const char *e_connman_prop_gateway = NULL; const char *e_connman_prop_gateway = NULL;
const char *e_connman_prop_netmask = NULL; const char *e_connman_prop_netmask = NULL;
const char *e_connman_prop_mtu = NULL; const char *e_connman_prop_mtu = NULL;
const char *e_connman_prop_name = NULL; const char *e_connman_prop_name = NULL;
const char *e_connman_prop_offline_mode = 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_profiles = NULL;
const char *e_connman_prop_profile_active = NULL; const char *e_connman_prop_profile_active = NULL;
const char *e_connman_prop_services = NULL; const char *e_connman_prop_services = NULL;
const char *e_connman_prop_technologies = 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_state = NULL;
const char *e_connman_prop_strength = NULL; const char *e_connman_prop_strength = NULL;
const char *e_connman_prop_type = NULL; const char *e_connman_prop_type = NULL;
const char *e_connman_prop_error = 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_security = NULL;
const char *e_connman_prop_passphrase = NULL; const char *e_connman_prop_passphrase = NULL;
const char *e_connman_prop_passphrase_required = 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_favorite = NULL;
const char *e_connman_prop_immutable = NULL; const char *e_connman_prop_immutable = NULL;
const char *e_connman_prop_auto_connect = 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_roaming = NULL;
const char *e_connman_prop_technology_default = NULL; const char *e_connman_prop_technology_default = NULL;
const char *e_connman_prop_technologies_available = NULL; const char *e_connman_prop_technologies_available = NULL;
const char *e_connman_prop_technologies_enabled = NULL; const char *e_connman_prop_technologies_enabled = NULL;
const char *e_connman_prop_technologies_connected = 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; int _e_dbus_connman_log_dom = -1;
const char * const char *
e_connman_system_bus_name_get(void) e_connman_system_bus_name_get(void)
{ {
return unique_name ? unique_name : bus_name; return unique_name ? unique_name : bus_name;
} }
/*********************************************************************** /***********************************************************************
skipping to change at line 207 skipping to change at line 207
if (!_dbus_iter_type_check(t, DBUS_TYPE_STRING)) if (!_dbus_iter_type_check(t, DBUS_TYPE_STRING))
return; return;
dbus_message_iter_get_basic(&itr, &uid); dbus_message_iter_get_basic(&itr, &uid);
if (!uid) if (!uid)
{ {
ERR("no name owner!"); ERR("no name owner!");
return; 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.Connec
tion");
if (!e_connman_iface_technology)
e_connman_iface_technology = eina_stringshare_add("net.connman.Techno
logy");
_e_connman_system_name_owner_enter(uid);
return;
}
static void
_e_connman_get_name_owner_old(void *data __UNUSED__, DBusMessage *msg, DBus
Error *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.Ma
nager");
if (!e_connman_iface_profile)
e_connman_iface_profile = eina_stringshare_add("org.moblin.connman.Pr
ofile");
if (!e_connman_iface_service)
e_connman_iface_service = eina_stringshare_add("org.moblin.connman.Se
rvice");
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); _e_connman_system_name_owner_enter(uid);
return; return;
} }
/** /**
* Initialize E Connection Manager (E_Connman) system. * Initialize E Connection Manager (E_Connman) system.
* *
* This will connect and watch net.connman.Manager and Element * This will connect and watch net.connman.Manager and Element
* events and translate to Ecore main loop events, also provide a * events and translate to Ecore main loop events, also provide a
* proxy for method invocation on server. * proxy for method invocation on server.
skipping to change at line 323 skipping to change at line 266
if (E_CONNMAN_EVENT_ELEMENT_ADD == 0) if (E_CONNMAN_EVENT_ELEMENT_ADD == 0)
E_CONNMAN_EVENT_ELEMENT_ADD = ecore_event_type_new(); E_CONNMAN_EVENT_ELEMENT_ADD = ecore_event_type_new();
if (E_CONNMAN_EVENT_ELEMENT_DEL == 0) if (E_CONNMAN_EVENT_ELEMENT_DEL == 0)
E_CONNMAN_EVENT_ELEMENT_DEL = ecore_event_type_new(); E_CONNMAN_EVENT_ELEMENT_DEL = ecore_event_type_new();
if (E_CONNMAN_EVENT_ELEMENT_UPDATED == 0) if (E_CONNMAN_EVENT_ELEMENT_UPDATED == 0)
E_CONNMAN_EVENT_ELEMENT_UPDATED = ecore_event_type_new(); E_CONNMAN_EVENT_ELEMENT_UPDATED = ecore_event_type_new();
if (!e_connman_prop_available) #define ADD_STRINGSHARE(name, s) \
e_connman_prop_available = eina_stringshare_add("Available"); if (!name) \
name = eina_stringshare_add(s)
if (!e_connman_prop_connections)
e_connman_prop_connections = eina_stringshare_add("Connections"); ADD_STRINGSHARE(e_connman_iface_manager, "net.connman.Manager");
ADD_STRINGSHARE(e_connman_iface_profile, "net.connman.Profile");
if (!e_connman_prop_default) ADD_STRINGSHARE(e_connman_iface_service, "net.connman.Service");
e_connman_prop_default = eina_stringshare_add("Default"); ADD_STRINGSHARE(e_connman_iface_connection, "net.connman.Connection");
ADD_STRINGSHARE(e_connman_iface_technology, "net.connman.Technology");
if (!e_connman_prop_ipv4) ADD_STRINGSHARE(e_connman_prop_ipv4, "IPv4");
e_connman_prop_ipv4 = eina_stringshare_add("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, "EnabledTechnologie
s");
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");
if (!e_connman_prop_ipv4_configuration) #undef ADD_STRINGSHARE
e_connman_prop_ipv4_configuration = eina_stringshare_add("IPv4.Config
uration");
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("Passphrase
Required");
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("DefaultTech
nology");
if (!e_connman_prop_technologies_available)
e_connman_prop_technologies_available = eina_stringshare_add("Availab
leTechnologies");
if (!e_connman_prop_technologies_enabled)
e_connman_prop_technologies_enabled = eina_stringshare_add("EnabledTe
chnologies");
if (!e_connman_prop_technologies_connected)
e_connman_prop_technologies_connected = eina_stringshare_add("Connect
edTechnologies");
e_connman_conn = edbus_conn; e_connman_conn = edbus_conn;
cb_name_owner_changed = e_dbus_signal_handler_add cb_name_owner_changed = e_dbus_signal_handler_add
(e_connman_conn, E_DBUS_FDO_BUS, E_DBUS_FDO_PATH, E_DBUS_FDO_INTER FACE, "NameOwnerChanged", (e_connman_conn, E_DBUS_FDO_BUS, E_DBUS_FDO_PATH, E_DBUS_FDO_INTER FACE, "NameOwnerChanged",
_e_connman_system_name_owner_changed, NULL); _e_connman_system_name_owner_changed, NULL);
if (pending_get_name_owner) if (pending_get_name_owner)
dbus_pending_call_cancel(pending_get_name_owner); dbus_pending_call_cancel(pending_get_name_owner);
pending_get_name_owner = e_dbus_get_name_owner pending_get_name_owner = e_dbus_get_name_owner
(e_connman_conn, bus_name, _e_connman_get_name_owner, NULL); (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(); e_connman_elements_init();
return init_count; return init_count;
} }
static inline void static inline void
_stringshare_del(const char **str) _stringshare_del(const char **str)
{ {
if (!*str) if (!*str)
return; return;
skipping to change at line 500 skipping to change at line 375
init_count--; init_count--;
if (init_count > 0) if (init_count > 0)
return init_count; return init_count;
_stringshare_del(&e_connman_iface_manager); _stringshare_del(&e_connman_iface_manager);
_stringshare_del(&e_connman_iface_profile); _stringshare_del(&e_connman_iface_profile);
_stringshare_del(&e_connman_iface_service); _stringshare_del(&e_connman_iface_service);
_stringshare_del(&e_connman_iface_connection); _stringshare_del(&e_connman_iface_connection);
_stringshare_del(&e_connman_iface_technology); _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);
_stringshare_del(&e_connman_prop_ipv4_configuration); _stringshare_del(&e_connman_prop_ipv4_configuration);
_stringshare_del(&e_connman_prop_ethernet); _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_method);
_stringshare_del(&e_connman_prop_address); _stringshare_del(&e_connman_prop_address);
_stringshare_del(&e_connman_prop_gateway); _stringshare_del(&e_connman_prop_gateway);
_stringshare_del(&e_connman_prop_netmask); _stringshare_del(&e_connman_prop_netmask);
_stringshare_del(&e_connman_prop_mtu); _stringshare_del(&e_connman_prop_mtu);
_stringshare_del(&e_connman_prop_name); _stringshare_del(&e_connman_prop_name);
_stringshare_del(&e_connman_prop_offline_mode); _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_profiles);
_stringshare_del(&e_connman_prop_profile_active); _stringshare_del(&e_connman_prop_profile_active);
_stringshare_del(&e_connman_prop_services); _stringshare_del(&e_connman_prop_services);
_stringshare_del(&e_connman_prop_technologies); _stringshare_del(&e_connman_prop_technologies);
_stringshare_del(&e_connman_prop_remember);
_stringshare_del(&e_connman_prop_state); _stringshare_del(&e_connman_prop_state);
_stringshare_del(&e_connman_prop_strength); _stringshare_del(&e_connman_prop_strength);
_stringshare_del(&e_connman_prop_type); _stringshare_del(&e_connman_prop_type);
_stringshare_del(&e_connman_prop_error); _stringshare_del(&e_connman_prop_error);
_stringshare_del(&e_connman_prop_mode);
_stringshare_del(&e_connman_prop_security); _stringshare_del(&e_connman_prop_security);
_stringshare_del(&e_connman_prop_passphrase); _stringshare_del(&e_connman_prop_passphrase);
_stringshare_del(&e_connman_prop_passphrase_required); _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_favorite);
_stringshare_del(&e_connman_prop_immutable); _stringshare_del(&e_connman_prop_immutable);
_stringshare_del(&e_connman_prop_auto_connect); _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_roaming);
_stringshare_del(&e_connman_prop_technology_default); _stringshare_del(&e_connman_prop_technology_default);
_stringshare_del(&e_connman_prop_technologies_available); _stringshare_del(&e_connman_prop_technologies_available);
_stringshare_del(&e_connman_prop_technologies_enabled); _stringshare_del(&e_connman_prop_technologies_enabled);
_stringshare_del(&e_connman_prop_technologies_connected); _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) if (pending_get_name_owner)
{ {
dbus_pending_call_cancel(pending_get_name_owner); dbus_pending_call_cancel(pending_get_name_owner);
pending_get_name_owner = NULL; pending_get_name_owner = NULL;
} }
if (cb_name_owner_changed) if (cb_name_owner_changed)
{ {
e_dbus_signal_handler_del(e_connman_conn, cb_name_owner_changed); e_dbus_signal_handler_del(e_connman_conn, cb_name_owner_changed);
 End of changes. 22 change blocks. 
225 lines changed or deleted 86 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/