tech-kern archive

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

Re: Question about tcp ephemeral ports



Hi Eric,

> The code that actually picks the ephemeral port to use is in 
> netinet/rfc6056.c.
> At first glance, it looks like it *should* allow your code to work: regardless
> of the algorithm used to cycle through the port numbers, the 
> check_suitable_port() function uses the address to verify that the port is
> available.

I was working on the 5.1 source code that don't include the rfc6056
port randomization mechanism. I will have a try with latest source
code, but I think the behaviour of my test program will be the same
because the following code that does the implicit bind when doing a
connect is still present:

                if (inp->inp_lport == 0) {
                        error = in_pcbbind(inp, NULL, l);
                        if (error)
                                break;
                }

I suppose that this specific in_pcbbind() could be replaced by another
one -- a sort of in_pcbbind_before_connect() -- that is aware of the
address and port we are connecting to. I will try to implement this
idea and get back to the list with a first patch.

Olivier


Home | Main Index | Thread Index | Old Index