diff options
-rwxr-xr-x | gdhcp/client.c | 64 | ||||
-rwxr-xr-x | packaging/connman.spec | 12 | ||||
-rwxr-xr-x | src/connman.h | 19 | ||||
-rwxr-xr-x | src/dhcp.c | 18 | ||||
-rwxr-xr-x | src/dhcpv6.c | 18 | ||||
-rwxr-xr-x | src/ipconfig.c | 8 | ||||
-rwxr-xr-x | src/manager.c | 2 | ||||
-rwxr-xr-x | src/network.c | 66 | ||||
-rwxr-xr-x | src/rtnl.c | 40 | ||||
-rwxr-xr-x | src/service.c | 35 |
10 files changed, 225 insertions, 57 deletions
diff --git a/gdhcp/client.c b/gdhcp/client.c index 9b2de9db..7e04176e 100755 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -50,9 +50,30 @@ #define DISCOVER_TIMEOUT 5 #define DISCOVER_RETRIES 6 +#if defined TIZEN_EXT +#define REQUEST_TIMEOUT 1 +#else #define REQUEST_TIMEOUT 5 +#endif #define REQUEST_RETRIES 3 +#if defined TIZEN_EXT +#define DISCOVER_TIMEOUT_WIFI 1 +#define DISCOVER_RETRIES_WIFI 10 +static int dhcp_discover_timeout = DISCOVER_TIMEOUT_WIFI; +static int dhcp_discover_max_retry = DISCOVER_RETRIES_WIFI; + +void set_dhcp_discover_timeout(int timeout_value) +{ + dhcp_discover_timeout = timeout_value; +} + +void set_dhcp_discover_retry_count(int retry_count) +{ + dhcp_discover_max_retry = retry_count; +} +#endif + typedef enum _listen_mode { L_NONE, L2, @@ -833,16 +854,19 @@ int g_dhcpv6_client_get_timeouts(GDHCPClient *dhcp_client, return -EINVAL; if (T1) - *T1 = dhcp_client->T1; + *T1 = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->T1; if (T2) - *T2 = dhcp_client->T2; + *T2 = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->T2; if (started) *started = dhcp_client->last_request; if (expire) - *expire = dhcp_client->last_request + dhcp_client->expire; + *expire = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->last_request + dhcp_client->expire; return 0; } @@ -2688,6 +2712,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) uint32_t addr; uint64_t rand; +#if defined TIZEN_EXT + int discover_retry = 0; + int timeout = 0; +#endif + remove_timeouts(dhcp_client); if (dhcp_client->type == G_DHCP_IPV6) { @@ -2774,13 +2803,32 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) return 0; } +#if defined TIZEN_EXT + if (g_ascii_strncasecmp(dhcp_client->interface, "wlan", 4) + == 0) { + discover_retry = DISCOVER_RETRIES_WIFI; + timeout = DISCOVER_TIMEOUT_WIFI; + } else { + discover_retry = DISCOVER_RETRIES; + timeout = DISCOVER_TIMEOUT; + } + + debug(dhcp_client, "[DHCPC] Discover retry/total : [%d]/[%d] timeout [%d]", + dhcp_client->retry_times, discover_retry, timeout); +#endif + + if (dhcp_client->type == G_DHCP_IPV4LL) { dhcp_client->state = INIT_SELECTING; ipv4ll_start(dhcp_client); return 0; } - if (dhcp_client->retry_times == DISCOVER_RETRIES) { +#if defined TIZEN_EXT + if (dhcp_client->retry_times == discover_retry) { +#else + if (dhcp_client->retry_times == DISCOVER_RETRIES) { +#endif if (dhcp_client->no_lease_cb) dhcp_client->no_lease_cb(dhcp_client, dhcp_client->no_lease_data); @@ -2823,7 +2871,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) dhcp_client->timeout = g_timeout_add_seconds_full( G_PRIORITY_HIGH, +#if defined TIZEN_EXT + timeout, +#else REQUEST_TIMEOUT, +#endif reboot_timeout, dhcp_client, NULL); @@ -2832,7 +2884,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) send_discover(dhcp_client, addr); dhcp_client->timeout = g_timeout_add_seconds_full(G_PRIORITY_HIGH, +#if defined TIZEN_EXT + timeout, +#else DISCOVER_TIMEOUT, +#endif discover_timeout, dhcp_client, NULL); diff --git a/packaging/connman.spec b/packaging/connman.spec index 3ad471b3..6f12bbb2 100755 --- a/packaging/connman.spec +++ b/packaging/connman.spec @@ -199,10 +199,6 @@ rm %{buildroot}%{_sysconfdir}/dbus-1/system.d/*.conf mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d/ cp src/connman.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/ -#License -mkdir -p %{buildroot}%{_datadir}/license -cp COPYING %{buildroot}%{_datadir}/license/connman - %if %{with connman_vpnd} cp vpn/vpn-dbus.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf %endif @@ -246,7 +242,7 @@ systemctl daemon-reload %attr(644,root,root) %{_libdir}/systemd/system/connman.socket %attr(644,root,root) %{_libdir}/systemd/system/sockets.target.wants/connman.socket %endif -%{_datadir}/license/connman +%license COPYING %{upgrade_script_path}/%{upgrade_script_filename} %files test @@ -264,6 +260,7 @@ systemctl daemon-reload %{_libdir}/connman/plugins-vpn/openconnect.so %{_libdir}/connman/scripts/openconnect-script %{_datadir}/dbus-1/system-services/net.connman.vpn.service +%license COPYING %endif %if %{with connman_openvpn} @@ -272,6 +269,7 @@ systemctl daemon-reload %{_libdir}/%{name}/plugins-vpn/openvpn.so %{_libdir}/%{name}/scripts/openvpn-script %{_datadir}/dbus-1/system-services/net.connman.vpn.service +%license COPYING %endif %if %{with connman_vpnd} @@ -283,6 +281,7 @@ systemctl daemon-reload %dir %{_libdir}/%{name}/plugins-vpn %config %{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf %{_datadir}/dbus-1/system-services/net.connman.vpn.service +%license COPYING %endif %post extension-tv @@ -290,6 +289,7 @@ mv -f %{_libdir}/systemd/system/connman.service.tv %{_libdir}/systemd/system/con mv -f %{_sysconfdir}/connman/main.conf.tv %{_sysconfdir}/connman/main.conf %files extension-tv %attr(644,root,root) %{_sysconfdir}/connman/main.conf.tv +%license COPYING %if "%{?_lib}" == "lib64" %attr(644,root,root) %{_unitdir}/connman.service.tv %else @@ -299,3 +299,5 @@ mv -f %{_sysconfdir}/connman/main.conf.tv %{_sysconfdir}/connman/main.conf mv -f %{_sysconfdir}/connman/main.conf.ivi %{_sysconfdir}/connman/main.conf %files extension-ivi %attr(644,root,root) %{_sysconfdir}/connman/main.conf.ivi +%license COPYING + diff --git a/src/connman.h b/src/connman.h index 499f38db..7c44d1c1 100755 --- a/src/connman.h +++ b/src/connman.h @@ -455,6 +455,11 @@ enum __connman_dhcpv6_status { CONNMAN_DHCPV6_STATUS_RESTART = 2, }; +#if defined TIZEN_EXT +void set_dhcp_discover_timeout(int timeout_value); +void set_dhcp_discover_retry_count(int retry_count); +#endif + typedef void (* dhcpv6_cb) (struct connman_network *network, enum __connman_dhcpv6_status status, gpointer data); @@ -670,6 +675,15 @@ int __connman_service_load_modifiable(struct connman_service *service); void __connman_service_list_struct(DBusMessageIter *iter); +#if defined TIZEN_EXT +int connman_service_get_ipv6_dns_method(struct connman_service *service); +enum connman_dnsconfig_method { + CONNMAN_DNSCONFIG_METHOD_UNKNOWN = 0, + CONNMAN_DNSCONFIG_METHOD_MANUAL = 1, + CONNMAN_DNSCONFIG_METHOD_DHCP = 2, +}; +#endif + struct connman_service *__connman_service_lookup_from_index(int index); struct connman_service *__connman_service_lookup_from_ident(const char *identifier); struct connman_service *__connman_service_create_from_network(struct connman_network *network); @@ -904,11 +918,6 @@ unsigned int __connman_rtnl_update_interval_remove(unsigned int interval); int __connman_rtnl_request_update(void); int __connman_rtnl_send(const void *buf, size_t len); -#if defined TIZEN_EXT -void rtnl_nameserver_add_all(struct connman_service *service, - enum connman_ipconfig_type type); -#endif - bool __connman_session_policy_autoconnect(enum connman_service_connect_reason reason); int __connman_session_create(DBusMessage *msg); @@ -257,9 +257,12 @@ static void no_lease_cb(GDHCPClient *dhcp_client, gpointer user_data) DBG("No lease available ipv4ll %d client %p", ipv4ll_running, dhcp->ipv4ll_client); + if (dhcp->timeout > 0) + g_source_remove(dhcp->timeout); + dhcp->timeout = g_timeout_add_seconds(RATE_LIMIT_INTERVAL, - dhcp_retry_cb, - dhcp); + dhcp_retry_cb, + dhcp); if (ipv4ll_running) return; @@ -634,7 +637,9 @@ int __connman_dhcp_start(struct connman_ipconfig *ipconfig, struct connman_network *network, dhcp_cb callback, gpointer user_data) { +#if !defined TIZEN_EXT const char *last_addr = NULL; +#endif struct connman_dhcp *dhcp; int err; @@ -648,7 +653,9 @@ int __connman_dhcp_start(struct connman_ipconfig *ipconfig, return -EINVAL; } +#if !defined TIZEN_EXT last_addr = __connman_ipconfig_get_dhcp_address(ipconfig); +#endif dhcp = g_hash_table_lookup(ipconfig_table, ipconfig); if (!dhcp) { @@ -680,7 +687,14 @@ int __connman_dhcp_start(struct connman_ipconfig *ipconfig, dhcp->callback = callback; dhcp->user_data = user_data; +#if defined TIZEN_EXT + DBG("Start DHCP with DHCPDISCOVER request"); + + return g_dhcp_client_start(dhcp->dhcp_client, NULL); +#else return g_dhcp_client_start(dhcp->dhcp_client, last_addr); +#endif + } void __connman_dhcp_stop(struct connman_ipconfig *ipconfig) diff --git a/src/dhcpv6.c b/src/dhcpv6.c index 3d66ef3e..bf4da3e7 100755 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -417,7 +417,9 @@ static int dhcpv6_info_request(struct connman_dhcpv6 *dhcp) return -EINVAL; } +#if !defined TIZEN_EXT if (getenv("CONNMAN_DHCPV6_DEBUG")) +#endif g_dhcp_client_set_debug(dhcp_client, dhcpv6_debug, "DHCPv6"); service = connman_service_lookup_from_network(dhcp->network); @@ -1232,12 +1234,17 @@ static int check_restart(struct connman_dhcpv6 *dhcp) g_dhcpv6_client_get_timeouts(dhcp->dhcp_client, NULL, NULL, NULL, &expired); + + /* infinite lifetime for an DHCPv6 address */ + if (expired == 0xffffffff) + return -EISCONN; + current = time(NULL); if (current >= expired) { DBG("expired by %d secs", (int)(current - expired)); - g_timeout_add(0, dhcpv6_restart, dhcp); + g_idle_add(dhcpv6_restart, dhcp); return -ETIMEDOUT; } @@ -1496,8 +1503,7 @@ int __connman_dhcpv6_start_renew(struct connman_network *network, /* RFC 3315, chapter 18.1.3, start rebind */ DBG("start rebind immediately"); - dhcp->timeout = g_timeout_add_seconds(0, start_rebind, - dhcp); + dhcp->timeout = g_idle_add(start_rebind, dhcp); } else if ((unsigned)current < (unsigned)started + T1) { delta = started + T1 - current; @@ -1769,7 +1775,9 @@ static int dhcpv6_solicitation(struct connman_dhcpv6 *dhcp) return -EINVAL; } +#if !defined TIZEN_EXT if (getenv("CONNMAN_DHCPV6_DEBUG")) +#endif g_dhcp_client_set_debug(dhcp_client, dhcpv6_debug, "DHCPv6"); service = connman_service_lookup_from_network(dhcp->network); @@ -2086,7 +2094,9 @@ static GDHCPClient *create_pd_client(struct connman_dhcpv6 *dhcp, int *err) return NULL; } +#if !defined TIZEN_EXT if (getenv("CONNMAN_DHCPV6_DEBUG")) +#endif g_dhcp_client_set_debug(dhcp_client, dhcpv6_debug, "DHCPv6:PD"); service = connman_service_lookup_from_network(dhcp->network); @@ -2199,7 +2209,7 @@ static int check_pd_restart(struct connman_dhcpv6 *dhcp) if (current > expired) { DBG("expired by %d secs", (int)(current - expired)); - g_timeout_add(0, dhcpv6_restart, dhcp); + g_idle_add(dhcpv6_restart, dhcp); return -ETIMEDOUT; } diff --git a/src/ipconfig.c b/src/ipconfig.c index 27d98b29..46239fec 100755 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -1839,8 +1839,6 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, struct connman_ipaddress *append_addr = NULL; const char *str; - DBG(""); - if (ipconfig->type != CONNMAN_IPCONFIG_TYPE_IPV4) return; @@ -1901,8 +1899,6 @@ void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig, struct connman_ipaddress *append_addr = NULL; const char *str, *privacy; - DBG(""); - if (ipconfig->type != CONNMAN_IPCONFIG_TYPE_IPV6) return; @@ -1964,8 +1960,6 @@ void __connman_ipconfig_append_ipv6config(struct connman_ipconfig *ipconfig, { const char *str, *privacy; - DBG(""); - str = __connman_ipconfig_method2string(ipconfig->method); if (!str) return; @@ -2008,8 +2002,6 @@ void __connman_ipconfig_append_ipv4config(struct connman_ipconfig *ipconfig, { const char *str; - DBG(""); - str = __connman_ipconfig_method2string(ipconfig->method); if (!str) return; diff --git a/src/manager.c b/src/manager.c index bd52f39a..32705e4f 100755 --- a/src/manager.c +++ b/src/manager.c @@ -140,7 +140,9 @@ static DBusMessage *get_technologies(DBusConnection *conn, { DBusMessage *reply; +#if !defined TIZEN_EXT DBG(""); +#endif reply = dbus_message_new_method_return(msg); if (!reply) diff --git a/src/network.c b/src/network.c index 2585841c..c57d70e6 100755 --- a/src/network.c +++ b/src/network.c @@ -111,6 +111,8 @@ struct connman_network { }; +static void autoconf_ipv6_set(struct connman_network *network); + static const char *type2string(enum connman_network_type type) { switch (type) { @@ -223,12 +225,27 @@ static void dhcp_callback(struct connman_ipconfig *ipconfig, struct connman_network *network, bool success, gpointer data) { +#if defined TIZEN_EXT + struct connman_service *service; + struct connman_ipconfig *ipconfig_ipv6; +#endif + network->connecting = false; if (success) dhcp_success(network); else dhcp_failure(network); + +#if defined TIZEN_EXT + service = connman_service_lookup_from_network(network); + ipconfig_ipv6 = __connman_service_get_ip6config(service); + if (__connman_ipconfig_get_method(ipconfig_ipv6) == CONNMAN_IPCONFIG_METHOD_AUTO) { + DBG("IPv6 autoconf start"); + set_configuration(network, CONNMAN_IPCONFIG_TYPE_IPV6); + autoconf_ipv6_set(network); + } +#endif } static int set_connected_manual(struct connman_network *network) @@ -387,7 +404,6 @@ err: return err; } -static void autoconf_ipv6_set(struct connman_network *network); static void dhcpv6_callback(struct connman_network *network, enum __connman_dhcpv6_status status, gpointer data); @@ -502,11 +518,21 @@ static void check_dhcpv6(struct nd_router_advert *reply, * We do stateful/stateless DHCPv6 if router advertisement says so. */ if (reply->nd_ra_flags_reserved & ND_RA_FLAG_MANAGED) { +#if defined TIZEN_EXT + DBG("IPv6 ND_RA_FLAG_MANAGED"); +#endif __connman_dhcpv6_start(network, prefixes, dhcpv6_callback); } else { if (reply->nd_ra_flags_reserved & ND_RA_FLAG_OTHER) +#if defined TIZEN_EXT + { + DBG("IPv6 ND_RA_FLAG_OTHER"); +#endif __connman_dhcpv6_start_info(network, dhcpv6_info_callback); +#if defined TIZEN_EXT + } +#endif g_slist_free_full(prefixes, g_free); network->connecting = false; @@ -1307,8 +1333,35 @@ static gboolean __connman_network_clear_associating_delayed(gpointer user_data) if (network->associating == FALSE && state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION && - state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) - connman_network_clear_associating(network); + state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) { + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV4); + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV6); + } else { + if (network->associating == FALSE) { + struct connman_ipconfig *ipconfig_ipv4, *ipconfig_ipv6; + enum connman_ipconfig_method ipv4_method, ipv6_method; + + ipconfig_ipv4 = __connman_service_get_ip4config(service); + ipv4_method = __connman_ipconfig_get_method(ipconfig_ipv4); + ipconfig_ipv6 = __connman_service_get_ip4config(service); + ipv6_method = __connman_ipconfig_get_method(ipconfig_ipv6); + + if((ipv4_method == CONNMAN_IPCONFIG_METHOD_UNKNOWN || ipv4_method == CONNMAN_IPCONFIG_METHOD_OFF) && + (state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION)) + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV6); + if((ipv6_method == CONNMAN_IPCONFIG_METHOD_UNKNOWN || ipv6_method == CONNMAN_IPCONFIG_METHOD_OFF) && + (state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION)) + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV4); + } + } return FALSE; } @@ -1773,7 +1826,9 @@ int __connman_network_enable_ipconfig(struct connman_network *network, return -ENOSYS; case CONNMAN_IPCONFIG_TYPE_IPV6: +#if !defined TIZEN_EXT set_configuration(network, type); +#endif method = __connman_ipconfig_get_method(ipconfig); @@ -1796,11 +1851,16 @@ int __connman_network_enable_ipconfig(struct connman_network *network, CONNMAN_SERVICE_STATE_CONFIGURATION, CONNMAN_IPCONFIG_TYPE_IPV6); #endif +#if !defined TIZEN_EXT autoconf_ipv6_set(network); +#endif break; case CONNMAN_IPCONFIG_METHOD_FIXED: case CONNMAN_IPCONFIG_METHOD_MANUAL: +#if defined TIZEN_EXT + set_configuration(network, type); +#endif r = manual_ipv6_set(network, ipconfig); break; @@ -1314,6 +1314,34 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) if (index < 0) return; +#if defined TIZEN_EXT + struct connman_service *service; + enum connman_dnsconfig_method ipv6_dns_method; + char *ifname; + + service = __connman_service_lookup_from_index(index); + if (!service || !(__connman_service_index_is_default(index))) { + DBG("Invalid service, index: %d\n", index); + return; + } + + DBG("service: %p index: %d\n", service, index); + + ifname = connman_inet_ifname(index); + if (ifname == NULL) { + DBG("Interface is NULL, return"); + return; + } + + ipv6_dns_method = connman_service_get_ipv6_dns_method(service); + if (ipv6_dns_method != CONNMAN_DNSCONFIG_METHOD_DHCP) { + DBG("IPv6 DNS method is not Auto ignore RA!!! [DNS method: %d]", ipv6_dns_method); + g_free(ifname); + return; + } + g_free(ifname); +#endif + for (opt = (void *)&msg[1]; msglen > 0; msglen -= opt->nd_opt_len * 8, @@ -1324,12 +1352,7 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) if (opt->nd_opt_type == 25) { /* ND_OPT_RDNSS */ char buf[40]; -#if defined TIZEN_EXT - struct connman_service *service; - service = __connman_service_lookup_from_index(index); - DBG("service: %p\n",service); -#endif servers = rtnl_nd_opt_rdnss(opt, &lifetime, &nr_servers); for (i = 0; i < nr_servers; i++) { @@ -1338,6 +1361,9 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) continue; #if defined TIZEN_EXT + __connman_service_nameserver_remove(service, + buf, false, + CONNMAN_IPCONFIG_TYPE_IPV6); __connman_service_nameserver_append(service, buf, false, CONNMAN_IPCONFIG_TYPE_IPV6); @@ -1345,10 +1371,6 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) connman_resolver_append_lifetime(index, NULL, buf, lifetime); } -#if defined TIZEN_EXT - rtnl_nameserver_add_all(service, CONNMAN_IPCONFIG_TYPE_IPV6); -#endif - } else if (opt->nd_opt_type == 31) { /* ND_OPT_DNSSL */ g_free(domains); diff --git a/src/service.c b/src/service.c index ed3235c1..772c89f7 100755 --- a/src/service.c +++ b/src/service.c @@ -77,14 +77,6 @@ struct connman_service_user { uid_t current_user; }; -#ifdef TIZEN_EXT -enum connman_dnsconfig_method { - CONNMAN_DNSCONFIG_METHOD_UNKNOWN = 0, - CONNMAN_DNSCONFIG_METHOD_MANUAL = 1, - CONNMAN_DNSCONFIG_METHOD_DHCP = 2, -}; -#endif - struct connman_service { int refcount; char *identifier; @@ -1643,15 +1635,6 @@ static int nameserver_remove_all(struct connman_service *service) return 0; } -#if defined TIZEN_EXT -void rtnl_nameserver_add_all(struct connman_service *service, - enum connman_ipconfig_type type) -{ - DBG(""); - nameserver_add_all(service, type); -} -#endif - static int searchdomain_add_all(struct connman_service *service) { int index, i = 0; @@ -3657,6 +3640,18 @@ const char *connman_service_get_proxy_autoconfig(struct connman_service *service return NULL; } +#if defined TIZEN_EXT +int connman_service_get_ipv6_dns_method(struct connman_service *service) +{ + if (!service) { + DBG("Service is NULL"); + return -1; + } + + return service->dns_config_method_ipv6; +} +#endif + void __connman_service_set_timeservers(struct connman_service *service, char **timeservers) { @@ -5628,17 +5623,23 @@ static void service_append_added_foreach(gpointer data, gpointer user_data) DBusMessageIter *iter = user_data; if (!service || !service->path) { +#if !defined TIZEN_EXT DBG("service %p or path is NULL", service); +#endif return; } if (g_hash_table_lookup(services_notify->add, service->path)) { +#if !defined TIZEN_EXT DBG("new %s", service->path); +#endif append_struct(service, iter); g_hash_table_remove(services_notify->add, service->path); } else { +#if !defined TIZEN_EXT DBG("changed %s", service->path); +#endif append_struct_service(iter, NULL, service); } |