From: Daniel Wagner <[email protected]>
---
src/service.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/src/service.c b/src/service.c
index f449357..58b182b 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3238,6 +3238,25 @@ static void report_error_cb(struct connman_service
*service,
}
}
+static void enable_gateway(struct connman_service *service)
+{
+ const char *ipv4_gw, *ipv6_gw;
+ const char *vpn_ip = NULL;
+
+ ipv4_gw = __connman_ipconfig_get_gateway(service->ipconfig_ipv4);
+ ipv6_gw = __connman_ipconfig_get_gateway(service->ipconfig_ipv6);
+
+ if (service->type == CONNMAN_SERVICE_TYPE_VPN) {
+ if (service->ipconfig_ipv4)
+ vpn_ip =
__connman_ipconfig_get_peer(service->ipconfig_ipv4);
+ else if (service->ipconfig_ipv6)
+ vpn_ip =
__connman_ipconfig_get_peer(service->ipconfig_ipv6);
+ }
+
+ __connman_connection_gateway_add(service, ipv4_gw, ipv6_gw,
+ vpn_ip, service->domainname);
+}
+
int __connman_service_indicate_state(struct connman_service *service,
enum connman_service_state state)
{
@@ -3356,6 +3375,8 @@ int __connman_service_indicate_state(struct
connman_service *service,
"WiFi.UseWPS", FALSE);
}
+ enable_gateway(service);
+
default_changed();
} else if (state == CONNMAN_SERVICE_STATE_DISCONNECT) {
__connman_location_finish(service);
--
1.7.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman