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

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>
This commit is contained in:
Prasanna Kumar Kalever 2016-04-04 16:15:18 +05:30 committed by Raghavendra G
parent 6e3b4eae1a
commit 7370633b64
2 changed files with 6 additions and 2 deletions

View File

@ -67,12 +67,14 @@ af_inet_bind_to_port_lt_ceiling (struct rdma_cm_id *cm_id,
}
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)

View File

@ -56,12 +56,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)