Try to rotate the ports we assign when root better so we dont reuse
a port htat is in time-wait too frequentlylibnfs-4.0.0-vitalif
parent
59f298f5bf
commit
e6cac86f77
|
@ -381,14 +381,17 @@ static int rpc_connect_sockaddr_async(struct rpc_context *rpc, struct sockaddr_s
|
||||||
* to make the executable able to bind to a system port.
|
* to make the executable able to bind to a system port.
|
||||||
*/
|
*/
|
||||||
if (1) {
|
if (1) {
|
||||||
int port;
|
static int port = 200;
|
||||||
|
int i;
|
||||||
int one = 1;
|
int one = 1;
|
||||||
|
|
||||||
setsockopt(rpc->fd, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one));
|
setsockopt(rpc->fd, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one));
|
||||||
|
|
||||||
for (port = 200; port < 500; port++) {
|
for (i = 0; i < 500; i++) {
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
|
|
||||||
|
if(++port > 700) port = 200;
|
||||||
|
|
||||||
memset(&sin, 0, sizeof(sin));
|
memset(&sin, 0, sizeof(sin));
|
||||||
sin.sin_port = htons(port);
|
sin.sin_port = htons(port);
|
||||||
sin.sin_family = AF_INET;
|
sin.sin_family = AF_INET;
|
||||||
|
|
Loading…
Reference in New Issue