commit 74dd0321756f968c595487f694fbe74ad00f0624 from: Russ Cox date: Tue Dec 07 18:34:11 2010 UTC delete 9P2000.u thanks to Erik Quanstrom R=rsc http://codereview.appspot.com/3469042 commit - d10a7ed9a899c17d142021298dd45b4ea9ae6b84 commit + 74dd0321756f968c595487f694fbe74ad00f0624 blob - a72d460c41b079bc83078cb5c04dc8a87b4af7fa blob + 57caac28f5fbc7b9abbe8f29e31505b5bd268a3c --- include/9p.h +++ include/9p.h @@ -204,7 +204,6 @@ struct Srv { int nopipe; int srvfd; int leavefdsopen; /* magic for acme win */ - int dotu; int foreground; /* run in foreground */ int fake; blob - 1e32b339cb59b81e481a4ea9722eea740fa7ed33 blob + cee9b883b5fc317378e8b2cc1e3f8da9aa07243e --- include/fcall.h +++ include/fcall.h @@ -122,15 +122,6 @@ uint convM2D(uchar*, uint, Dir*, char*); uint convD2M(Dir*, uchar*, uint); uint sizeD2M(Dir*); -uint convM2Su(uchar*, uint, Fcall*, int); -uint convS2Mu(Fcall*, uchar*, uint, int); -uint sizeS2Mu(Fcall*, int); - -int statchecku(uchar *abuf, uint nbuf, int); -uint convM2Du(uchar*, uint, Dir*, char*, int); -uint convD2Mu(Dir*, uchar*, uint, int); -uint sizeD2Mu(Dir*, int); - int fcallfmt(Fmt*); int dirfmt(Fmt*); int dirmodefmt(Fmt*); blob - 32b984becdf6bd18a91ad5f6da19693c19f1a2cd blob + 077715d6cc5ee004ea1dd70642ae10a4b5a6e53f --- src/cmd/9pserve.c +++ src/cmd/9pserve.c @@ -75,7 +75,6 @@ struct Conn Queue *outq; Queue *inq; Channel *outqdead; - int dotu; }; char *xaname; @@ -91,13 +90,12 @@ int msize = 8192; u32int xafid = NOFID; int attached; int versioned; -int dotu; int noauth; void *gethash(Hash**, uint); int puthash(Hash**, uint, void*); int delhash(Hash**, uint, void*); -Msg *mread9p(Ioproc*, int, int); +Msg *mread9p(Ioproc*, int); int mwrite9p(Ioproc*, int, uchar*); uchar *read9ppkt(Ioproc*, int); int write9ppkt(int, uchar*); @@ -119,7 +117,7 @@ void listenthread(void*); void outputthread(void*); void inputthread(void*); void rewritehdr(Fcall*, uchar*); -void repack(Fcall*, uchar**, int); +void repack(Fcall*, uchar**); int tlisten(char*, char*); int taccept(int, char*); int iolisten(Ioproc*, char*, char*); @@ -130,8 +128,6 @@ void mainproc(void*); int ignorepipe(void*, char*); int timefmt(Fmt*); void dorootstat(void); -int stripudirread(Msg*); -int cvtustat(Fcall*, uchar**, int); void usage(void) @@ -237,7 +233,7 @@ mainproc(void *v) if(!versioned){ f.type = Tversion; - f.version = "9P2000.u"; + f.version = "9P2000"; f.msize = msize; f.tag = NOTAG; n = convS2M(&f, vbuf, sizeof vbuf); @@ -255,7 +251,6 @@ mainproc(void *v) if(f.msize < msize) msize = f.msize; if(verbose > 1) fprint(2, "%T * -> %F\n", &f); - dotu = strncmp(f.version, "9P2000.u", 8) == 0; } threadcreate(inputthread, nil, STACK); @@ -315,13 +310,13 @@ send9pmsg(Msg *m) { int n, nn; - n = sizeS2Mu(&m->rx, m->c->dotu); + n = sizeS2M(&m->rx); m->rpkt = emalloc(n); - nn = convS2Mu(&m->rx, m->rpkt, n, m->c->dotu); + nn = convS2M(&m->rx, m->rpkt, n); if(nn <= BIT16SZ) - sysfatal("convS2Mu conversion error"); + sysfatal("convS2M conversion error"); if(nn != n) - sysfatal("sizeS2Mu and convS2Mu disagree"); + sysfatal("sizeS2M and convS2M disagree"); sendq(m->c->outq, m); } @@ -330,13 +325,13 @@ sendomsg(Msg *m) { int n, nn; - n = sizeS2Mu(&m->tx, m->c->dotu); + n = sizeS2M(&m->tx); m->tpkt = emalloc(n); - nn = convS2Mu(&m->tx, m->tpkt, n, m->c->dotu); + nn = convS2M(&m->tx, m->tpkt, n); if(nn <= BIT16SZ) - sysfatal("convS2Mu conversion error"); + sysfatal("convS2M conversion error"); if(nn != n) - sysfatal("sizeS2Mu and convS2Mu disagree"); + sysfatal("sizeS2M and convS2M disagree"); sendq(outq, m); } @@ -380,7 +375,7 @@ connthread(void *arg) close(c->fd); c->fd = fd; threadcreate(connoutthread, c, STACK); - while((m = mread9p(io, c->fd, c->dotu)) != nil){ + while((m = mread9p(io, c->fd)) != nil){ if(verbose > 1) fprint(2, "%T fd#%d -> %F\n", c->fd, &m->tx); m->c = c; m->ctag = m->tx.tag; @@ -398,11 +393,6 @@ connthread(void *arg) if(m->rx.msize > msize) m->rx.msize = msize; m->rx.version = "9P2000"; - c->dotu = 0; - if(dotu && strncmp(m->tx.version, "9P2000.u", 8) == 0){ - m->rx.version = "9P2000.u"; - c->dotu = 1; - } m->rx.type = Rversion; send9pmsg(m); continue; @@ -438,7 +428,7 @@ connthread(void *arg) m->tx.afid = xafid; m->tx.aname = xaname; m->tx.uname = getuser(); /* what srv.c used */ - repack(&m->tx, &m->tpkt, c->dotu); + repack(&m->tx, &m->tpkt); } break; case Twalk: @@ -476,7 +466,7 @@ connthread(void *arg) m->afid->ref++; break; case Tcreate: - if(dotu && !c->dotu && (m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET))){ + if(m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET)){ err(m, "unsupported file type"); continue; } @@ -503,18 +493,6 @@ connthread(void *arg) continue; } m->fid->ref++; - if(m->tx.type==Twstat && dotu && !c->dotu){ - if(cvtustat(&m->tx, &m->tpkt, 1) < 0){ - err(m, "cannot convert stat buffer"); - continue; - } - } - if(m->tx.type==Tread && m->fid->isdir && dotu && !c->dotu){ - if(m->tx.offset = m->fid->coffset) - m->tx.offset = m->fid->offset; - else - m->fid->offset = m->fid->coffset; - } break; } @@ -798,7 +776,6 @@ xopenfd(Msg *m) void connoutthread(void *arg) { - char *ename; int err; Conn *c; Msg *m, *om; @@ -844,28 +821,14 @@ connoutthread(void *arg) fidput(m->newfid); break; case Tread: - if(!err && m->fid->isdir && dotu && !m->c->dotu){ - m->fid->offset += m->rx.count; - stripudirread(m); - m->fid->coffset += m->rx.count; - } break; case Tstat: - if(!err && dotu && !m->c->dotu) - cvtustat(&m->rx, &m->rpkt, 0); break; case Topen: case Tcreate: m->fid->isdir = (m->rx.qid.type & QTDIR); break; } - if(m->rx.type==Rerror && dotu && !c->dotu){ - ename = estrdup(m->rx.ename); - m->rx.ename = ename; - repack(&m->rx, &m->rpkt, c->dotu); - free(ename); - m->rx.ename = "XXX"; - } if(delhash(m->c->tag, m->ctag, m) == 0) msgput(m); if(verbose > 1) fprint(2, "%T fd#%d <- %F\n", c->fd, &m->rx); @@ -933,7 +896,7 @@ inputthread(void *arg) free(pkt); continue; } - if((nn = convM2Su(pkt, n, &m->rx, dotu)) != n){ + if((nn = convM2S(pkt, n, &m->rx)) != n){ fprint(2, "%T bad packet - convM2S %d but %d\n", nn, n); free(pkt); msgput(m); @@ -1270,7 +1233,7 @@ read9ppkt(Ioproc *io, int fd) } Msg* -mread9p(Ioproc *io, int fd, int dotu) +mread9p(Ioproc *io, int fd) { int n, nn; uchar *pkt; @@ -1282,7 +1245,7 @@ mread9p(Ioproc *io, int fd, int dotu) m = msgnew(0); m->tpkt = pkt; n = GBIT32(pkt); - nn = convM2Su(pkt, n, &m->tx, dotu); + nn = convM2S(pkt, n, &m->tx); if(nn != n){ fprint(2, "%T read bad packet from %d\n", fd); return nil; @@ -1327,24 +1290,24 @@ restring(uchar *pkt, int pn, char *s) } void -repack(Fcall *f, uchar **ppkt, int dotu) +repack(Fcall *f, uchar **ppkt) { uint n, nn; uchar *pkt; pkt = *ppkt; n = GBIT32(pkt); - nn = sizeS2Mu(f, dotu); + nn = sizeS2M(f); if(nn > n){ free(pkt); pkt = emalloc(nn); *ppkt = pkt; } - n = convS2Mu(f, pkt, nn, dotu); + n = convS2M(f, pkt, nn); if(n <= BIT16SZ) sysfatal("convS2M conversion error"); if(n != nn) - sysfatal("convS2Mu and sizeS2Mu disagree"); + sysfatal("convS2M and sizeS2M disagree"); } void @@ -1445,91 +1408,4 @@ timefmt(Fmt *fmt) return fmtprint(fmt, "%s %2d %02d:%02d:%02d.%03d", mon[tm.mon], tm.mday, tm.hour, tm.min, tm.sec, (int)(ns%1000000000)/1000000); -} - -int -cvtustat(Fcall *f, uchar **fpkt, int tounix) -{ - int n; - uchar *buf; - char *str; - Dir dir; - - str = emalloc(f->nstat); - n = convM2Du(f->stat, f->nstat, &dir, str, !tounix); - if(n <= BIT16SZ){ - free(str); - return -1; - } - - n = sizeD2Mu(&dir, tounix); - buf = emalloc(n); - if(convD2Mu(&dir, buf, n, tounix) != n) - sysfatal("convD2Mu conversion error"); - f->nstat = n; - f->stat = buf; - - repack(f, fpkt, dotu); - free(buf); - f->stat = nil; /* is this okay ??? */ - free(str); - - return 0; } - -int -stripudirread(Msg* msg) -{ - char *str; - int i, m, n, nn; - uchar *buf; - Dir d; - Fcall* rx; - - buf = nil; - str = nil; - rx = &msg->rx; - n = 0; - nn = 0; - for(i = 0; i < rx->count; i += m){ - m = BIT16SZ + GBIT16(&rx->data[i]); - if(statchecku((uchar*)&rx->data[i], m, 1) < 0) - return -1; - if(nn < m) - nn = m; - n++; - } - - str = emalloc(nn); - buf = emalloc(rx->count); - - nn = 0; - for(i = 0; i < rx->count; i += m){ - m = BIT16SZ + GBIT16(&rx->data[i]); - if(convM2Du((uchar*)&rx->data[i], m, &d, str, 1) != m){ - free(buf); - free(str); - return -1; - } - - n = convD2M(&d, &buf[nn], rx->count - nn); - if(n <= BIT16SZ){ - free(buf); - free(str); - return -1; - } - - nn += n; - } - - rx->count = nn; - rx->data = (char*)buf; - - repack(&msg->rx, &msg->rpkt, 0); - free(str); - free(buf); - rx->data = nil; /* is this okay ??? */ - - return 0; -} - blob - 3edb63bd2cc71cd43235dbf0a580d214284d2142 blob + 231c4164e8f49b58735cfca73e2d4d385639a56b --- src/cmd/vac/vacfs.c +++ src/cmd/vac/vacfs.c @@ -2,13 +2,6 @@ #include #include "vac.h" -#ifndef PLAN9PORT -#define convM2Su(a, b, c, d) convM2S(a, b, c) -#define convS2Mu(a, b, c, d) convS2M(a, b, c) -#define convM2Du(a, b, c, d) convM2D(a, b, c) -#define convD2Mu(a, b, c, d) convD2M(a, b, c) -#endif - typedef struct Fid Fid; enum @@ -50,7 +43,6 @@ Fcall thdr; VacFs *fs; VtConn *conn; int noperm; -int dotu; char *defmnt; Fid * newfid(int); @@ -306,10 +298,6 @@ rversion(Fid *unused) if(strncmp(rhdr.version, "9P2000", 6) != 0) return vtstrdup("unrecognized 9P version"); thdr.version = "9P2000"; - if(strncmp(rhdr.version, "9P2000.u", 8) == 0){ - dotu = 1; - thdr.version = "9P2000.u"; - } return nil; } @@ -719,7 +707,7 @@ vacstat(VacFile *parent, VacDir *vd, uchar *p, int np) dir.gidnum = atoi(vd->gid); #endif - ret = convD2Mu(&dir, p, np, dotu); + ret = convD2M(&dir, p, np); #ifdef PLAN9PORT free(ext); #endif @@ -796,7 +784,7 @@ io(void) n = read9pmsg(mfd[0], mdata, sizeof mdata); if(n <= 0) break; - if(convM2Su(mdata, n, &rhdr, dotu) != n) + if(convM2S(mdata, n, &rhdr) != n) sysfatal("convM2S conversion error"); if(dflag) @@ -820,9 +808,9 @@ io(void) thdr.tag = rhdr.tag; if(dflag) fprint(2, "vacfs:->%F\n", &thdr); - n = convS2Mu(&thdr, mdata, messagesize, dotu); + n = convS2M(&thdr, mdata, messagesize); if(n <= BIT16SZ) - sysfatal("convS2Mu conversion error"); + sysfatal("convS2M conversion error"); if(err) vtfree(err); blob - bd8a30b63b8dd0e4298cae5a8532ef84ed5e45f8 blob + 30c0d496145a15003b4ba6db8e002c67b4b4b7d5 --- src/lib9/convD2M.c +++ src/lib9/convD2M.c @@ -3,7 +3,7 @@ #include uint -sizeD2Mu(Dir *d, int dotu) +sizeD2M(Dir *d) { char *sv[5]; int i, ns, nstr, fixlen; @@ -15,11 +15,6 @@ sizeD2Mu(Dir *d, int dotu) fixlen = STATFIXLEN; nstr = 4; - if(dotu){ - fixlen = STATFIXLENU; - sv[4] = d->ext; - nstr = 5; - } ns = 0; for(i = 0; i < nstr; i++) @@ -30,14 +25,8 @@ sizeD2Mu(Dir *d, int dotu) } uint -sizeD2M(Dir *d) +convD2M(Dir *d, uchar *buf, uint nbuf) { - return sizeD2Mu(d, 0); -} - -uint -convD2Mu(Dir *d, uchar *buf, uint nbuf, int dotu) -{ uchar *p, *ebuf; char *sv[5]; int i, ns, nsv[5], ss, nstr, fixlen; @@ -55,11 +44,6 @@ convD2Mu(Dir *d, uchar *buf, uint nbuf, int dotu) fixlen = STATFIXLEN; nstr = 4; - if(dotu){ - fixlen = STATFIXLENU; - sv[4] = d->ext; - nstr = 5; - } ns = 0; for(i = 0; i < nstr; i++){ @@ -110,23 +94,8 @@ convD2Mu(Dir *d, uchar *buf, uint nbuf, int dotu) p += ns; } - if(dotu){ - PBIT32(p, d->uidnum); - p += BIT32SZ; - PBIT32(p, d->gidnum); - p += BIT32SZ; - PBIT32(p, d->muidnum); - p += BIT32SZ; - } - if(ss != p - buf) return 0; return p - buf; } - -uint -convD2M(Dir *d, uchar *buf, uint nbuf) -{ - return convD2Mu(d, buf, nbuf, 0); -} blob - 52d7fad5a594bc57190070fccdcb4742612bad04 blob + 504110b2ded3912946f8a22870ec14a5cda01d73 --- src/lib9/convM2D.c +++ src/lib9/convM2D.c @@ -3,7 +3,7 @@ #include int -statchecku(uchar *buf, uint nbuf, int dotu) +statcheck(uchar *buf, uint nbuf) { uchar *ebuf; int i, nstr; @@ -16,33 +16,22 @@ statchecku(uchar *buf, uint nbuf, int dotu) buf += STATFIXLEN - 4 * BIT16SZ; nstr = 4; - if(dotu) - nstr = 5; for(i = 0; i < nstr; i++){ if(buf + BIT16SZ > ebuf) return -1; buf += BIT16SZ + GBIT16(buf); } - if(dotu) - buf += 3*BIT32SZ; - if(buf != ebuf) return -1; return 0; } -int -statcheck(uchar *buf, uint nbuf) -{ - return statchecku(buf, nbuf, 0); -} - static char nullstring[] = ""; uint -convM2Du(uchar *buf, uint nbuf, Dir *d, char *strs, int dotu) +convM2D(uchar *buf, uint nbuf, Dir *d, char *strs) { uchar *p, *ebuf; char *sv[5]; @@ -75,8 +64,6 @@ convM2Du(uchar *buf, uint nbuf, Dir *d, char *strs, in p += BIT64SZ; nstr = 4; - if(dotu) - nstr = 5; for(i = 0; i < nstr; i++){ if(p + BIT16SZ > ebuf) return 0; @@ -93,25 +80,12 @@ convM2Du(uchar *buf, uint nbuf, Dir *d, char *strs, in p += ns; } - if(dotu){ - if(p + BIT32SZ*3 > ebuf) - return 0; - d->uidnum = GBIT32(p); - p += BIT32SZ; - d->gidnum = GBIT32(p); - p += BIT32SZ; - d->muidnum = GBIT32(p); - p += BIT32SZ; - } - if(strs){ d->name = sv[0]; d->uid = sv[1]; d->gid = sv[2]; d->muid = sv[3]; d->ext = nullstring; - if(dotu) - d->ext = sv[4]; }else{ d->name = nullstring; d->uid = nullstring; @@ -122,9 +96,3 @@ convM2Du(uchar *buf, uint nbuf, Dir *d, char *strs, in return p - buf; } - -uint -convM2D(uchar *buf, uint nbuf, Dir *d, char *strs) -{ - return convM2Du(buf, nbuf, d, strs, 0); -} blob - 6a8805c4d6ac83dd5b9a3efb3aa3c6818212433b blob + a9c9205d96dffe4cd9ba0451c36b52cfb1090bde --- src/lib9/convM2S.c +++ src/lib9/convM2S.c @@ -48,7 +48,7 @@ gqid(uchar *p, uchar *ep, Qid *q) * to test at end of routine. */ uint -convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) +convM2S(uchar *ap, uint nap, Fcall *f) { uchar *p, *ep; uint i, size; @@ -101,12 +101,6 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) if(p == nil) break; f->uidnum = NOUID; - if(dotu){ - if(p+BIT32SZ > ep) - return 0; - f->uidnum = GBIT32(p); - p += BIT32SZ; - } break; case Tattach: @@ -125,12 +119,6 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) if(p == nil) break; f->uidnum = NOUID; - if(dotu){ - if(p+BIT32SZ > ep) - return 0; - f->uidnum = GBIT32(p); - p += BIT32SZ; - } break; case Twalk: @@ -175,8 +163,6 @@ 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: @@ -246,12 +232,6 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) case Rerror: p = gstring(p, ep, &f->ename); f->errornum = 0; - if(dotu){ - if(p+BIT32SZ > ep) - return 0; - f->errornum = GBIT32(p); - p += BIT32SZ; - } break; case Rflush: @@ -344,9 +324,3 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu) return size; return 0; } - -uint -convM2S(uchar *ap, uint nap, Fcall *f) -{ - return convM2Su(ap, nap, f, 0); -} blob - 02923bd4efb06d6726645b95623d5dd679e19a66 blob + 6e9d2719270832bb2d985b0475197eacc8939290 --- src/lib9/convS2M.c +++ src/lib9/convS2M.c @@ -46,7 +46,7 @@ stringsz(char *s) } uint -sizeS2Mu(Fcall *f, int dotu) +sizeS2M(Fcall *f) { uint n; int i; @@ -74,8 +74,6 @@ sizeS2Mu(Fcall *f, int dotu) n += BIT32SZ; n += stringsz(f->uname); n += stringsz(f->aname); - if(dotu) - n += BIT32SZ; break; case Tattach: @@ -83,8 +81,6 @@ sizeS2Mu(Fcall *f, int dotu) n += BIT32SZ; n += stringsz(f->uname); n += stringsz(f->aname); - if(dotu) - n += BIT32SZ; break; case Twalk: @@ -106,8 +102,6 @@ sizeS2Mu(Fcall *f, int dotu) n += stringsz(f->name); n += BIT32SZ; n += BIT8SZ; - if(dotu) - n += stringsz(f->extension); break; case Tread: @@ -147,8 +141,6 @@ sizeS2Mu(Fcall *f, int dotu) case Rerror: n += stringsz(f->ename); - if(dotu) - n += BIT32SZ; break; case Rflush: @@ -206,18 +198,12 @@ sizeS2Mu(Fcall *f, int dotu) } uint -sizeS2M(Fcall *f) +convS2M(Fcall *f, uchar *ap, uint nap) { - return sizeS2Mu(f, 0); -} - -uint -convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) -{ uchar *p; uint i, size; - size = sizeS2Mu(f, dotu); + size = sizeS2M(f); if(size == 0) return 0; if(size > nap) @@ -253,11 +239,6 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) p += BIT32SZ; p = pstring(p, f->uname); p = pstring(p, f->aname); - if(dotu){ - f->uidnum = NOUID; - PBIT32(p, f->uidnum); - p += BIT32SZ; - } break; case Tattach: @@ -267,11 +248,6 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) p += BIT32SZ; p = pstring(p, f->uname); p = pstring(p, f->aname); - if(dotu){ - f->uidnum = NOUID; - PBIT32(p, f->uidnum); - p += BIT32SZ; - } break; case Twalk: @@ -303,8 +279,6 @@ 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: @@ -357,10 +331,6 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) case Rerror: p = pstring(p, f->ename); - if(dotu){ - PBIT32(p, f->errornum); - p += BIT32SZ; - } break; case Rflush: @@ -427,9 +397,3 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) return 0; return size; } - -uint -convS2M(Fcall *f, uchar *ap, uint nap) -{ - return convS2Mu(f, ap, nap, 0); -} blob - 52fdb73147f705282a13145588c774b516b814ba blob + aaaa141a1a30ce1318312d6fc3d5f358520e88ee --- src/lib9p/dirread.c +++ src/lib9p/dirread.c @@ -24,7 +24,7 @@ dirread9p(Req *r, Dirgen *gen, void *aux) memset(&d, 0, sizeof d); if((*gen)(start, &d, aux) < 0) break; - rv = convD2Mu(&d, p, ep-p, r->srv->dotu); + rv = convD2M(&d, p, ep-p); free(d.name); free(d.muid); free(d.uid); blob - ece35940352f850c6077846acd73f8e9dcc37d8e blob + a857375c57574b5683dcf020e479b14cda73a60a --- src/lib9p/srv.c +++ src/lib9p/srv.c @@ -67,7 +67,7 @@ getreq(Srv *s) memmove(buf, s->rbuf, n); qunlock(&s->rlock); - if(convM2Su(buf, n, &f, s->dotu) != n){ + if(convM2S(buf, n, &f) != n){ free(buf); return nil; } @@ -166,22 +166,16 @@ sversion(Srv *srv, Req *r) { USED(srv); - if(strncmp(r->ifcall.version, "9P", 2) != 0){ + if(strncmp(r->ifcall.version, "9P2000", 6) != 0){ r->ofcall.version = "unknown"; respond(r, nil); return; } - - if(strncmp(r->ifcall.version, "9P2000.u", 8) == 0){ - r->ofcall.version = "9P2000.u"; - srv->dotu = 1; - }else{ - r->ofcall.version = "9P2000"; - srv->dotu = 0; - } + r->ofcall.version = "9P2000"; r->ofcall.msize = r->ifcall.msize; respond(r, nil); } + static void rversion(Req *r, char *error) { @@ -205,6 +199,7 @@ sauth(Srv *srv, Req *r) respond(r, e); } } + static void rauth(Req *r, char *error) { @@ -237,6 +232,7 @@ sattach(Srv *srv, Req *r) respond(r, nil); return; } + static void rattach(Req *r, char *error) { @@ -255,6 +251,7 @@ sflush(Srv *srv, Req *r) else respond(r, nil); } + static int rflush(Req *r, char *error) { @@ -422,6 +419,7 @@ sopen(Srv *srv, Req *r) else respond(r, nil); } + static void ropen(Req *r, char *error) { @@ -454,6 +452,7 @@ screate(Srv *srv, Req *r) else respond(r, Enocreate); } + static void rcreate(Req *r, char *error) { @@ -501,6 +500,7 @@ sread(Srv *srv, Req *r) else respond(r, "no srv->read"); } + static void rread(Req *r, char *error) { @@ -630,8 +630,8 @@ rstat(Req *r, char *error) if(error) return; - if(convD2Mu(&r->d, tmp, BIT16SZ, r->srv->dotu) != BIT16SZ){ - r->error = "convD2Mu(_,_,BIT16SZ,_) did not return BIT16SZ"; + if(convD2M(&r->d, tmp, BIT16SZ) != BIT16SZ){ + r->error = "convD2M(_,_,BIT16SZ) did not return BIT16SZ"; return; } n = GBIT16(tmp)+BIT16SZ; @@ -640,10 +640,10 @@ rstat(Req *r, char *error) r->error = "out of memory"; return; } - r->ofcall.nstat = convD2Mu(&r->d, statbuf, n, r->srv->dotu); + r->ofcall.nstat = convD2M(&r->d, statbuf, n); r->ofcall.stat = statbuf; /* freed in closereq */ if(r->ofcall.nstat <= BIT16SZ){ - r->error = "convD2Mu fails"; + r->error = "convD2M fails"; free(statbuf); return; } @@ -660,7 +660,7 @@ swstat(Srv *srv, Req *r) respond(r, Enowstat); return; } - if(convM2Du(r->ifcall.stat, r->ifcall.nstat, &r->d, (char*)r->ifcall.stat, srv->dotu) != r->ifcall.nstat){ + if(convM2D(r->ifcall.stat, r->ifcall.nstat, &r->d, (char*)r->ifcall.stat) != r->ifcall.nstat){ respond(r, Ebaddir); return; } @@ -686,6 +686,7 @@ swstat(Srv *srv, Req *r) } srv->wstat(r); } + static void rwstat(Req *r, char *msg) { @@ -801,7 +802,7 @@ if(chatty9p) fprint(2, "-%d-> %F\n", srv->outfd, &r->ofcall); qlock(&srv->wlock); - n = convS2Mu(&r->ofcall, srv->wbuf, srv->msize, srv->dotu); + n = convS2M(&r->ofcall, srv->wbuf, srv->msize); if(n <= 0){ fprint(2, "n = %d %F\n", n, &r->ofcall); abort(); blob - c2b13882fec774a9d715bd9631c40bb6b07e219e blob + 32c5978340d46ada1dc2cba3b6b61504c9016b90 --- src/lib9pclient/dirread.c +++ src/lib9pclient/dirread.c @@ -7,7 +7,7 @@ #include "fsimpl.h" static long -dirpackage(uchar *buf, long ts, Dir **d, int dotu) +dirpackage(uchar *buf, long ts, Dir **d) { char *s; long ss, i, n, nn, m; @@ -23,7 +23,7 @@ dirpackage(uchar *buf, long ts, Dir **d, int dotu) n = 0; for(i = 0; i < ts; i += m){ m = BIT16SZ + GBIT16(&buf[i]); - if(statchecku(&buf[i], m, dotu) < 0) + if(statcheck(&buf[i], m) < 0) break; ss += m; n++; @@ -43,7 +43,7 @@ dirpackage(uchar *buf, long ts, Dir **d, int dotu) nn = 0; for(i = 0; i < ts; i += m){ m = BIT16SZ + GBIT16((uchar*)&buf[i]); - if(nn >= n || convM2Du(&buf[i], m, *d + nn, s, dotu) != m){ + if(nn >= n || convM2D(&buf[i], m, *d + nn, s) != m){ free(*d); *d = nil; return -1; @@ -66,7 +66,7 @@ fsdirread(CFid *fid, Dir **d) return -1; ts = fsread(fid, buf, DIRMAX); if(ts >= 0) - ts = dirpackage(buf, ts, d, fid->fs->dotu); + ts = dirpackage(buf, ts, d); free(buf); return ts; } @@ -92,9 +92,9 @@ fsdirreadall(CFid *fid, Dir **d) ts += n; } if(ts >= 0){ - ts = dirpackage(buf, ts, d, fid->fs->dotu); + ts = dirpackage(buf, ts, d); if(ts < 0) - werrstr("malformed directory contents [dotu=%d]", fid->fs->dotu); + werrstr("malformed directory contents"); } free(buf); if(ts == 0 && n < 0) blob - 169f12069f7f0a711ed28278ce2e31258001d97c blob + c6b1c3e92b016ce44aefa50b19848bf2e98879bf --- src/lib9pclient/fs.c +++ src/lib9pclient/fs.c @@ -49,14 +49,12 @@ fsinit(int fd) fs->iosend = ioproc(); muxinit(&fs->mux); - strcpy(fs->version, "9P2000.u"); + strcpy(fs->version, "9P2000"); if((n = fsversion(fs, 8192, fs->version, sizeof fs->version)) < 0){ werrstr("fsversion: %r"); _fsunmount(fs); return nil; } - if(strcmp(fs->version, "9P2000.u") == 0) - fs->dotu = 1; fs->msize = n; return fs; } @@ -208,7 +206,7 @@ _fsrpc(CFsys *fs, Fcall *tx, Fcall *rx, void **freep) int n, nn; void *tpkt, *rpkt; - n = sizeS2Mu(tx, fs->dotu); + n = sizeS2M(tx); tpkt = malloc(n); if(freep) *freep = nil; @@ -217,7 +215,7 @@ _fsrpc(CFsys *fs, Fcall *tx, Fcall *rx, void **freep) tx->tag = 0; if(chatty9pclient) fprint(2, "<- %F\n", tx); - nn = convS2Mu(tx, tpkt, n, fs->dotu); + nn = convS2M(tx, tpkt, n); if(nn != n){ free(tpkt); werrstr("lib9pclient: sizeS2M convS2M mismatch"); @@ -231,7 +229,7 @@ _fsrpc(CFsys *fs, Fcall *tx, Fcall *rx, void **freep) return -1; } n = GBIT32((uchar*)rpkt); - nn = convM2Su(rpkt, n, rx, fs->dotu); + nn = convM2S(rpkt, n, rx); if(nn != n){ free(rpkt); werrstr("lib9pclient: convM2S packet size mismatch %d %d", n, nn); blob - d609dde8ba1c6372173dc95dc5e2bd7a663fcfa5 blob + 9c5c555355fd58ca2e3b7d397de11475ee8981fd --- src/lib9pclient/fsimpl.h +++ src/lib9pclient/fsimpl.h @@ -14,7 +14,6 @@ void *_fsnbqrecv(Queue*); struct CFsys { char version[20]; - int dotu; int msize; QLock lk; int fd; blob - 594f8be152a434d45e279eb0fed9676f64748475 blob + 9c69446aa74e2705649db85b7a7d0cffc508c062 --- src/lib9pclient/stat.c +++ src/lib9pclient/stat.c @@ -42,7 +42,7 @@ fsdirfstat(CFid *fid) free(freep); return nil; } - n = convM2Du(rx.stat, rx.nstat, d, (char*)&d[1], fs->dotu); + n = convM2D(rx.stat, rx.nstat, d, (char*)&d[1]); free(freep); if(n != rx.nstat){ free(d); blob - cc193d257f201c9a837d8f7bc5891a2839ce02a2 blob + 26e44f8e86cdb3926b4149378640caccba8a9774 --- src/lib9pclient/wstat.c +++ src/lib9pclient/wstat.c @@ -28,11 +28,11 @@ fsdirfwstat(CFid *fid, Dir *d) int n, nn; Fcall tx, rx; - n = sizeD2Mu(d, fid->fs->dotu); + n = sizeD2M(d); a = malloc(n); if(a == nil) return -1; - nn = convD2Mu(d, a, n, fid->fs->dotu); + nn = convD2M(d, a, n); if(n != nn){ werrstr("convD2M and sizeD2M disagree"); free(a);