commit - e7c5e5ed94e02e969d45d8ab74876cac53694195
commit + 8ff457f56db9f94f4baf68f53d87e791584d1dfe
blob - a5dae3371e3bb3431e361871b97dc69ffc842ab8
blob + 1e32b339cb59b81e481a4ea9722eea740fa7ed33
--- include/fcall.h
+++ include/fcall.h
/* 9P2000.u extensions */
int errornum; /* Rerror */
+ int uidnum; /* Tattach, Tauth */
char *extension; /* Tcreate */
} Fcall;
#define NOTAG (ushort)~0U /* Dummy tag */
#define NOFID (u32int)~0U /* Dummy fid */
+#define NOUID (-1) /* Dummy uid */
#define IOHDRSZ 24 /* ample room for Twrite/Rread header (iounit) */
enum
blob - 3df83da2d38a93ca04a58e78258d4c69b8268d08
blob + 6a8805c4d6ac83dd5b9a3efb3aa3c6818212433b
--- src/lib9/convM2S.c
+++ src/lib9/convM2S.c
p = gstring(p, ep, &f->aname);
if(p == nil)
break;
+ f->uidnum = NOUID;
+ if(dotu){
+ if(p+BIT32SZ > ep)
+ return 0;
+ f->uidnum = GBIT32(p);
+ p += BIT32SZ;
+ }
break;
case Tattach:
p = gstring(p, ep, &f->aname);
if(p == nil)
break;
+ f->uidnum = NOUID;
+ if(dotu){
+ if(p+BIT32SZ > ep)
+ return 0;
+ f->uidnum = GBIT32(p);
+ p += BIT32SZ;
+ }
break;
case Twalk:
p = gstring(p, ep, &f->ename);
f->errornum = 0;
if(dotu){
- if(p+BIT16SZ > ep)
+ if(p+BIT32SZ > ep)
return 0;
- f->errornum = GBIT16(p);
- p += BIT16SZ;
+ f->errornum = GBIT32(p);
+ p += BIT32SZ;
}
break;
blob - b01a022165555faa63555defc0575a03e5bad9eb
blob + 02923bd4efb06d6726645b95623d5dd679e19a66
--- src/lib9/convS2M.c
+++ src/lib9/convS2M.c
n += BIT32SZ;
n += stringsz(f->uname);
n += stringsz(f->aname);
+ if(dotu)
+ n += BIT32SZ;
break;
case Tattach:
n += BIT32SZ;
n += stringsz(f->uname);
n += stringsz(f->aname);
+ if(dotu)
+ n += BIT32SZ;
break;
case Twalk:
case Rerror:
n += stringsz(f->ename);
if(dotu)
- n += BIT16SZ;
+ n += BIT32SZ;
break;
case Rflush:
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:
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:
case Rerror:
p = pstring(p, f->ename);
if(dotu){
- PBIT16(p, f->errornum);
- p += BIT16SZ;
+ PBIT32(p, f->errornum);
+ p += BIT32SZ;
}
break;