From: Marcel Holtmann Date: Wed, 22 Apr 2009 15:33:12 +0000 (+0100) Subject: Fix handling of networks without a group name X-Git-Tag: 0.16~40 X-Git-Url: http://git.maemo.org/git/?p=connman;a=commitdiff_plain;h=509ec7575e2b784e6ad5088048b5dc88689b80c8;ds=sidebyside Fix handling of networks without a group name --- diff --git a/src/service.c b/src/service.c index 7a8d14f..b9f657e 100644 --- a/src/service.c +++ b/src/service.c @@ -592,11 +592,15 @@ static int service_register(struct connman_service *service) { const char *path = __connman_profile_active(); + DBG("service %p", service); + if (service->path != NULL) return -EALREADY; service->path = g_strdup_printf("%s/%s", path, service->identifier); + DBG("path %s", service->path); + g_dbus_register_interface(connection, service->path, CONNMAN_SERVICE_INTERFACE, service_methods, service_signals, @@ -696,10 +700,15 @@ done: struct connman_service *__connman_service_lookup_from_network(struct connman_network *network) { struct connman_service *service; + const char *group; char *name; - name = g_strdup_printf("%s_%s", __connman_network_get_type(network), - __connman_network_get_group(network)); + group = __connman_network_get_group(network); + if (group == NULL) + return NULL; + + name = g_strdup_printf("%s_%s", + __connman_network_get_type(network), group); service = connman_service_lookup(name); @@ -737,10 +746,15 @@ static enum connman_service_type convert_network_type(struct connman_network *ne struct connman_service *__connman_service_create_from_network(struct connman_network *network) { struct connman_service *service; + const char *group; char *name; - name = g_strdup_printf("%s_%s", __connman_network_get_type(network), - __connman_network_get_group(network)); + group = __connman_network_get_group(network); + if (group == NULL) + return NULL; + + name = g_strdup_printf("%s_%s", + __connman_network_get_type(network), group); service = connman_service_get(name); if (service == NULL)