topo_group: асимметричный старт BGP (JOIN_GROUP) + вынос group_id/flags из TOPO_NODE
- UTUN: BGP инициирует только сторона-клиент ([client]) и явные etcp_connect; сервер добавляет пира по JOIN_GROUP (фикс обратного маршрута: сервер не создавал узел клиента из-за дедупа senders_list) - topo_group_new_conn: conn_add_path до дедупа; handle_request_table без add_to_senders - TOPO_NODE: убраны group_id/flags (shared-реестр), передаются в topo_node_serialize - routing/control_server: явный TOPO_GROUP_UTUN - CHAT: гейт по peers_* (get_member_channels) + пассивное add/remove в member_sync - tests: тесты адаптированы (route_ping ждёт registry+v4_addrs) - chatgui-android: voice_recorder_init в utun_bridge_voice_start (idempotent)
This commit is contained in:
1 parent
7b73d99b5b
commit
656da48e35
20 files changed
+236
-46
No files matched your search
@@ -1569,4 +1569,15 @@ int update_config_keys(const char *filename, const char *priv_key, const char *p
|
||||
|
||||
fclose(fp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_peer_in_clients(const struct utun_config* config, const uint8_t* pubkey) {
|
||||
if (!config || !pubkey) return 0;
|
||||
uint8_t pk_bin[SC_PUBKEY_SIZE];
|
||||
for (const struct CFG_CLIENT* cli = config->clients; cli; cli = cli->next) {
|
||||
if (!cli->peer_public_key_hex[0]) continue;
|
||||
if (hex_to_binary(cli->peer_public_key_hex, pk_bin, SC_PUBKEY_SIZE) != 0) continue;
|
||||
if (memcmp(pk_bin, pubkey, SC_PUBKEY_SIZE) == 0) return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user