diff options
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/factotum/dat.h | 2 | ||||
-rw-r--r-- | src/cmd/factotum/fs.c | 10 | ||||
-rw-r--r-- | src/cmd/factotum/main.c | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/cmd/factotum/dat.h b/src/cmd/factotum/dat.h index 26142e28..1d4a3da2 100644 --- a/src/cmd/factotum/dat.h +++ b/src/cmd/factotum/dat.h @@ -221,5 +221,7 @@ extern int xiowrite(int, void*, int); extern int xioasrdresp(int, void*, int); extern int xioasgetticket(int, char*, char*); +extern int extrafactotumdir; + int havesecstore(void); int secstorefetch(void); diff --git a/src/cmd/factotum/fs.c b/src/cmd/factotum/fs.c index 1d801b42..f9ad785b 100644 --- a/src/cmd/factotum/fs.c +++ b/src/cmd/factotum/fs.c @@ -15,6 +15,8 @@ enum Qconv, }; +static int qtop; + Qid mkqid(int type, int path) { @@ -106,7 +108,7 @@ fswalk1(Fid *fid, char *name, Qid *qid) return nil; } if(strcmp(name, "..") == 0){ - *qid = mkqid(QTDIR, Qroot); + *qid = mkqid(QTDIR, qtop); fid->qid = *qid; return nil; } @@ -482,7 +484,7 @@ fsproc(void *v) static void fsattach(Req *r) { - r->fid->qid = mkqid(QTDIR, Qroot); + r->fid->qid = mkqid(QTDIR, qtop); r->ofcall.qid = r->fid->qid; respond(r, nil); } @@ -505,6 +507,10 @@ fsstart(Srv *s) { USED(s); + if(extrafactotumdir) + qtop = Qroot; + else + qtop = Qfactotum; creq = chancreate(sizeof(Req*), 0); cfid = chancreate(sizeof(Fid*), 0); cfidr = chancreate(sizeof(Fid*), 0); diff --git a/src/cmd/factotum/main.c b/src/cmd/factotum/main.c index a2647da9..a258684d 100644 --- a/src/cmd/factotum/main.c +++ b/src/cmd/factotum/main.c @@ -1,6 +1,7 @@ #include "std.h" #include "dat.h" +int extrafactotumdir; int debug; int trysecstore = 1; char *factname = "factotum"; @@ -57,6 +58,9 @@ threadmain(int argc, char *argv[]) case 'n': trysecstore = 0; break; + case 'x': + extrafactotumdir = 1; + break; }ARGEND if(argc != 0) |