From 509ec7575e2b784e6ad5088048b5dc88689b80c8 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 22 Apr 2009 16:33:12 +0100 Subject: [PATCH] Fix handling of networks without a group name --- src/service.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) 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) -- 1.7.9.5