On Monday, 1. March 2010 16:17:05 Christian Helmuth wrote:
Hello Peter,
On Tue, Mar 02, 2010 at 12:20:15AM +1030, Peter Nguyen wrote:
Sorry, I should have mentioned more specifically what i was after. So, i was referring to the http_server_serve function in the http server code, whereby upon receiving a HTTP request, the struct netconn variable (conn) seems to store IP addresses which I think refer to the IP address that the HTTP request will be sent back to. In following the struct netconn variable, I noticed two IP addresses are stored: a local IP, and a remote IP. I discovered this via the following code that I added:
addr = conn->pcb.ip->remote_ip.addr (remote_ip can be replaced by local_ip)
You're digging deep into lwIP here, that we just adopted for Genode, but I'll share my limited knowledge...
I was wondering what the purpose of the remote_ip and local_ip variables were? Am i right in saying that remote_ip refers to the machine that performed the HTTP request?
'pcb.ip' is the lwIP-internal protocol control block for IP packets [1]. Therefore, I assume that the fields (e.g., local_ip or tos) correspond to the connection configuration and will end as in the final network packet on the wire. Note, IP addresses are stored in network byte order [2].
[1] lwip-1.3.2/src/include/lwip/api.h:114 [2] lwip-1.3.2/src/include/ipv4/lwip/ip.h:76
Regards
Hi Peter,
as Christian already mentioned, this code is related to the LwIP library and is not specific to Genode. If you have questions regarding the internals of LwIP, the lwip-users mailing list might be of value for you: http://lists.nongnu.org/mailman/listinfo/lwip-users
Nevertheless, within Genode I recommend to not use the netconn interface directly, but use LwIP's BSD-like socket interface (lwip/socket.h) or our LwIP plugin for the libc, as its more convenient to use. Regardless of what kind of interface you choose, I strongly recommend you to update to Genode's last release 10.02, as it contains a far-reaching rework of Genode's LwIP backend, including several bug-fixes.
regards