connection: Add host route for VPN when setting default gateway
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Tue, 3 Apr 2012 11:04:46 +0000 (14:04 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 5 Apr 2012 12:37:51 +0000 (15:37 +0300)
This is needed so that VPN gets default route when moving
services. That can happen if VPN did not had default route
before.

src/connection.c

index a2acc51..3747c05 100644 (file)
@@ -360,6 +360,8 @@ static void set_default_gateway(struct gateway_data *data,
                                        data->ipv4_gateway->vpn == TRUE) {
                connman_inet_set_gateway_address(data->index,
                                                data->ipv4_gateway->vpn_ip);
+               connman_inet_add_host_route(data->index,
+                                       data->ipv4_gateway->vpn_ip, NULL);
                data->ipv4_gateway->active = TRUE;
 
                DBG("set %p index %d vpn %s index %d phy %s",
@@ -376,6 +378,8 @@ static void set_default_gateway(struct gateway_data *data,
                                        data->ipv6_gateway->vpn == TRUE) {
                connman_inet_set_ipv6_gateway_address(data->index,
                                                data->ipv6_gateway->vpn_ip);
+               connman_inet_add_ipv6_host_route(data->index,
+                                       data->ipv6_gateway->vpn_ip, NULL);
                data->ipv6_gateway->active = TRUE;
 
                DBG("set %p index %d vpn %s index %d phy %s",