]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/exports.c
2001-02-14 H.J. Lu <hjl@lucon.org>
[nfs-utils.git] / support / nfs / exports.c
index 078c806f3c4c672c8b94d4fef49e7b30ae48a68e..dbb2da03be8980363cc242e43215baaee079e6d9 100644 (file)
@@ -98,6 +98,8 @@ getexportent(void)
        if (ok == 0)
                exp[0] = '\0';
        if ((opt = strchr(exp, '(')) != NULL) {
+               if (opt == exp) 
+                       xlog(L_WARNING, "No host name given with %s %s, suggest *%s to avoid warning", ee.e_path, exp, exp);
                *opt++ = '\0';
                if (!(sp = strchr(opt, ')')) || sp[1] != '\0') {
                        syntaxerr("bad option list");
@@ -106,6 +108,8 @@ getexportent(void)
                *sp = '\0';
                if (parseopts(opt, &ee) < 0)
                        return NULL;
+       } else {
+           xlog(L_WARNING, "No options for %s %s: suggest %s() to avoid warning", ee.e_path, exp, exp);
        }
        if (strlen(exp) >= sizeof(ee.e_hostname)) {
                syntaxerr("client name too long");
@@ -151,6 +155,8 @@ putexportent(struct exportent *ep)
                                "" : "no_");
        fprintf(fp, "%ssubtree_check,", (ep->e_flags & NFSEXP_NOSUBTREECHECK)?
                "no_" : "");
+       fprintf(fp, "%ssecure_locks,", (ep->e_flags & NFSEXP_NOAUTHNLM)?
+               "in" : "");
 
        fprintf(fp, "mapping=");
        switch (ep->e_maptype) {
@@ -307,6 +313,14 @@ parseopts(char *cp, struct exportent *ep)
                        ep->e_flags &= ~NFSEXP_NOSUBTREECHECK;
                else if (strcmp(opt, "no_subtree_check") == 0)
                        ep->e_flags |= NFSEXP_NOSUBTREECHECK;
+               else if (strcmp(opt, "auth_nlm") == 0)
+                       ep->e_flags &= ~NFSEXP_NOAUTHNLM;
+               else if (strcmp(opt, "no_auth_nlm") == 0)
+                       ep->e_flags |= NFSEXP_NOAUTHNLM;
+               else if (strcmp(opt, "secure_locks") == 0)
+                       ep->e_flags &= ~NFSEXP_NOAUTHNLM;
+               else if (strcmp(opt, "insecure_locks") == 0)
+                       ep->e_flags |= NFSEXP_NOAUTHNLM;
                else if (strncmp(opt, "mapping=", 8) == 0)
                        ep->e_maptype = parsemaptype(opt+8);
                else if (strcmp(opt, "map_identity") == 0)      /* old style */
@@ -384,8 +398,8 @@ parsesquash(char *list, int **idp, int *lenp, char **ep)
                cp++;
        } while(1);
 
-       if (*cp == ',') *ep = cp+1;
-       
+       if (**ep == ',') (*ep)++;
+
        *lenp = len;
        *idp = id;
        return 1;