summaryrefslogtreecommitdiffstats
path: root/xlators/nfs/server/src/exports.c
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2016-06-26 18:50:27 +0200
committerJeff Darcy <jdarcy@redhat.com>2016-06-28 13:29:13 -0700
commite5221d288e41d29d89d52f8deab657d2285a852c (patch)
treed08b2f512dfdcf304a010443902719bec6ad7d4d /xlators/nfs/server/src/exports.c
parent10fa1bcce3b73f630dbc3241722c1af9dee4c414 (diff)
nfs: allow hostnames with dashes in exports/netgroups files
Hostnames with dashes (like "vagrant-testVM") are not correctly parsed when reading the exports/netgroups files. This bacomes obvious when running ./run-tests-in-vagrant.sh because it causes tests/basic/mount-nfs-auth.t and tests/basic/netgroup_parsing.t to fail. The regex for hostname (in exports) and the entry and hostname (netgroups) parsing does not include the "-" sign, and hence the hostnames are splitted at it. BUG: 1350237 Change-Id: I38146a283561e1fa386cc841c43fd3b1e30a87ad Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/14809 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 <jdarcy@redhat.com>
Diffstat (limited to 'xlators/nfs/server/src/exports.c')
-rw-r--r--xlators/nfs/server/src/exports.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/xlators/nfs/server/src/exports.c b/xlators/nfs/server/src/exports.c
index b000b7e8118..83aec254040 100644
--- a/xlators/nfs/server/src/exports.c
+++ b/xlators/nfs/server/src/exports.c
@@ -753,6 +753,8 @@ __exp_line_ng_host_str_parse (char *str, struct export_item **exp_item)
item_name = gf_strdup (str);
GF_CHECK_ALLOC (item_name, ret, out);
+ gf_msg_trace (GF_EXP, 0, "found hostname/netgroup: %s", item_name);
+
/* Initialize an export item for this */
item = _export_item_init ();
GF_CHECK_ALLOC (item, ret, free_and_out);
@@ -832,6 +834,8 @@ __exp_line_ng_parse (const char *line, dict_t **ng_dict)
goto out;
}
+ gf_msg_trace (GF_EXP, 0, "parsing line: %s", line);
+
while ((strmatch = parser_get_next_match (netgroup_parser))) {
if (!netgroups) {
/* Allocate a new dict to store the netgroups. */
@@ -842,6 +846,8 @@ __exp_line_ng_parse (const char *line, dict_t **ng_dict)
}
}
+ gf_msg_trace (GF_EXP, 0, "parsing netgroup: %s", strmatch);
+
ret = __exp_line_ng_host_str_parse (strmatch, &exp_ng);
if (ret != 0) {
@@ -927,6 +933,8 @@ __exp_line_host_parse (const char *line, dict_t **host_dict)
goto out;
}
+ gf_msg_trace (GF_EXP, 0, "parsing line: %s", line);
+
while ((strmatch = parser_get_next_match (hostname_parser))) {
if (!hosts) {
/* Allocate a new dictto store the netgroups. */
@@ -934,6 +942,8 @@ __exp_line_host_parse (const char *line, dict_t **host_dict)
GF_CHECK_ALLOC (hosts, ret, free_and_out);
}
+ gf_msg_trace (GF_EXP, 0, "parsing hostname: %s", strmatch);
+
ret = __exp_line_ng_host_str_parse (strmatch, &exp_host);
if (ret != 0) {