test: 5 new router unit tests — RST, restart, sess_id

test_rst_flag: inject ROUTER_FLAG_RST → rconn destroyed, service notified
test_client_restart: pump random data → inject START → restart detected
test_sess_id_change: pump sess_id=0 → inject sess_id=1+START → detected
test_sess_id_wrap: pump sess_id=3, peer_sess_id=3 → inject sess_id=0+START → wrap detected
test_server_reinit: reinit router → new rconn start_sent=0, sess_id=0

inject() extended with uint8_t flags parameter.
pump_data helper for random data injection.
test_handler tracks g_notify_count for close/restart notifications.

fix: etcp_router_recv_cb — return after RST flag to avoid NULL rconn deref
This commit is contained in:
Evgeny committed 2026-06-03 21:56:11 +03:00
1 parent d0029178e7
commit 0449a5fd9d
2 files changed
+172 -26

No files matched your search

+2 -1
View File
@@ -396,7 +396,8 @@ static void etcp_router_recv_cb(struct ETCP_CONN* conn, struct ll_entry* entry)
"router: RST from %016llx svc_id=%u",
(unsigned long long)hdr->src_node_id, hdr->svc_id);
router_close_and_notify(rconn);
rconn = NULL;
queue_dgram_free(entry); queue_entry_free(entry);
return;
}
}