diff --git a/src/routing_layer/conn_mgr_core.c b/src/routing_layer/conn_mgr_core.c index dab8b8a2..ffc855a6 100644 --- a/src/routing_layer/conn_mgr_core.c +++ b/src/routing_layer/conn_mgr_core.c @@ -755,7 +755,7 @@ void cm_handle_invite_info_resp(struct CONN_MGR* mgr, struct ETCP_CONN* conn, co { struct TOPO_GROUP* grp = topo_groups_find(mgr->instance->topo_groups, resp->group_id); if (grp && grp->conn_mgr) { for (struct cm_invite_pending* p = grp->conn_mgr->invite_list; p; p = p->next) - if (p->state == CM_INVITE_WAIT_INFO && p->node_id == conn->peer_node_id) { inv = p; break; } + if (p->state == CM_INVITE_WAIT_INFO && (!conn->peer_node_id || p->node_id == conn->peer_node_id)) { inv = p; break; } } } if (!inv) { for (struct cm_invite_pending* p = mgr->invite_list; p; p = p->next) if (p->state == CM_INVITE_WAIT_INFO) { inv = p; break; } } diff --git a/src/transport_layer/stcp_server.c b/src/transport_layer/stcp_server.c index da168c02..e6e34bf6 100644 --- a/src/transport_layer/stcp_server.c +++ b/src/transport_layer/stcp_server.c @@ -241,8 +241,8 @@ static void finish_client_handshake(struct stcp_conn *c) { c->state = STCP_STATE_DATA; DEBUG_INFO(DEBUG_CATEGORY_ETCP, "stcp_server: handshake OK, entering DATA state"); log_dump(DEBUG_LEVEL_ERROR, DEBUG_CATEGORY_DEBUG, "stcp_server FULL RESP", resp, total_resp); + stcp_conn_try_send(c, resp, total_resp); // send handshake response BEFORE on_ready — otherwise ETCP sends INIT data which mixes into client's recv buffer if (c->on_ready) c->on_ready(c, c->ready_arg); - stcp_conn_try_send(c, resp, total_resp); } static void server_conn_read_cb(socket_t sock, void *arg) { diff --git a/tools/chat_tcp_test/run.sh b/tools/chat_tcp_test/run.sh index 8f7fd0ef..561a133f 100755 --- a/tools/chat_tcp_test/run.sh +++ b/tools/chat_tcp_test/run.sh @@ -99,7 +99,6 @@ done echo "--- Wait members sync ---" MEM_OK=0 for i in $(seq 1 30); do - local MEM_COUNT MEM_COUNT=$($CHATCLI --port 15004 members "$CH_ID" 2>/dev/null | python3 -c "import sys,json;print(len(json.load(sys.stdin)))" 2>/dev/null || echo 0) if [ "$MEM_COUNT" -ge 2 ]; then echo " members=$MEM_COUNT OK (${i}00ms)"