diff --git a/tests/test_etcp_router.c b/tests/test_etcp_router.c index 902976dc..217e9159 100644 --- a/tests/test_etcp_router.c +++ b/tests/test_etcp_router.c @@ -169,6 +169,8 @@ static void write_configs(void) { "my_public_key=%s\n" "tun_ip=10.99.0.1/24\n" "tun_ifname=tun99\n" + "keepalive_timeout=60000\n" + "keepalive_adaptive=0\n" "[server: s1]\n" "addr=127.0.0.1:%d\n" "type=public\n" @@ -188,6 +190,8 @@ static void write_configs(void) { "my_public_key=%s\n" "tun_ip=10.99.0.2/24\n" "tun_ifname=tun98\n" + "keepalive_timeout=60000\n" + "keepalive_adaptive=0\n" "[server: s1]\n" "addr=127.0.0.1:%d\n" "type=public\n" @@ -242,9 +246,15 @@ static int send_one_pkt(uint32_t seq, int data_len) { // ======================== Server handler ======================== static void srv_handler(struct ETCP_CONN* conn, struct ll_entry* entry) { - (void)conn; + // Restart notification: conn=NULL, len=9, format [svc_id:1][node_id:8] + if (!conn && entry && entry->dgram && entry->len == 9) { + DEBUG_DEBUG(DEBUG_CATEGORY_DEBUG, "srv_handler: restart notification, resetting expected_seq from %u to 0", g_expected_seq); + g_expected_seq = 0; + queue_dgram_free(entry); queue_entry_free(entry); + return; + } if (!entry || !entry->dgram || entry->len < 10) { - printf("[FAIL] srv_handler: bad entry len=%zu\n", entry ? entry->len : 0); + printf("[FAIL] srv_handler: bad entry len=%zu conn=%p\n", entry ? entry->len : 0, (void*)conn); if (entry) { queue_dgram_free(entry); queue_entry_free(entry); } g_fail = 4; g_done = -1; return;