X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fnfs%2Fexports.c;h=dbb2da03be8980363cc242e43215baaee079e6d9;hp=078c806f3c4c672c8b94d4fef49e7b30ae48a68e;hb=0589851d086dae1d6b858d442367835591dd0107;hpb=a24504ade282e4f7e2dec379368a2fd41680f388 diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 078c806..dbb2da0 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -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;