lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] HTTP Auth, LWIP connection management and FIN packets


From: Sergio R. Caprile
Subject: Re: [lwip-users] HTTP Auth, LWIP connection management and FIN packets
Date: Wed, 17 Feb 2016 13:36:39 -0300
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

your system is single threaded if you don't call lwIP functions from
within interrupt code. You can't. Please make sure you don't do that.

The applications you mention do not belong to the contrib tree, so I
don't really know if they do work OK. It is just my user opinion, I only
trust contrib tree apps and (sometimes) my own.
In fact, lighttpd is not (afaik) a RAW API application...

You say you are just trying to implement Digest Auth but you mention a
communication flow problem. If you expect some help, I would like to
actually see that communication flow. Maybe you are fiddling the wrong
way with your application, I added HTTP AUTH to my own web server, which
is a fork of the contrib tree official web server for RAW API.
You are welcomed to see if it fits your needs here:
http://scaprile.ldir.com.ar/cms/el-ingeniero/open-source-projects-im-working-on/lwhttpd/

Besides that,
"B connects to A": what is the application running in A, who wrote that,
why do you think it works OK ? OK, it connects, but...
"B tries to make the 2nd connection to A": so, your application is
listening and should have bind to a port and receive.
Before B receives a callback to tcp_connect(), A must receive a callback
to tcp_accept(), and the callback must do its internal magic and return
ERR_OK to lwIP.

You should be able to see why tcp_connect() is not called in B by
following the frame flow in A and/or B, putting a breakpoint at
ethernet_input() [assuming you did see the SYN and/or SYN ACK in the
wire, what you could do by attaching a PC running wireshark to a hub
(not a swith, a hub) where you connect the three Ethernets], which
should be called via netif->input inside your driver, if correctly
initialized by your call to netif_add():
netif_add(&netif, &ipaddr, &netmask, &gw, NULL, yourdriver_init,
ethernet_input)

Please attach a capture file so we can see the comm flow and the
requests and responses.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]