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

[MiNT] tcp_select ( was: Re: inet4: errno is not set correct )



Am Sonntag, den 03.10.2010, 14:42 +0200 schrieb m0n0
<ole@monochrom.net>:

> Anyone is able to fix this, or maybe someone knows 
> more about the network code and can acknowledge this 
> bug at source level? 

I think this could be fixed in tcp_select... 

here is part of tcp_select function:
			switch (tcb->state)
			{
				case TCBS_SYNSENT:
				case TCBS_ESTABLISHED:
					break;
				default:
					return 1;
			}
			
			return so_rselect (so, proc);

Intentionally I would try to return 0 when tcb->state == TCBS_SYNSENT, 
at this time I just don't have the knowledge to build my own kernel ;) (
But I think I will dig into it because of this one..) 

Another problem I would have with that change: Is tcp_select only used
by user space applications? If it is also used by the kernel during TCP
handshake, then the TCBS_SYNSENT state of course must return 1... but I
guess it's not meant to be used within the kernel... 

On the other hand, I believe return 0 when tcb->state == TCBS_SYNSENT
won't be enough... TCBS_SYNRCVD is still handled by default and will
return 1, which seems to be wrong from my point of view. 

Anybody wants to talk about this =) ?

Greets,
m