From 113e2ac257cf75efd12fcfd47b7eed7ad08ee000 Mon Sep 17 00:00:00 2001 From: Mohamed Ashiq Date: Mon, 9 Nov 2015 20:43:17 +0530 Subject: 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 --volfile-server-transport unix --volfile-id 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. Signed-off-by: Mohamed Ashiq Signed-off-by: Humble Devassy Chirammal >Change-Id: I81b881e7ac5a3a4f2ac83c789c385cf547f0d53e >BUG: 1279484 >Signed-off-by: Mohamed Ashiq >Signed-off-by: Humble Devassy Chirammal >Reviewed-on: http://review.gluster.org/12556 >Reviewed-by: Atin Mukherjee >Reviewed-by: Niels de Vos >Tested-by: NetBSD Build System >Tested-by: Gluster Build System Change-Id: Ic3eeacc78aca3df3c07e5a9228043f3d7cdf094c BUG: 1285961 Reviewed-on: http://review.gluster.org/12769 Tested-by: Gluster Build System Tested-by: NetBSD Build System Reviewed-by: Atin Mukherjee --- glusterfsd/src/glusterfsd-mgmt.c | 12 ++++++++---- glusterfsd/src/glusterfsd.c | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'glusterfsd') diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index e320f76833b..c1ab934d31f 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -2105,6 +2105,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; @@ -2112,11 +2113,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 c86f5f02617..e41064a1372 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -101,8 +101,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, -- cgit