service: Check service type before fetching interface index
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 29 May 2013 06:52:49 +0000 (09:52 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 29 May 2013 09:51:25 +0000 (12:51 +0300)
For VPNs, the index is available from provider, for other services from
network.

Fixes BMC#26009

src/service.c

index 9e79b03..ff6fc3c 100644 (file)
@@ -3115,7 +3115,10 @@ static DBusMessage *set_property(DBusConnection *conn,
                if (str == NULL)
                        return __connman_error_invalid_arguments(msg);
 
-               index = connman_network_get_index(service->network);
+               if (service->type == CONNMAN_SERVICE_TYPE_VPN)
+                       index = connman_provider_get_index(service->provider);
+               else
+                       index = connman_network_get_index(service->network);
                gw = __connman_ipconfig_get_gateway_from_index(index,
                        CONNMAN_IPCONFIG_TYPE_ALL);