|
From: | Albert Huitsing |
Subject: | [lwip-devel] is this is a bug ? (inside tcp_out.c) |
Date: | Thu, 11 Sep 2014 10:34:24 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Hi all, when a TCP connection is abruptly aborted (remote node has a crash-bug :-), it seems the local connection can't be terminated correctly in my case. I traced it down to : lwip_netconn_do_close_internal() tcp_send_fin() tcp_enqueue_flags: too long queue 8 (max 8) which keeps on going forever (because of ERR_MEM) in tcp_out.c: tcp_enqueue_flags() if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: too long queue %"U16_F" (max %"U16_F")\n", pcb->snd_queuelen, TCP_SND_QUEUELEN)); shouldn't that be: if ((pcb->snd_queuelen > TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: too long queue %"U16_F" (max %"U16_F")\n", pcb->snd_queuelen, TCP_SND_QUEUELEN)); ??? it seems to work fine when I change it accordingly kindest regards, Albert Huitsing -- Albert Huitsing (address@hidden) Huitsing Embedded Systems Dr. Mondenweg 5 7831 JA Nw. Weerdinge +31-(0)591-521222 http://www.huitsing.nl "conformity is the uncomfortable feeling of wearing somebody else's clothes; even when they don't fit" |
[Prev in Thread] | Current Thread | [Next in Thread] |