diff options
| author | Niels de Vos <ndevos@redhat.com> | 2016-07-19 12:40:35 +0200 | 
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2016-08-05 06:19:28 -0700 | 
| commit | 15d963d6ce416c29fa7eea225d20d979afdf315c (patch) | |
| tree | d8af04fa950dba04c215fb1a47b1212c04b4c8c2 /xlators/nfs/server/src/exports.c | |
| parent | 14b3a145a31e9f6760fb41bb104fcc2cf3bcc463 (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.
Cherry picked from commit e5221d288e41d29d89d52f8deab657d2285a852c:
> 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>
Change-Id: I38146a283561e1fa386cc841c43fd3b1e30a87ad
BUG: 1357834
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/14955
Smoke: Gluster Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: jiffin tony Thottan <jthottan@redhat.com>
Diffstat (limited to 'xlators/nfs/server/src/exports.c')
| -rw-r--r-- | xlators/nfs/server/src/exports.c | 10 | 
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) {  | 
