|
From: | Jeremy Spiller |
Subject: | [lwip-users] LwIP stops sending data (but keeps retrying forever) - caused by buffer chaining |
Date: | Wed, 27 Mar 2013 17:29:28 -0400 |
I’m using version 1.3.2. In the case where I do this:
tcp_write(pcb, (void*)"\r\n", 2, TCP_WRITE_FLAG_COPY);
tcp_write(pcb, (void*)">", 1, TCP_WRITE_FLAG_COPY); Communications stop, but LwIP keeps retrying forever. I can fix the
problem by making the following modification in tcp_enqueue:
/* If there is room in the last pbuf on the unsent queue,
chain the first pbuf on the queue together with that. */ if (TCP_ALLOW_BUFFER_CHAINING_JMS && ...
With TCP_ALLOW_BUFFER_CHAINING_JMS set to false, the problem goes
way. I suspect the packets are going out, but have an incorrect checksum
or are permanently corrupted somewhere along the way. BTW, I’m using LwIP
functions in only one thread (the main loop) and only outside of interrupts, so
I don’t think it’s a threading issue.
Is this a bug, or is something else going on?
-Jeremy
|
[Prev in Thread] | Current Thread | [Next in Thread] |