aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/factotum/dat.h2
-rw-r--r--src/cmd/factotum/fs.c10
-rw-r--r--src/cmd/factotum/main.c4
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)