On Tue, 2009-06-09 at 17:12 +0200, Jesper Vestergaard wrote: > I have found the problem. ip_output_if generates a header for the packet > but there's not enough room for it and pbuf_header(p, IP_HLEN)) fails. > To be more precise it is the if ((u8_t *)p->payload < (u8_t *)p + > SIZEOF_STRUCT_PBUF) check in pbuf_header which fails. > > What can i do to fix this problem? >
That is a very strange problem, the pbuf should have been allocated with enough space to contain the IP header. Unfortunately, this code has changed a lot recently (since 1.3.0) so it's hard to diagnose using the current CVS head, or even establish if the problem still exists. To investigate, look for where the pbuf is allocated (should be in tcp_enqueue() I think), and see what value is given for the first argument "pbuf_layer layer". It is this that should control the additional space allocated for lower layer headers. Kieran _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
