diff --git a/src/etcp_connections.c b/src/etcp_connections.c index 6d56030..b7e7dc3 100644 --- a/src/etcp_connections.c +++ b/src/etcp_connections.c @@ -265,7 +265,12 @@ static void keepalive_timer_cb(void* arg) { } // Send keepalive only if no packets were sent since last tick - if (!link->pkt_sent_since_keepalive) etcp_link_send_keepalive(link); + if (!link->pkt_sent_since_keepalive) { + if (link->is_server) { + if (link->recv_keepalive) etcp_link_send_keepalive(link);// сервер прекращает слать keepalive если линк потерян (ждём keepalive клиента) + } + else etcp_link_send_keepalive(link); + } link->pkt_sent_since_keepalive = 0; restart_timer: