This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Blocking while recv() with freebsd/openbsd tcp/ip-stack
- From: Jonathan Larmour <jifl at eCosCentric dot com>
- To: Roland Brühwiler <bwr at zhwin dot ch>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Wed, 05 Mar 2003 01:27:58 +0000
- Subject: Re: [ECOS] Blocking while recv() with freebsd/openbsd tcp/ip-stack
- References: <3E646679.4070507@zhwin.ch>
Roland Brühwiler wrote:
Compiling the sources for the arm-bord with the freebsd or openbsd
tcp/ip stack is ok. No errors.
After loading and continuing with arm-elf-gdb the software is starting.
A client sends the hello-packet and the server (arm-board with
ecos/redboot) sends back the other handshake messages. After sending the
server-hello-done packet I want to read 5 Bytes from the tcp-connection.
But the server is blocking while I use the function recv(fd,buf,5,0)
although the client writes some bytes in the meantime. If I use the
MSG_NOWAIT-flag it isn't blocking but with wrong bytes.
It seems no-one has seen this before, which isn't to say there isn't a
good reason, but it may be wise to check your client code, and also
perhaps check that there are no stack overruns anywhere.
Only other debugging hints I have are enable assertions, and there are
copious options in the low level drivers, generic eth drivers and net
stacks to enable extra logging.
Jifl
--
eCosCentric http://www.eCosCentric.com/ The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss