summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-transport
diff options
context:
space:
mode:
authorPrasanna Kumar Kalever <prasanna.kalever@redhat.com>2016-04-04 16:15:18 +0530
committerRaghavendra G <rgowdapp@redhat.com>2016-05-04 20:24:32 -0700
commit8f6ab172c9817638f9032ed4436423efd8f8c56c (patch)
tree844002fa0fbaaf9d28115f1c6fea67d94f0bdd27 /rpc/rpc-transport
parentf9c59e29ccd770ae212da76b5e6f6ce3d8d09e61 (diff)
rpc: assign port only if it is unreserved
Current order: assign port; check for port; if reserved { port--; continue to i; } bind(); basically, we are assigning port first then checking if it is reserved Fix: get unreserved port; assign port; bind(); from now, we get unreserved port first and then assign it Backport of: > Change-Id: I004580c5215e7c9cae3594af6405b20fcd9fa4ad > BUG: 1323659 > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> > Reviewed-on: http://review.gluster.org/13900 > Tested-by: Prasanna Kumar Kalever <pkalever@redhat.com> > NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> > Reviewed-by: Jeff Darcy <jdarcy@redhat.com> > CentOS-regression: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Raghavendra Talur <rtalur@redhat.com> > Smoke: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Raghavendra G <rgowdapp@redhat.com> > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Change-Id: I772c1323606f1853542e22d8ab4d80934871efcb BUG: 1332838 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Reviewed-on: http://review.gluster.org/14204 Tested-by: Prasanna Kumar Kalever <pkalever@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Diffstat (limited to 'rpc/rpc-transport')
-rw-r--r--rpc/rpc-transport/rdma/src/name.c4
-rw-r--r--rpc/rpc-transport/socket/src/name.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/rpc/rpc-transport/rdma/src/name.c b/rpc/rpc-transport/rdma/src/name.c
index 2f6997546ea..d4502e766bf 100644
--- a/rpc/rpc-transport/rdma/src/name.c
+++ b/rpc/rpc-transport/rdma/src/name.c
@@ -61,12 +61,14 @@ af_inet_bind_to_port_lt_ceiling (struct rdma_cm_id *cm_id,
ret = gf_process_reserved_ports (ports, ceiling);
while (port) {
- _assign_port (sockaddr, port);
/* ignore the reserved ports */
if (ports[port] == _gf_true) {
port--;
continue;
}
+
+ _assign_port (sockaddr, port);
+
ret = rdma_bind_addr (cm_id, sockaddr);
if (ret == 0)
diff --git a/rpc/rpc-transport/socket/src/name.c b/rpc/rpc-transport/socket/src/name.c
index 642e99cdfcd..aa43006785f 100644
--- a/rpc/rpc-transport/socket/src/name.c
+++ b/rpc/rpc-transport/socket/src/name.c
@@ -50,12 +50,14 @@ af_inet_bind_to_port_lt_ceiling (int fd, struct sockaddr *sockaddr,
while (port)
{
- _assign_port (sockaddr, port);
/* ignore the reserved ports */
if (ports[port] == _gf_true) {
port--;
continue;
}
+
+ _assign_port (sockaddr, port);
+
ret = bind (fd, sockaddr, sockaddr_len);
if (ret == 0)