[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] tcp_select ( was: Re: inet4: errno is not set correct )
On Mon, 2010-10-04 at 21:32 +0200, m0n0 wrote:
> 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 =) ?
Sorry Ole, been busy.
It's always useful to come up with a small test case that demonstrates
the problem.
Can you do that and I'll be sure to look at it.
Alan.