topo: держать актуальные self-адреса в node_addresses, обновлять/рассылать только при изменении
topo_node_update_my_addresses теперь собирает адреса во временные списки, сравнивает со старыми и при отсутствии изменений выходит без бампа ver, записи в БД и broadcast. Гейт member_exists убран: self-адреса пишутся в node_addresses при любом запуске/изменении (с гарантией строки nodes для FK). addrs_put логирует ошибки INSERT.
This commit is contained in:
1 parent
54352c17ba
commit
eb24736e27
3 files changed
+86
-43
No files matched your search
@@ -198,7 +198,7 @@ int topo_node_deserialize(struct TOPO_GROUP* group, const uint8_t* data, size_t
|
||||
uint64_t* topo_node_best_hop_list(struct TOPO_GROUP_NODE* nq, uint8_t* out_count, uint16_t* out_rtt);
|
||||
|
||||
int topo_group_update_my_nodeinfo(struct UTUN_INSTANCE* instance, struct TOPO_GROUP* group);
|
||||
void topo_node_update_my_addresses(struct UTUN_INSTANCE* instance);
|
||||
int topo_node_update_my_addresses(struct UTUN_INSTANCE* instance); /* 1=changed, 0=unchanged, -1=error */
|
||||
void topo_node_on_socket_changed(struct ETCP_SOCKET* sock, int event, void* arg);
|
||||
void topo_node_dump_all(struct TOPO_GROUP* group);
|
||||
int topo_node_format_all(struct TOPO_GROUP* group, char* buf, size_t buf_size);
|
||||
|
||||
Reference in new issue
Block a user