The correct way to delete the default route is to use
__connman_inet_del_default_from_table. connman_inet_clear_ipv6_gateway_address()
will only remove the additional route to reach the gateway on given
interface but not the default route. IPv4 and IPv6 seems to behave
slightly different, as connman_inet_clear_ipv4_gateway_address removes
the default route as well.
---
src/connection.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/connection.c b/src/connection.c
index d1e07febf931..2642a02b22a9 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -579,12 +579,12 @@ static void unset_default_gateway(struct gateway_data *data,
}
if (do_ipv4 && data->ipv4_gateway)
- connman_inet_clear_gateway_address(index,
- data->ipv4_gateway->gateway);
+ __connman_inet_del_default_from_table(RT_TABLE_MAIN,
+ index, data->ipv4_gateway->gateway);
if (do_ipv6 && data->ipv6_gateway)
- connman_inet_clear_gateway_address(index,
- data->ipv6_gateway->gateway);
+ __connman_inet_del_default_from_table(RT_TABLE_MAIN,
+ index, data->ipv6_gateway->gateway);
}
static struct gateway_data *find_default_gateway(void)
--
2.29.2
Show replies by date