diff options
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 17 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 6 | 
2 files changed, 12 insertions, 11 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 284c444ccfd..6a9e1a6ea65 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -2806,7 +2806,7 @@ out:  }  int -gf_process_reserved_ports (gf_boolean_t *ports) +gf_process_reserved_ports (gf_boolean_t *ports, uint32_t ceiling)  {          int      ret         = -1;  #if defined GF_LINUX_HOST_OS @@ -2826,7 +2826,7 @@ gf_process_reserved_ports (gf_boolean_t *ports)          blocked_port = strtok_r (ports_info, ",\n",&tmp);          while (blocked_port) { -                gf_ports_reserved (blocked_port, ports); +                gf_ports_reserved (blocked_port, ports, ceiling);                  blocked_port = strtok_r (NULL, ",\n", &tmp);          } @@ -2839,7 +2839,7 @@ out:  }  gf_boolean_t -gf_ports_reserved (char *blocked_port, gf_boolean_t *ports) +gf_ports_reserved (char *blocked_port, gf_boolean_t *ports, uint32_t ceiling)  {          gf_boolean_t    result   = _gf_false;          char            *range_port = NULL; @@ -2850,7 +2850,7 @@ gf_ports_reserved (char *blocked_port, gf_boolean_t *ports)                  if (blocked_port[strlen(blocked_port) -1] == '\n')                          blocked_port[strlen(blocked_port) -1] = '\0';                  if (gf_string2int16 (blocked_port, &tmp_port1) == 0) { -                        if (tmp_port1 > (GF_CLIENT_PORT_CEILING - 1) +                        if (tmp_port1 > ceiling                              || tmp_port1 < 0) {                                  gf_msg ("glusterfs-socket", GF_LOG_WARNING, 0,                                          LG_MSG_INVALID_PORT, "invalid port %d", @@ -2876,8 +2876,8 @@ gf_ports_reserved (char *blocked_port, gf_boolean_t *ports)                          goto out;                  }                  if (gf_string2int16 (range_port, &tmp_port1) == 0) { -                        if (tmp_port1 > (GF_CLIENT_PORT_CEILING - 1)) -                                tmp_port1 = GF_CLIENT_PORT_CEILING - 1; +                        if (tmp_port1 > ceiling) +                                tmp_port1 = ceiling;                          if (tmp_port1 < 0)                                  tmp_port1 = 0;                  } @@ -2890,9 +2890,8 @@ gf_ports_reserved (char *blocked_port, gf_boolean_t *ports)                  if (range_port[strlen(range_port) -1] == '\n')                          range_port[strlen(range_port) - 1] = '\0';                  if (gf_string2int16 (range_port, &tmp_port2) == 0) { -                        if (tmp_port2 > -                            (GF_CLIENT_PORT_CEILING - 1)) -                                tmp_port2 = GF_CLIENT_PORT_CEILING - 1; +                        if (tmp_port2 > ceiling) +                                tmp_port2 = ceiling;                          if (tmp_port2 < 0)                                  tmp_port2 = 0;                  } diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 5302a47cb1d..67728350508 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -88,6 +88,7 @@ void trap (void);   */  #define GF_NFS3_PORT    2049  #define GF_CLIENT_PORT_CEILING 1024 +#define GF_PORT_MAX 65535  #define GF_MINUTE_IN_SECONDS 60  #define GF_HOUR_IN_SECONDS (60*60) @@ -703,8 +704,9 @@ int gf_strip_whitespace (char *str, int len);  int gf_canonicalize_path (char *path);  char *generate_glusterfs_ctx_id (void);  char *gf_get_reserved_ports(); -int gf_process_reserved_ports (gf_boolean_t ports[]); -gf_boolean_t gf_ports_reserved (char *blocked_port, gf_boolean_t *ports); +int gf_process_reserved_ports (gf_boolean_t ports[], uint32_t ceiling); +gf_boolean_t +gf_ports_reserved (char *blocked_port, gf_boolean_t *ports, uint32_t ceiling);  int gf_get_hostname_from_ip (char *client_ip, char **hostname);  gf_boolean_t gf_is_local_addr (char *hostname);  gf_boolean_t gf_is_same_address (char *host1, char *host2);  | 
