Re: [PATCH net] tcp: fix connect() invalid -EADDRNOTAVAIL error
From: Eric Dumazet
Date: Wed Nov 19 2014 - 12:13:02 EST
On Wed, 2014-11-19 at 17:37 +1100, Jon Maxwell wrote:
> Prerequisites for this to happen:
> 1) The local tcp port range must be exhausted.
> 2) A process must have called bind() followed by connect() for all
> local ports.
How the bind() is done exactly ? How SO_REUSEADDR is used ?
> 3) A different process calls connect() only which returns -EADDRNOTAVAIL.
> 4) The system more than 1 interface configured.
> If a system has 2 IP Addresses and all local tcp ports are in use
> for connection from IP Address (1). Connecting to the same ports
> via IP Address (2) should work based on the 4 tuple rule. But it
> fails under this condition.
I do not think this is generally true.
If process called bind() to reserve a port, another process should not
be able to use the same port.
Do you have a test program exhibiting the problem ?
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/