remote: always re-schedule update timeout

This commit fixes updates not triggering due to a race-condition in
usteer.

When usteer does not yet have local-nodes when loading config, the
scheduled remote-update is not re-scheduled, leading to usteer only
exchanging node-messages on STA-events, leading to expiring remotes on
other remote nodes in low-event scenarios.

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer
2021-10-24 00:40:55 +02:00
parent d7833e14ef
commit 681354256f

View File

@@ -622,17 +622,16 @@ usteer_send_update_timer(struct uloop_timeout *t)
struct usteer_node *node;
void *c;
if (avl_is_empty(&local_nodes) && !host_info_blob)
return;
usteer_update_time();
uloop_timeout_set(t, config.remote_update_interval);
if (!avl_is_empty(&local_nodes) || host_info_blob) {
c = usteer_update_init();
for_each_local_node(node)
usteer_send_node(node, NULL);
usteer_update_send(c);
}
usteer_check_timeout();
}