diff options
Diffstat (limited to 'xlators/nfs/server/src')
| -rw-r--r-- | xlators/nfs/server/src/exports.h | 2 | ||||
| -rw-r--r-- | xlators/nfs/server/src/mount3.c | 11 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs.c | 24 | 
3 files changed, 35 insertions, 2 deletions
diff --git a/xlators/nfs/server/src/exports.h b/xlators/nfs/server/src/exports.h index bc9af2f0b8b..0079b9a3deb 100644 --- a/xlators/nfs/server/src/exports.h +++ b/xlators/nfs/server/src/exports.h @@ -22,7 +22,7 @@  #define GF_EXP GF_NFS"-exports"  #define NETGROUP_REGEX_PATTERN  "(@([a-zA-Z0-9\\(=, .])+)())" -#define HOSTNAME_REGEX_PATTERN  "[[:space:]]([a-zA-Z0-9.\\(=,*/)-]+)" +#define HOSTNAME_REGEX_PATTERN  "[[:space:]]([a-zA-Z0-9.\\(=,*/:)-]+)"  #define OPTIONS_REGEX_PATTERN   "([a-zA-Z0-9=\\.]+)"  #define NETGROUP_MAX_LEN        128 diff --git a/xlators/nfs/server/src/mount3.c b/xlators/nfs/server/src/mount3.c index 3f6415dba85..2d022263aca 100644 --- a/xlators/nfs/server/src/mount3.c +++ b/xlators/nfs/server/src/mount3.c @@ -1907,7 +1907,7 @@ _mnt3_get_host_from_peer (const char *peer_addr)          size_t host_len    = 0;          char   *colon      = NULL; -        colon = strchr (peer_addr, ':'); +        colon = strrchr (peer_addr, ':');          if (!colon) {                  gf_msg (GF_MNT, GF_LOG_ERROR, 0, NFS_MSG_BAD_PEER,                          "Bad peer %s", peer_addr); @@ -4152,6 +4152,15 @@ mnt1svc_init (xlator_t *nfsx)                  }          } +#ifdef IPV6_DEFAULT +        ret = dict_set_str (options, "transport.address-family", "inet6"); +        if (ret == -1) { +                gf_log (GF_NFS, GF_LOG_ERROR, +                        "dict_set_str error when trying to enable ipv6"); +              goto err; +        } +#endif +          ret = rpcsvc_create_listeners (nfs->rpcsvc, options, nfsx->name);          if (ret == -1) {                  gf_msg (GF_NFS, GF_LOG_ERROR, errno, diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index 3e7199c036d..1973b95c5a5 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -204,6 +204,9 @@ nfs_program_register_portmap_all (struct nfs_state *nfs)                  if (nfs->override_portnum)                          prog->progport = nfs->override_portnum;                  (void) rpcsvc_program_register_portmap (prog, prog->progport); +#ifdef IPV6_DEFAULT +                (void) rpcsvc_program_register_rpcbind6 (prog, prog->progport); +#endif          }          return (0); @@ -339,6 +342,17 @@ nfs_init_versions (struct nfs_state *nfs, xlator_t *this)                                  if (version->required)                                          goto err;                          } +#ifdef IPV6_DEFAULT +                        ret = rpcsvc_program_register_rpcbind6 (prog, +                                                                prog->progport); +                        if (ret == -1) { +                                gf_msg (GF_NFS, GF_LOG_ERROR, 0, +                                        NFS_MSG_PGM_REG_FAIL, +                                        "Program (ipv6) %s registration failed", +                                        prog->progname); +                                goto err; +                        } +#endif                  }          } @@ -901,6 +915,16 @@ nfs_init_state (xlator_t *this)                  }          } +#ifdef IPV6_DEFAULT +        ret = dict_set_str (this->options, "transport.address-family", +                                           "inet6"); +        if (ret == -1) { +                gf_log (GF_NFS, GF_LOG_ERROR, "dict_set_str error"); +                goto free_foppool; +        } +#endif + +          /* Right only socket support exists between nfs client and           * gluster nfs, so we can set default value as socket           */  | 
