Blob Blame History Raw
From c1a7a863d784961010f07ba78531dfc24c473e16 Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Sat, 30 Apr 2016 14:37:40 +0530
Subject: [PATCH 120/139] rpc: fix gf_process_reserved_ports

this patch also does minor code cleanups.

Backport of:
> Backport of:
>> Change-Id: I0d005bd0f9baaaae498aa1df4faa6fcb65fa7a6e
>> BUG: 1198849
>> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
>> Reviewed-on: http://review.gluster.org/13997
>> Tested-by: Prasanna Kumar Kalever <pkalever@redhat.com>
>> Smoke: Gluster Build System <jenkins@build.gluster.com>
>> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
>> CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
>> Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
>> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>

> Change-Id: Ia53ba724f6d31cb2fc609786e31a1b676f55fe01
> BUG: 1331941
> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
> Reviewed-on: http://review.gluster.org/14128
> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
> Tested-by: Raghavendra G <rgowdapp@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>

Change-Id: Ic1ad8a3fafdcec6f529a2d9c5702099c31eeaf13
BUG: 1322306
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/73588
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
 libglusterfs/src/common-utils.c     |   10 ++++++++++
 rpc/rpc-transport/rdma/src/name.c   |    8 +-------
 rpc/rpc-transport/socket/src/name.c |   10 ++--------
 3 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c
index 88fe5f3..b9ada2b 100644
--- a/libglusterfs/src/common-utils.c
+++ b/libglusterfs/src/common-utils.c
@@ -2797,6 +2797,12 @@ int
 gf_process_reserved_ports (gf_boolean_t *ports, uint32_t ceiling)
 {
         int      ret         = -1;
+        int      i           = 0;
+
+        for (i = 0; i < GF_PORT_MAX; i++) {
+                *(ports + i) = _gf_false;
+        }
+
 #if defined GF_LINUX_HOST_OS
         char    *ports_info  = NULL;
         char    *tmp         = NULL;
@@ -2822,7 +2828,11 @@ gf_process_reserved_ports (gf_boolean_t *ports, uint32_t ceiling)
 
 out:
         GF_FREE (ports_info);
+
+#else  /* FIXME: Non Linux Host */
+        ret = 0;
 #endif /* GF_LINUX_HOST_OS */
+
         return ret;
 }
 
diff --git a/rpc/rpc-transport/rdma/src/name.c b/rpc/rpc-transport/rdma/src/name.c
index 0bbbbc0..2f69975 100644
--- a/rpc/rpc-transport/rdma/src/name.c
+++ b/rpc/rpc-transport/rdma/src/name.c
@@ -56,15 +56,9 @@ af_inet_bind_to_port_lt_ceiling (struct rdma_cm_id *cm_id,
 {
         int32_t        ret        = -1;
         uint16_t      port        = ceiling - 1;
-        /* by default assume none of the ports are blocked and all are available */
-        gf_boolean_t  ports[GF_PORT_MAX] = {_gf_false,};
-        int           i           = 0;
+        gf_boolean_t  ports[GF_PORT_MAX];
 
         ret = gf_process_reserved_ports (ports, ceiling);
-        if (ret != 0) {
-                for (i = 0; i < GF_PORT_MAX; i++)
-                        ports[i] = _gf_false;
-        }
 
         while (port) {
                 _assign_port (sockaddr, port);
diff --git a/rpc/rpc-transport/socket/src/name.c b/rpc/rpc-transport/socket/src/name.c
index 650c5a7..642e99c 100644
--- a/rpc/rpc-transport/socket/src/name.c
+++ b/rpc/rpc-transport/socket/src/name.c
@@ -44,20 +44,14 @@ af_inet_bind_to_port_lt_ceiling (int fd, struct sockaddr *sockaddr,
 {
         int32_t        ret        = -1;
         uint16_t      port        = ceiling - 1;
-        // by default assume none of the ports are blocked and all are available
-        gf_boolean_t  ports[GF_PORT_MAX] = {_gf_false,};
-        int           i           = 0;
+        gf_boolean_t  ports[GF_PORT_MAX];
 
         ret = gf_process_reserved_ports (ports, ceiling);
-        if (ret != 0) {
-                for (i = 0; i < GF_PORT_MAX; i++)
-                        ports[i] = _gf_false;
-        }
 
         while (port)
         {
                 _assign_port (sockaddr, port);
-                // ignore the reserved ports
+                /* ignore the reserved ports */
                 if (ports[port] == _gf_true) {
                         port--;
                         continue;
-- 
1.7.1