This fixes inconcistant behavior in signaling IPv4 changes when connected or disconnected happen. --- src/peer.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/peer.c b/src/peer.c index 5e9006f..99252f9 100644 --- a/src/peer.c +++ b/src/peer.c @@ -911,6 +911,10 @@ int connman_peer_set_state(struct connman_peer *peer, peer->state = new_state; state_changed(peer); + if (peer->state == CONNMAN_PEER_STATE_READY || + peer->state == CONNMAN_PEER_STATE_DISCONNECT) + settings_changed(peer); + return 0; } @@ -1002,7 +1006,8 @@ static void peer_ip_bound(struct connman_ipconfig *ipconfig, DBG("%s ip bound", ifname); - settings_changed(peer); + if (peer->state == CONNMAN_PEER_STATE_READY) + settings_changed(peer); connman_peer_set_state(peer, CONNMAN_PEER_STATE_READY); } @@ -1013,7 +1018,8 @@ static void peer_ip_release(struct connman_ipconfig *ipconfig, DBG("%s ip release", ifname); - settings_changed(peer); + if (peer->state == CONNMAN_PEER_STATE_READY) + settings_changed(peer); } static const struct connman_ipconfig_ops peer_ip_ops = { -- 2.0.5 _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman