diff options
| author | Kaushik BV <kaushikbv@gluster.com> | 2011-07-15 01:20:16 +0000 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2011-07-17 07:47:06 -0700 | 
| commit | 0074cda3791d29e1a0290bf29c008ce77b73d785 (patch) | |
| tree | 6ba1063dba86dc3f58bf1bf090ae9399c23b8105 | |
| parent | c9b5f595fa6471997a90113bd7f5a708f1bc67a4 (diff) | |
protocol/client: changes in volume_options to assist
Signed-off-by: Kaushik BV <kaushikbv@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2041 (volume set help option)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2041
| -rw-r--r-- | xlators/protocol/client/src/client.c | 49 | 
1 files changed, 40 insertions, 9 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index 4f7ee9cc12f..0231bec63ee 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -1671,21 +1671,33 @@ notify (xlator_t *this, int32_t event, void *data, ...)  int  build_client_config (xlator_t *this, clnt_conf_t *conf)  { -        int ret = 0; +        int                     ret = 0; +        char                    *def_val = NULL;          if (!conf)                  return -1; +        if (xlator_get_volopt_info (&this->volume_options, "frame-timeout", +                                    &def_val, NULL)) { +                gf_log (this->name, GF_LOG_ERROR, "Default value of " +                         "frame-timeout not found"); +                ret = -1; +                goto out; +        } else { +                if (gf_string2int32 (def_val, &conf->rpc_conf.rpc_timeout)) { +                        gf_log (this->name, GF_LOG_ERROR, "Default value of " +                                 "frame-timeout corrupt"); +                        ret = -1; +                        goto out; +                } +        } +          ret = dict_get_int32 (this->options, "frame-timeout",                                &conf->rpc_conf.rpc_timeout);          if (ret >= 0) {                  gf_log (this->name, GF_LOG_DEBUG,                          "setting frame-timeout to %d",                          conf->rpc_conf.rpc_timeout); -        } else { -                gf_log (this->name, GF_LOG_DEBUG, -                        "defaulting frame-timeout to 30mins"); -                conf->rpc_conf.rpc_timeout = 1800;          }          ret = dict_get_int32 (this->options, "remote-port", @@ -1698,15 +1710,27 @@ build_client_config (xlator_t *this, clnt_conf_t *conf)                          "defaulting remote-port to 'auto'");          } + +        if (xlator_get_volopt_info (&this->volume_options, "ping-timeout", +                                    &def_val, NULL)) { +                gf_log (this->name, GF_LOG_ERROR, "Default value of " +                         "ping-timeout not found"); +                ret = -1; +                goto out; +        } else { +                if (gf_string2int32 (def_val, &conf->opt.ping_timeout)) { +                        gf_log (this->name, GF_LOG_ERROR, "Default value of " +                                 "ping-timeout corrupt"); +                        ret = -1; +                        goto out; +                } +        } +          ret = dict_get_int32 (this->options, "ping-timeout",                                &conf->opt.ping_timeout);          if (ret >= 0) {                  gf_log (this->name, GF_LOG_DEBUG,                          "setting ping-timeout to %d", conf->opt.ping_timeout); -        } else { -                gf_log (this->name, GF_LOG_DEBUG, -                        "defaulting ping-timeout to 42"); -                conf->opt.ping_timeout = GF_UNIVERSAL_ANSWER;          }          ret = dict_get_str (this->options, "remote-subvolume", @@ -2242,11 +2266,18 @@ struct volume_options options[] = {            .type  = GF_OPTION_TYPE_TIME,            .min   = 0,            .max   = 86400, +          .default_value = "1800", +          .description = "Time frame after which the (file) operation would be " +                         "declared as dead, if the server does not respond for " +                         "a particular (file) operation."          },          { .key   = {"ping-timeout"},            .type  = GF_OPTION_TYPE_TIME,            .min   = 1,            .max   = 1013, +          .default_value = "42", +          .description = "Time duration for which the client waits to " +                         "check if the server is responsive."          },          { .key   = {"client-bind-insecure"},            .type  = GF_OPTION_TYPE_BOOL  | 
