On Fri, 2007-05-25 at 09:54 +0200, [EMAIL PROTECTED] wrote:

> At this point, I supposed that for default, sockets in LWIP were non-
> blocking (is this true???),

No.  By default socket operations are blocking.  I assume you haven't
specified MSG_DONTWAIT in the flags to the recv operation, or O_NONBLOCK
to the socket options.  These would both result in non-blocking sockets.

> I cannot find an explanation to what happens, but actually, select
> does not wait when it is called after a connect. I would be very
> pleased if somebody could give me some advice. 

It sounds like there's a problem with your port that is causing the
blocking operations in the sockets API to not block.  For some reason
lwIP is behaving as if there is data to read on that socket, when in
fact there is none.

Ignore select() for now as I think if we can solve the simpler recv-not-
blocking issue, that will be a good start.

Take a look at the lwip_recvfrom() function.  Can you check the
following when you call it by adding some extra debugging:
 - that sock->lastdata is NULL.
 - that buf returned by netconn_recv() is NULL.

If that is the case, take a look at netconn_recv().  This can return
NULL for all sorts of reasons.  Add debugging (e.g. a printf) to each
one and see which case is failing.

With that information we should be able to work out what's wrong.

Kieran





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

Reply via email to