diff --git a/src/ctl/ctl-wifi.c b/src/ctl/ctl-wifi.c index 6cfcf88..a0caef3 100644 --- a/src/ctl/ctl-wifi.c +++ b/src/ctl/ctl-wifi.c @@ -195,14 +195,6 @@ static int ctl_peer_parse_properties(struct ctl_peer *p, } } - if (connected_set && p->connected != connected) { - p->connected = connected; - if (p->connected) - ctl_fn_peer_connected(p); - else - ctl_fn_peer_disconnected(p); - } - if (interface) { tmp = strdup(interface); if (tmp) { @@ -243,6 +235,15 @@ static int ctl_peer_parse_properties(struct ctl_peer *p, } } + /* do notifications last */ + if (connected_set && p->connected != connected) { + p->connected = connected; + if (p->connected) + ctl_fn_peer_connected(p); + else + ctl_fn_peer_disconnected(p); + } + return 0; }