commit b5c7be2fd69c027f5de9772e117885cb1c89f907 from: rsc date: Fri Mar 03 16:34:49 2006 UTC change Tcreate message in 9P2000.u commit - 1190a7aa7a1dba5964688c4bb8ee09fc8930c488 commit + b5c7be2fd69c027f5de9772e117885cb1c89f907 blob - dc46cb570af12133d5ac7afba50ea8ced0ec4b70 blob + 58323b6ba1cdef0f07cada6e20d9062136512d63 --- include/fcall.h +++ include/fcall.h @@ -44,6 +44,7 @@ struct Fcall /* 9P2000.u extensions */ int errornum; /* Rerror */ + char *extension; /* Tcreate */ } Fcall; blob - 01a9f86dc9afae0af388ae0af98ab5999742f983 blob + 06c95f55387c6e287abefc28fa4f83dc4e93dc7b --- src/cmd/9pserve.c +++ src/cmd/9pserve.c @@ -449,6 +449,12 @@ connthread(void *arg) } m->afid->ref++; break; + case Tcreate: + if(dotu && !c->dotu && (m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET))){ + err(m, "unsupported file type"); + continue; + } + goto caseTopen; case Topenfd: if(m->tx.mode&~(OTRUNC|3)){ err(m, "bad openfd mode"); @@ -458,7 +464,7 @@ connthread(void *arg) m->tx.type = Topen; m->tpkt[4] = Topen; /* fall through */ - case Tcreate: + caseTopen: case Topen: case Tclunk: case Tread: blob - 23b688ab36d98764716f4af4d75828493135e93d blob + 3df83da2d38a93ca04a58e78258d4c69b8268d08 --- src/lib9/convM2S.c +++ src/lib9/convM2S.c @@ -161,6 +161,8 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) p += BIT32SZ; f->mode = GBIT8(p); p += BIT8SZ; + if(dotu) + p = gstring(p, ep, &f->extension); break; case Tread: blob - b59d95b4143700c700f29936839ba2aefc98fcc0 blob + b01a022165555faa63555defc0575a03e5bad9eb --- src/lib9/convS2M.c +++ src/lib9/convS2M.c @@ -102,6 +102,8 @@ sizeS2Mu(Fcall *f, int dotu) n += stringsz(f->name); n += BIT32SZ; n += BIT8SZ; + if(dotu) + n += stringsz(f->extension); break; case Tread: @@ -287,6 +289,8 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) p += BIT32SZ; PBIT8(p, f->mode); p += BIT8SZ; + if(dotu) + p = pstring(p, f->extension); break; case Tread: