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>
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);
- c = usteer_update_init();
- for_each_local_node(node)
- usteer_send_node(node, NULL);
+ 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_update_send(c);
+ }
usteer_check_timeout();
}