summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaushik BV <kaushikbv@gluster.com>2011-07-15 01:20:16 +0000
committerAnand Avati <avati@gluster.com>2011-07-17 07:47:06 -0700
commit0074cda3791d29e1a0290bf29c008ce77b73d785 (patch)
tree6ba1063dba86dc3f58bf1bf090ae9399c23b8105
parentc9b5f595fa6471997a90113bd7f5a708f1bc67a4 (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.c49
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