summaryrefslogtreecommitdiffstats
path: root/glusterfsd
diff options
context:
space:
mode:
authorMohamed Ashiq <mliyazud@redhat.com>2015-11-09 20:43:17 +0530
committerAtin Mukherjee <amukherj@redhat.com>2015-11-19 19:59:36 -0800
commit7fbc38531acbc39369d3b91ba126fc4147ab89d1 (patch)
tree73354e8a6ba640e79efa355de94d180e3a654306 /glusterfsd
parent097e131481d25e5b1f859f4ea556b8bf56155472 (diff)
glusterfsd: To support volfile-server-transport type "unix"
glusterfsd fails if the glusterd is bind to specific-IP address. This patch helps glusterfsd to get the volfile using Unix domain socket. glusterfs -s <unix socket path> --volfile-server-transport unix --volfile-id <volume-name> <mount-point> The patch checks if the volfile-server-transport is of type "unix", If It is then uses rpc_transport_unix_options_build to get the volfile. Change-Id: I81b881e7ac5a3a4f2ac83c789c385cf547f0d53e BUG: 1279484 Signed-off-by: Mohamed Ashiq <mliyazud@redhat.com> Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com> Reviewed-on: http://review.gluster.org/12556 Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'glusterfsd')
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c12
-rw-r--r--glusterfsd/src/glusterfsd.c4
2 files changed, 10 insertions, 6 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c
index 2e44f94b1bd..4a3e08a31b0 100644
--- a/glusterfsd/src/glusterfsd-mgmt.c
+++ b/glusterfsd/src/glusterfsd-mgmt.c
@@ -2101,6 +2101,7 @@ glusterfs_mgmt_init (glusterfs_ctx_t *ctx)
char *host = NULL;
cmd_args = &ctx->cmd_args;
+ GF_VALIDATE_OR_GOTO (THIS->name, cmd_args->volfile_server, out);
if (ctx->mgmt)
return 0;
@@ -2108,11 +2109,14 @@ glusterfs_mgmt_init (glusterfs_ctx_t *ctx)
if (cmd_args->volfile_server_port)
port = cmd_args->volfile_server_port;
- host = "localhost";
- if (cmd_args->volfile_server)
- host = cmd_args->volfile_server;
+ host = cmd_args->volfile_server;
- ret = rpc_transport_inet_options_build (&options, host, port);
+ if (cmd_args->volfile_server_transport &&
+ !strcmp (cmd_args->volfile_server_transport, "unix")) {
+ ret = rpc_transport_unix_options_build (&options, host, 0);
+ } else {
+ ret = rpc_transport_inet_options_build (&options, host, port);
+ }
if (ret)
goto out;
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index f767e28b18d..bbaca1e7277 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -96,8 +96,8 @@ static error_t parse_opts (int32_t key, char *arg, struct argp_state *_state);
static struct argp_option gf_options[] = {
{0, 0, 0, 0, "Basic options:"},
{"volfile-server", ARGP_VOLFILE_SERVER_KEY, "SERVER", 0,
- "Server to get the volume file from. This option overrides "
- "--volfile option"},
+ "Server to get the volume file from. Unix domain socket path when "
+ "transport type 'unix'. This option overrides --volfile option"},
{"volfile", ARGP_VOLUME_FILE_KEY, "VOLFILE", 0,
"File to use as VOLUME_FILE"},
{"spec-file", ARGP_VOLUME_FILE_KEY, "VOLFILE", OPTION_HIDDEN,