diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-02-22 22:44:01 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-02-22 22:44:01 +0100 |
commit | b31cc134e7cca59b8dd67bb30271b80f554e0da0 (patch) | |
tree | 727a4f045d2ea1b4842e13b1a693eb99b9e40ac3 /sys/src/cmd/ndb | |
parent | 258fe87faf0a64947bb91c8ed93f8ea378a36f83 (diff) |
ndb/dns: initialize unknown fids to point to the root qid
the dns file service can be restarted, which causes it to forget
all fid state. given the simple file system structure of the dns
service (just a single dns file), we can assume that rpcs
on a unknown fid refers to the root, so the mountpoint will stay
valid and /net/dns can be reopend avoiding the need for a remount
of the dns service after restart.
Diffstat (limited to 'sys/src/cmd/ndb')
-rw-r--r-- | sys/src/cmd/ndb/dns.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/src/cmd/ndb/dns.c b/sys/src/cmd/ndb/dns.c index 65befe7ae..3b163ca72 100644 --- a/sys/src/cmd/ndb/dns.c +++ b/sys/src/cmd/ndb/dns.c @@ -320,7 +320,10 @@ newfid(int fid, int needunused) } mf = emalloc(sizeof(*mf)); mf->fid = fid; - mf->user = estrdup("dummy"); + mf->qid.vers = vers; + mf->qid.type = QTDIR; + mf->qid.path = 0LL; + mf->user = estrdup("none"); mf->next = mfalloc.inuse; mfalloc.inuse = mf; unlock(&mfalloc); @@ -355,7 +358,7 @@ copyfid(Mfile *mf, int fid) if(nmf == nil) return nil; nmf->fid = fid; - free(nmf->user); /* estrdup("dummy") */ + free(nmf->user); /* estrdup("none") */ nmf->user = estrdup(mf->user); nmf->qid.type = mf->qid.type; nmf->qid.path = mf->qid.path; |