X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fnfs%2Fexports.c;h=7194c08e20b20652196565fbefc859470b8ac510;hp=4d8665c6be475ba905435fa2074078194f200909;hb=e873a11144f5cbfa6b54a3b2eb3af131cbd5ebbd;hpb=d38ea02d0e4bcdc4e0114567028596f7bcba45b9 diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 4d8665c..7194c08 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -87,8 +87,8 @@ getexportent(int fromkernel, int fromexports) ee.e_flags &= ~NFSEXP_GATHERED_WRITES; } ee.e_maptype = CLE_MAP_IDENT; - ee.e_anonuid = -2; - ee.e_anongid = -2; + ee.e_anonuid = 65534; + ee.e_anongid = 65534; ee.e_squids = NULL; ee.e_sqgids = NULL; ee.e_mountpoint = NULL; @@ -161,7 +161,7 @@ putexportent(struct exportent *ep) fp = efp->x_fp; for (i=0; esc[i]; i++) - if (iscntrl(esc[i]) || esc[i] == '"' || esc[i] == '\\'|| isspace(esc[i])) + if (iscntrl(esc[i]) || esc[i] == '"' || esc[i] == '\\' || esc[i] == '#' || isspace(esc[i])) fprintf(fp, "\\%03o", esc[i]); else fprintf(fp, "%c", esc[i]); @@ -173,7 +173,7 @@ putexportent(struct exportent *ep) "" : "no_"); fprintf(fp, "%shide,", (ep->e_flags & NFSEXP_NOHIDE)? "no" : ""); - fprintf(fp, "%scrossmnt,", (ep->e_flags & NFSEXP_CROSSMNT)? + fprintf(fp, "%scrossmnt,", (ep->e_flags & NFSEXP_CROSSMOUNT)? "" : "no"); fprintf(fp, "%ssecure,", (ep->e_flags & NFSEXP_INSECURE_PORT)? "in" : ""); @@ -185,6 +185,8 @@ putexportent(struct exportent *ep) "no_" : ""); fprintf(fp, "%ssecure_locks,", (ep->e_flags & NFSEXP_NOAUTHNLM)? "in" : ""); + fprintf(fp, "%sacl,", (ep->e_flags & NFSEXP_NOACL)? + "no_" : ""); if (ep->e_flags & NFSEXP_FSID) { fprintf(fp, "fsid=%d,", ep->e_fsid); } @@ -263,8 +265,8 @@ mkexportent(char *hname, char *path, char *options) ee.e_flags = EXPORT_DEFAULT_FLAGS; ee.e_maptype = CLE_MAP_IDENT; - ee.e_anonuid = -2; - ee.e_anongid = -2; + ee.e_anonuid = 65534; + ee.e_anongid = 65534; ee.e_squids = NULL; ee.e_sqgids = NULL; ee.e_mountpoint = NULL; @@ -347,9 +349,9 @@ parseopts(char *cp, struct exportent *ep, int warn) else if (!strcmp(opt, "hide")) ep->e_flags &= ~NFSEXP_NOHIDE; else if (!strcmp(opt, "crossmnt")) - ep->e_flags |= NFSEXP_CROSSMNT; + ep->e_flags |= NFSEXP_CROSSMOUNT; else if (!strcmp(opt, "nocrossmnt")) - ep->e_flags &= ~NFSEXP_CROSSMNT; + ep->e_flags &= ~NFSEXP_CROSSMOUNT; else if (!strcmp(opt, "wdelay")) ep->e_flags |= NFSEXP_GATHERED_WRITES; else if (!strcmp(opt, "no_wdelay")) @@ -374,6 +376,10 @@ parseopts(char *cp, struct exportent *ep, int warn) ep->e_flags &= ~NFSEXP_NOAUTHNLM; else if (strcmp(opt, "insecure_locks") == 0) ep->e_flags |= NFSEXP_NOAUTHNLM; + else if (strcmp(opt, "acl") == 0) + ep->e_flags &= ~NFSEXP_NOACL; + else if (strcmp(opt, "no_acl") == 0) + ep->e_flags |= NFSEXP_NOACL; else if (strncmp(opt, "mapping=", 8) == 0) ep->e_maptype = parsemaptype(opt+8); else if (strcmp(opt, "map_identity") == 0) /* old style */ @@ -442,7 +448,7 @@ bad_option: ep->e_nsqgids = nsqgids; out: - if (warn && !had_sync_opt) + if (warn && !had_sync_opt && !(ep->e_flags & NFSEXP_READONLY)) xlog(L_WARNING, "%s [%d]: No 'sync' or 'async' option specified for export \"%s:%s\".\n" " Assuming default behaviour ('sync').\n" " NOTE: this default has changed from previous versions\n",