diff options
| author | Kevin Vigor <kvigor@fb.com> | 2016-12-15 13:41:14 -0800 |
|---|---|---|
| committer | Kevin Vigor <kvigor@fb.com> | 2016-12-16 12:23:56 -0800 |
| commit | f7e7619703382df4489a8a875f9f7e68aefe31ba (patch) | |
| tree | 12932bac58dac76538f4e597d41e6d8c414fdc87 /rpc | |
| parent | ba11f1cb4f4ffa48dd0b3cd72470e14c5efecada (diff) | |
Allow OS to assign us a port
Summary:
Replace complex and slow port selection code with bind(0).
Test Plan:
runtests.sh
Reviewers:
sshreyas
Subscribers:
Tasks:
Blame Revision:
Change-Id: I408a8528e58e1aafcd32eba6a8f1a759e0bf274e
Signed-off-by: Kevin Vigor <kvigor@fb.com>
Reviewed-on: http://review.gluster.org/16150
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Shreyas Siravara <sshreyas@fb.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Diffstat (limited to 'rpc')
| -rw-r--r-- | rpc/rpc-transport/rdma/src/name.c | 5 | ||||
| -rw-r--r-- | rpc/rpc-transport/socket/src/name.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/rpc/rpc-transport/rdma/src/name.c b/rpc/rpc-transport/rdma/src/name.c index 8003b1c87a0..b9d3269eb73 100644 --- a/rpc/rpc-transport/rdma/src/name.c +++ b/rpc/rpc-transport/rdma/src/name.c @@ -54,6 +54,10 @@ af_inet_bind_to_port_lt_ceiling (struct rdma_cm_id *cm_id, struct sockaddr *sockaddr, socklen_t sockaddr_len, uint32_t ceiling) { +#if defined(NO_PRIVPORT) + _assign_port(sockaddr, 0); + return rdma_bind_addr (cm_id, sockaddr); +#else int32_t ret = -1; uint16_t port = ceiling - 1; gf_boolean_t ports[GF_PORT_MAX]; @@ -100,6 +104,7 @@ loop: } return ret; +#endif /* NO_PRIVPORT */ } #if 0 diff --git a/rpc/rpc-transport/socket/src/name.c b/rpc/rpc-transport/socket/src/name.c index 056eb790628..cab4161c076 100644 --- a/rpc/rpc-transport/socket/src/name.c +++ b/rpc/rpc-transport/socket/src/name.c @@ -42,6 +42,10 @@ static int32_t af_inet_bind_to_port_lt_ceiling (int fd, struct sockaddr *sockaddr, socklen_t sockaddr_len, uint32_t ceiling) { +#if defined(NO_PRIVPORT) + _assign_port(sockaddr, 0); + return bind (fd, sockaddr, sockaddr_len); +#else int32_t ret = -1; uint16_t port = ceiling - 1; gf_boolean_t ports[GF_PORT_MAX]; @@ -88,6 +92,7 @@ loop: } return ret; +#endif /* NO_PRIVPORT */ } static int32_t |
