This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: TCP/IP 1.3.1 connect() never returns



AshCan@aol.com writes:
> Occasionally connect() does not return.  I cannot find
> where it got stuck as I continue to start and stop 
> my emulator hoping to be sitting at a yield or in some
> loop.  
> 
> My other threads,  cyg_netint thread and ethernet ISR 
> are still running.
> 
> If important, it is a SOCK_STREAM socket.
> 
> Has anyone had this problem and know how to avoid it?

There have been a couple of race conditions fixed in the select() code that
could leave netly stuff just hanging as you describe; available from
anoncvs.

There has also been a fix to make the network time (ktime) valid, and more
recently a fix to make that time start at 1S - because the routing code
"knows" that a time with a secs part of zero cannot possibly be valid  ;-)
So doing a connect within the first second of the kernel clock running
would just time out.  Also should be available from anoncvs.

Finding *just* these changes and applying to the net code that went along
with 131 might not be easy; a new kernel is required for some of the select
changes too.  Switch to using the whole anoncvs rather than 131?

	- Huge

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]