I've noticed a minor issue in tcp_enqueue that results in segments < mss being sent.
 
The enqueue function first splits the received data into segments all of mss size apart from the last, it then checks the last segment on the unsent queue and attempts to join the segments if the last is also < mss.
 
Now, this works a treat when you are doing small writes, however if you do a writes (worst case is mss bytes +1) you end up with <mss> <1 byte> <mss> <1 byte> rather than <mss> <mss> <2 bytes>.
 
Basically, the code needs to check the space available in the last of the unsent before it splits the new data into mss sized units, but I think this would need a fairly major re-arrangement of the existing function to achieve.
_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to