VPN services dont have network, so we need to make sure not
to use service->network while in vpn services.
---
src/service.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/service.c b/src/service.c
index 1cb292f..4ad46ec 100644
--- a/src/service.c
+++ b/src/service.c
@@ -407,7 +407,10 @@ void __connman_service_nameserver_add_routes(struct
connman_service *service,
if (service == NULL)
return;
- index = connman_network_get_index(service->network);
+ if (service->type == CONNMAN_SERVICE_TYPE_VPN)
+ index = connman_ipconfig_get_index(service->ipconfig);
+ else
+ index = connman_network_get_index(service->network);
if (service->nameservers != NULL) {
int i;
@@ -442,7 +445,10 @@ void __connman_service_nameserver_del_routes(struct
connman_service *service)
if (service == NULL)
return;
- index = connman_network_get_index(service->network);
+ if (service->type == CONNMAN_SERVICE_TYPE_VPN)
+ index = connman_ipconfig_get_index(service->ipconfig);
+ else
+ index = connman_network_get_index(service->network);
if (service->nameservers != NULL) {
int i;
@@ -1893,7 +1899,11 @@ 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_ipconfig_get_index(service->ipconfig);
+ else
+ index = connman_network_get_index(service->network);
+
gw = __connman_ipconfig_get_gateway(index);
if (gw && strlen(gw))
--
1.7.2.3
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman