diff options
Diffstat (limited to 'xlators/protocol/client/src')
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 13 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.c | 31 | 
2 files changed, 30 insertions, 14 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index 101b62eecd7..19cd0f5d008 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -353,13 +353,14 @@ client_notify_parents_child_up (xlator_t *this)                  /* send notify to 'ctx->master' if it exists */                  xlator_notify (this->ctx->master, GF_EVENT_CHILD_UP,                                 this->graph); -        } +        } else { -        parent = this->parents; -        while (parent) { -                xlator_notify (parent->xlator, GF_EVENT_CHILD_UP, -                               this); -                parent = parent->next; +                parent = this->parents; +                while (parent) { +                        xlator_notify (parent->xlator, GF_EVENT_CHILD_UP, +                                       this); +                        parent = parent->next; +                }          }          return 0; diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index e64d8135fff..23d84ba0d84 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -888,20 +888,24 @@ out:  static gf_boolean_t  client_set_remote_options (char *value, xlator_t *this)  { -        clnt_conf_t  *conf          = NULL; -        char         *dup_value     = NULL; -        char         *host          = NULL; -        char         *subvol        = NULL; -        char         *host_dup      = NULL; -        char         *subvol_dup    = NULL; -        char         *tmp           = NULL; -        gf_boolean_t  ret           = _gf_false; +        clnt_conf_t  *conf            = NULL; +        char         *dup_value       = NULL; +        char         *host            = NULL; +        char         *subvol          = NULL; +        char         *host_dup        = NULL; +        char         *subvol_dup      = NULL; +        char         *remote_port_str = NULL; +        char         *tmp             = NULL; +        int           remote_port     = 0; +        gf_boolean_t  ret             = _gf_false;          conf = this->private;          dup_value = gf_strdup (value);          host = strtok_r (dup_value, ":", &tmp);          subvol = strtok_r (NULL, ":", &tmp); +        remote_port_str = strtok_r (NULL, ":", &tmp); +          if (!subvol) {                  gf_log (this->name, GF_LOG_WARNING,                          "proper value not passed as subvolume"); @@ -936,6 +940,17 @@ client_set_remote_options (char *value, xlator_t *this)                  goto out;          } +        remote_port = atoi (remote_port_str); +        GF_ASSERT (remote_port); + +        ret = dict_set_int32 (this->options, "remote-port", +                              remote_port); +        if (ret) { +                gf_log (this->name, GF_LOG_ERROR, +                        "failed to set remote-port to %d", remote_port); +                goto out; +        } +          ret = _gf_true;  out:          if (dup_value)  | 
