lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] is this is a bug ? (inside tcp_out.c)


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"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]