diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-pmap.c | 10 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.c | 5 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 12 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.h | 1 | 
4 files changed, 18 insertions, 10 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-pmap.c b/xlators/mgmt/glusterd/src/glusterd-pmap.c index aab6744a418..7dec27cadc9 100644 --- a/xlators/mgmt/glusterd/src/glusterd-pmap.c +++ b/xlators/mgmt/glusterd/src/glusterd-pmap.c @@ -52,8 +52,8 @@ pmap_port_isfree (int port)  } -struct pmap_registry * -pmap_registry_new (void) +static struct pmap_registry * +pmap_registry_new (xlator_t *this)  {          struct pmap_registry *pmap = NULL;          int                   i = 0; @@ -69,8 +69,8 @@ pmap_registry_new (void)                          pmap->ports[i].type = GF_PMAP_PORT_FOREIGN;          } -        pmap->base_port = GF_IANA_PRIV_PORTS_START; -        pmap->last_alloc = GF_IANA_PRIV_PORTS_START; +        pmap->base_port = ((glusterd_conf_t *)(this->private))->base_port; +        pmap->last_alloc = ((glusterd_conf_t *)(this->private))->base_port;          return pmap;  } @@ -86,7 +86,7 @@ pmap_registry_get (xlator_t *this)          pmap = priv->pmap;          if (!pmap) { -                pmap = pmap_registry_new (); +                pmap = pmap_registry_new (this);                  if (!pmap)                          return NULL;                  priv->pmap = pmap; diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index ae0c4e83be9..1790c5aec24 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -1484,7 +1484,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)                                      strlen (GLUSTERD_STORE_KEY_BRICK_PORT))) {                                  gf_string2int (value, &brickinfo->port); -                                if (brickinfo->port < GF_IANA_PRIV_PORTS_START){ +                                if (brickinfo->port < priv->base_port){                                          /* This is required to adhere to the                                             IANA standards */                                          brickinfo->port = 0; @@ -1500,8 +1500,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)                                      strlen (GLUSTERD_STORE_KEY_BRICK_RDMA_PORT))) {                                  gf_string2int (value, &brickinfo->rdma_port); -                                if (brickinfo->rdma_port < -                                    GF_IANA_PRIV_PORTS_START){ +                                if (brickinfo->rdma_port < priv->base_port) {                                          /* This is required to adhere to the                                             IANA standards */                                          brickinfo->rdma_port = 0; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index 785e67af66d..62c4a578555 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -916,7 +916,6 @@ init (xlator_t *this)          int                first_time        = 0;          char              *mountbroker_root  = NULL;          int                i                 = 0; -  #ifdef DEBUG          char              *valgrind_str      = NULL;  #endif @@ -1101,6 +1100,12 @@ init (xlator_t *this)          if (ret)                  goto out; +        conf->base_port = GF_IANA_PRIV_PORTS_START; +        if (dict_get_uint32(this->options, "base-port", &conf->base_port) == 0) { +                gf_log (this->name, GF_LOG_INFO, +                        "base-port override: %d", conf->base_port); +        } +          /* Set option to run bricks on valgrind if enabled in glusterd.vol */  #ifdef DEBUG          conf->valgrind = _gf_false; @@ -1116,7 +1121,6 @@ init (xlator_t *this)                  }          }  #endif -          this->private = conf;          (void) glusterd_nodesvc_set_online_status ("glustershd", _gf_false); @@ -1309,5 +1313,9 @@ struct volume_options options[] = {            .description = "Sets the quorum percentage for the trusted "            "storage pool."          }, +        { .key = {"base-port"}, +          .type = GF_OPTION_TYPE_INT, +          .description = "Sets the base port for portmap query" +        },          { .key   = {NULL} },  }; diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h index 00331258e97..10545749612 100644 --- a/xlators/mgmt/glusterd/src/glusterd.h +++ b/xlators/mgmt/glusterd/src/glusterd.h @@ -148,6 +148,7 @@ typedef struct {          dict_t             *opts;          synclock_t      big_lock;          gf_boolean_t    restart_done; +        uint32_t        base_port;  } glusterd_conf_t;  | 
