summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src/server-handshake.c
diff options
context:
space:
mode:
authorAtin Mukherjee <amukherj@redhat.com>2017-03-20 05:15:25 +0530
committerAtin Mukherjee <amukherj@redhat.com>2017-03-30 01:56:59 -0400
commit0bd58241143e91b683a3e5c4335aabf9eed537fe (patch)
treef9d2a4ca7d25dae136addadbcf076bde999b9d45 /xlators/protocol/server/src/server-handshake.c
parent57341d25db8b16e8a1fc7d40f6f56b5200f3547d (diff)
protocol : fix auth-allow regression
One of the brick multiplexing patches (commit 1a95fc3) had some changes in gf_auth () & server_setvolume () functions which caused auth-allow feature to be broken. mount doesn't succeed even if it's part of the auth-allow list. This fix does the following: 1. Reintroduce the peer-info data back in gf_auth () so that fnmatch has valid input and it can decide on the result. 2. config-params dict should capture key values pairs for all the bricks in case brick multiplexing is on. In case brick multiplexing isn't enabled, then config-params should carry attributes from protocol/server such that all rpc auth related attributes stay in tact in the dictionary. Change-Id: I007c4c6d78620a896b8858a29459a77de8b52412 BUG: 1433815 Signed-off-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-on: https://review.gluster.org/16920 Tested-by: Jeff Darcy <jeff@pl.atyp.us> Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us> Reviewed-by: MOHIT AGRAWAL <moagrawa@redhat.com>
Diffstat (limited to 'xlators/protocol/server/src/server-handshake.c')
-rw-r--r--xlators/protocol/server/src/server-handshake.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c
index 249dde7..64267f2 100644
--- a/xlators/protocol/server/src/server-handshake.c
+++ b/xlators/protocol/server/src/server-handshake.c
@@ -425,6 +425,10 @@ server_setvolume (rpcsvc_request_t *req)
}
this = req->svc->xl;
+ /* this is to ensure config_params is populated with the first brick
+ * details at first place if brick multiplexing is enabled
+ */
+ config_params = dict_copy_with_ref (this->options, NULL);
buf = memdup (args.dict.dict_val, args.dict.dict_len);
if (buf == NULL) {
@@ -484,7 +488,7 @@ server_setvolume (rpcsvc_request_t *req)
goto fail;
}
- config_params = dict_copy_with_ref (xl->options, NULL);
+ config_params = dict_copy_with_ref (xl->options, config_params);
conf = this->private;
if (conf->parent_up == _gf_false) {