Hi list,

I'm using web2py for a microcontroller project and I'm facing a really
strange problem.

This microcontroller (a modified arduino with an enc28j60) can accept
only one tcp packet a time, because the packet fills the ram and so it
freezes the micro.
The pages it can process are to be small and fit in one packet. For a
microcontroller project, a single packet is sufficient for most use
cases.

I have an http library that I tested towards an example hosted by the
jqplot project (http://www.jqplot.com/tests/jsondata.txt) and it works
well, I can read the data and I can manipulate the json object.

I also observed with wireshark that only a single packet is issued in
reply to my get. There is something like this:

GET -> ACK -> HTTP 200 OK

I procedeed further writing a small controller (the count one found on
the book) to test the micro with web2py. Boom, it doesn't work!

I can read only the header of the packet. Further investigation with
wireshark lead me to think that the rocket webserver fragments the
response in a way that I can get only the first packet (containing the
header) and not the second one containg the data (as expected by the
micro limitations).
In wireshark I have something like this:

GET -> ACK -> TCP segment of a reassembled PDU -> HTTP 200 OK

The packet "TCP segment of a reassembled PDU" which comes first,
actually contains only the headers, instead the http 200 one contains
the complete packet.

To confirm this, I tested the micro with other webservers (apache,
IIS, tomcat) and noone shows the undesired behaviour.

Can you give me an hint?

Thank you!

Reply via email to