X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fmountd%2Fcache.c;h=15100d499e91edb442130d0afc1123108ce88e5a;hp=d0688432b04aa8de76f1f636e137eeb343ce98e5;hb=b8bee9413329bb56dd2dfff4879e4b03d2e0c787;hpb=c57ae7ee252e665fcc515ae938f0e78ce1d736e9 diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index d068843..15100d4 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -30,6 +30,7 @@ #include "mountd.h" #include "xmalloc.h" #include "fsloc.h" +#include "pseudoflavors.h" #ifdef USE_BLKID #include "blkid/blkid.h" @@ -518,6 +519,25 @@ static void write_fsloc(FILE *f, struct exportent *ep, char *path) release_replicas(servers); } +static void write_secinfo(FILE *f, struct exportent *ep) +{ + struct sec_entry *p; + + for (p = ep->e_secinfo; p->flav; p++) + ; /* Do nothing */ + if (p == ep->e_secinfo) { + /* There was no sec= option */ + return; + } + qword_print(f, "secinfo"); + qword_printint(f, p - ep->e_secinfo); + for (p = ep->e_secinfo; p->flav; p++) { + qword_printint(f, p->flav->fnum); + qword_printint(f, p->flags); + } + +} + static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *exp) { qword_print(f, domain); @@ -529,6 +549,7 @@ static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *ex qword_printint(f, exp->e_anongid); qword_printint(f, exp->e_fsid); write_fsloc(f, exp, path); + write_secinfo(f, exp); #if USE_BLKID if (exp->e_uuid == NULL) { char u[16]; @@ -628,8 +649,7 @@ void nfsd_export(FILE *f) "Cannot export %s, possibly unsupported filesystem" " or fsid= required", path); dump_to_cache(f, dom, path, NULL); - } else - mountlist_add(dom, path); + } } else { dump_to_cache(f, dom, path, NULL); } @@ -708,7 +728,6 @@ int cache_export_ent(char *domain, struct exportent *exp, char *path) "Cannot export %s, possibly unsupported filesystem or" " fsid= required", exp->e_path); } - mountlist_add(domain, exp->e_path); while (err == 0 && (exp->e_flags & NFSEXP_CROSSMOUNT) && path) { /* really an 'if', but we can break out of