connection: Set VPN default route to the VPN interface
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Wed, 8 Aug 2012 10:22:46 +0000 (13:22 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 9 Aug 2012 09:16:40 +0000 (12:16 +0300)
Do not bother setting individual routes for default gateway so
for VPN we set the whole interface as a default gateway route.

src/connection.c

index 2e5cea6..7212af3 100644 (file)
@@ -410,10 +410,7 @@ static void set_default_gateway(struct gateway_data *data,
 
        if (do_ipv4 == TRUE && data->ipv4_gateway != NULL &&
                                        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);
+               connman_inet_set_gateway_interface(data->index);
                data->ipv4_gateway->active = TRUE;
 
                DBG("set %p index %d vpn %s index %d phy %s",
@@ -428,10 +425,7 @@ static void set_default_gateway(struct gateway_data *data,
 
        if (do_ipv6 == TRUE && data->ipv6_gateway != NULL &&
                                        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);
+               connman_inet_set_ipv6_gateway_interface(data->index);
                data->ipv6_gateway->active = TRUE;
 
                DBG("set %p index %d vpn %s index %d phy %s",
@@ -495,10 +489,7 @@ static void unset_default_gateway(struct gateway_data *data,
 
        if (do_ipv4 == TRUE && data->ipv4_gateway != NULL &&
                                        data->ipv4_gateway->vpn == TRUE) {
-               connman_inet_del_host_route(data->index,
-                                               data->ipv4_gateway->vpn_ip);
-               connman_inet_clear_gateway_address(data->index,
-                                               data->ipv4_gateway->vpn_ip);
+               connman_inet_clear_gateway_interface(data->index);
                data->ipv4_gateway->active = FALSE;
 
                DBG("unset %p index %d vpn %s index %d phy %s",
@@ -511,10 +502,7 @@ static void unset_default_gateway(struct gateway_data *data,
 
        if (do_ipv6 == TRUE && data->ipv6_gateway != NULL &&
                                        data->ipv6_gateway->vpn == TRUE) {
-               connman_inet_del_ipv6_host_route(data->index,
-                                               data->ipv6_gateway->vpn_ip);
-               connman_inet_clear_ipv6_gateway_address(data->index,
-                                               data->ipv6_gateway->vpn_ip);
+               connman_inet_clear_ipv6_gateway_interface(data->index);
                data->ipv6_gateway->active = FALSE;
 
                DBG("unset %p index %d vpn %s index %d phy %s",