diff options
author | hjl <hjl> | 2000-10-18 06:16:02 +0000 |
---|---|---|
committer | hjl <hjl> | 2000-10-18 06:16:02 +0000 |
commit | a19d80373216f3257c1b5ef59e41279f94744377 (patch) | |
tree | fc391b851dd5aeabac15b737ed9a00b1f3759146 | |
parent | 7bcbf97acfef86109f99867fa744e3e216dd83b6 (diff) | |
download | nfs-utils-a19d80373216f3257c1b5ef59e41279f94744377.tar.gz nfs-utils-a19d80373216f3257c1b5ef59e41279f94744377.tar.xz nfs-utils-a19d80373216f3257c1b5ef59e41279f94744377.zip |
2000-10-17 Scott McDermott <mcdermot@questra.com>
* support/export/client.c (client_init): Support CIDR netmask
in /etc/exports.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | support/export/client.c | 15 |
2 files changed, 19 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2000-10-17 Scott McDermott <mcdermot@questra.com> + + * support/export/client.c (client_init): Support CIDR netmask + in /etc/exports. + 2000-10-11 H.J. Lu <hjl@lucon.org> * aclocal.m4 (AC_TCP_WRAPPER): Fix a typo. diff --git a/support/export/client.c b/support/export/client.c index a7f9d02..3afd4f2 100644 --- a/support/export/client.c +++ b/support/export/client.c @@ -118,7 +118,20 @@ client_init(nfs_client *clp, const char *hname, struct hostent *hp) *cp = '\0'; clp->m_addrlist[0].s_addr = inet_addr(clp->m_hostname); - clp->m_addrlist[1].s_addr = inet_addr(cp+1); + if (strchr(cp + 1, '.')) { + clp->m_addrlist[1].s_addr = inet_addr(cp+1); + } + else { + int netmask = atoi(cp + 1); + if (0 < netmask && netmask <= 32) { + clp->m_addrlist[1].s_addr = + htonl ((uint32_t) ~0 << (32 - netmask)); + } + else { + xlog(L_FATAL, "invalid netmask `%s' for %s", + cp + 1, clp->m_hostname); + } + } *cp = '/'; clp->m_naddr = 0; } else if (!hp) { |