When the default gateway is removed, move the service to state ready
if the respective ipconfig was connected.
Based on a patch by Naveen Singh.
Coming back to the issue, downgrading the state to ready when removing the
gateway does seem the most stable thing to do. This location to do the state
transition was earlier proposed by Naveen Singh. In this variant the ipconfig
state is set to ready only if it is already connected.
It would be better to listen on the default routes added and removed
when setting the state, but this has quite a few implications on testing.
So let's try with this as a much easier working solution.
src/connection.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/connection.c b/src/connection.c
index 6b005e7..5234043 100644
@@ -963,6 +963,11 @@ void __connman_connection_gateway_remove(struct connman_service
+ if (__connman_service_is_connected_state(service, type))