> In other words, could memory still be required for data copy that is not
> checked by the tcp sndbuf queue space.

Yes. That's because tcp_sndbuf() tests against a counter variable that can be 
configured to any size in lwipopts.h. However, the memory needed to enqueue a 
segment can be configured in lwipopts.h, too. If these values don't match, 
tcp_write() can return ERR_MEM although the sndbuf limit isn't reached yet.

> If so, is there a check to test for available mem to copy data?

That's hard: depending on whether you copy data or not, you need a PBUF_RAM or 
PBUF_ROM pbuf. In addition to that, you need one struct tcp_seg. These come 
from the corresponding memp pools, but there is no default way (aside from 
looking at the stats, maybe) to know if tcp_write will fail or not.

However, this is just the way lwIP is designed: your application code just has 
to cope with tcp_write failing, that's all :-)

Simon
-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01


_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to