diff options
author | shishir gowda <shishirng@gluster.com> | 2011-05-02 03:47:39 +0000 |
---|---|---|
committer | Anand Avati <avati@gluster.com> | 2011-05-12 09:29:21 -0700 |
commit | 357df32e16dd21e7aedb699c7bd99cac9b95a040 (patch) | |
tree | e2d7c7d553a527396790742f1209ff9121dc4477 /rpc/rpc-lib | |
parent | afad4e2d64c6bb01ff5dceb29b20ebcc02c1747b (diff) |
Introduce client-allow-insecure xlator-option.
Allows glusterfs clients to bind to any port and does not restrict it
to 1024.
This is a xlator-option only, and is not supported in volume set cmd.
The reason is, few clients may choose this, and few may not. Hence
only supported as a xlator-option during mount time.
For this to work with glusterfs, server.allow-insecure should be set
to on
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2868 (Add xlator-option to support insecure-bind for clients)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2868
Diffstat (limited to 'rpc/rpc-lib')
-rw-r--r-- | rpc/rpc-lib/src/rpc-transport.c | 16 | ||||
-rw-r--r-- | rpc/rpc-lib/src/rpc-transport.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/rpc-transport.c b/rpc/rpc-lib/src/rpc-transport.c index 87011470b89..3db73f652bb 100644 --- a/rpc/rpc-lib/src/rpc-transport.c +++ b/rpc/rpc-lib/src/rpc-transport.c @@ -575,6 +575,7 @@ rpc_transport_load (glusterfs_ctx_t *ctx, dict_t *options, char *trans_name) int32_t ret = -1; int8_t is_tcp = 0, is_unix = 0, is_ibsdp = 0; volume_opt_list_t *vol_opt = NULL; + gf_boolean_t client_bind_insecure = _gf_false; GF_VALIDATE_OR_GOTO("rpc-transport", options, fail); GF_VALIDATE_OR_GOTO("rpc-transport", ctx, fail); @@ -639,6 +640,21 @@ rpc_transport_load (glusterfs_ctx_t *ctx, dict_t *options, char *trans_name) } } + ret = dict_get_str (options, "client-bind-insecure", &type); + if (ret == 0) { + ret = gf_string2boolean (type, &client_bind_insecure); + if (ret < 0) { + gf_log ("rcp-transport", GF_LOG_WARNING, + "client-bind-insecure option %s is not a" + " valid bool option", type); + goto fail; + } + if (_gf_true == client_bind_insecure) + trans->client_bind_insecure = 1; + } else { + trans->client_bind_insecure = 0; + } + ret = dict_get_str (options, "transport-type", &type); if (ret < 0) { gf_log ("rpc-transport", GF_LOG_ERROR, diff --git a/rpc/rpc-lib/src/rpc-transport.h b/rpc/rpc-lib/src/rpc-transport.h index e6883885757..59bec99fd4e 100644 --- a/rpc/rpc-lib/src/rpc-transport.h +++ b/rpc/rpc-lib/src/rpc-transport.h @@ -211,6 +211,7 @@ struct rpc_transport { uint64_t total_bytes_write; struct list_head list; + int client_bind_insecure; }; struct rpc_transport_ops { |