9pserve: roll back changeset 3118 - broke ssh-agent talking to factotum
This commit is contained in:
parent
846cec9ebc
commit
bf486dfc16
1 changed files with 1 additions and 53 deletions
|
|
@ -132,8 +132,6 @@ int timefmt(Fmt*);
|
||||||
void dorootstat(void);
|
void dorootstat(void);
|
||||||
int stripudirread(Msg*);
|
int stripudirread(Msg*);
|
||||||
int cvtustat(Fcall*, uchar**, int);
|
int cvtustat(Fcall*, uchar**, int);
|
||||||
void cvtuauthattach(Fcall*, uchar**);
|
|
||||||
void cvtucreate(Fcall*, uchar**);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
usage(void)
|
usage(void)
|
||||||
|
|
@ -151,6 +149,7 @@ threadmain(int argc, char **argv)
|
||||||
char *file, *x, *addr;
|
char *file, *x, *addr;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
|
rfork(RFNOTEG);
|
||||||
x = getenv("verbose9pserve");
|
x = getenv("verbose9pserve");
|
||||||
if(x){
|
if(x){
|
||||||
verbose = atoi(x);
|
verbose = atoi(x);
|
||||||
|
|
@ -441,8 +440,6 @@ connthread(void *arg)
|
||||||
m->tx.uname = getuser(); /* what srv.c used */
|
m->tx.uname = getuser(); /* what srv.c used */
|
||||||
repack(&m->tx, &m->tpkt, c->dotu);
|
repack(&m->tx, &m->tpkt, c->dotu);
|
||||||
}
|
}
|
||||||
if(dotu && !c->dotu)
|
|
||||||
cvtuauthattach(&m->tx, &m->tpkt);
|
|
||||||
break;
|
break;
|
||||||
case Twalk:
|
case Twalk:
|
||||||
if((m->fid = gethash(c->fid, m->tx.fid)) == nil){
|
if((m->fid = gethash(c->fid, m->tx.fid)) == nil){
|
||||||
|
|
@ -477,16 +474,12 @@ connthread(void *arg)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
m->afid->ref++;
|
m->afid->ref++;
|
||||||
if(dotu && !c->dotu)
|
|
||||||
cvtuauthattach(&m->tx, &m->tpkt);
|
|
||||||
break;
|
break;
|
||||||
case Tcreate:
|
case Tcreate:
|
||||||
if(dotu && !c->dotu && (m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET))){
|
if(dotu && !c->dotu && (m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET))){
|
||||||
err(m, "unsupported file type");
|
err(m, "unsupported file type");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(dotu && !c->dotu)
|
|
||||||
cvtucreate(&m->tx, &m->tpkt);
|
|
||||||
goto caseTopen;
|
goto caseTopen;
|
||||||
case Topenfd:
|
case Topenfd:
|
||||||
if(m->tx.mode&~(OTRUNC|3)){
|
if(m->tx.mode&~(OTRUNC|3)){
|
||||||
|
|
@ -1540,48 +1533,3 @@ stripudirread(Msg* msg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
|
||||||
updateptr(uchar *p0, uchar *p0old, void *p)
|
|
||||||
{
|
|
||||||
return p0 + ((uchar*)p - p0old);
|
|
||||||
}
|
|
||||||
|
|
||||||
uchar*
|
|
||||||
growpkt(uchar **ppkt, int sz)
|
|
||||||
{
|
|
||||||
int n;
|
|
||||||
uchar *ap, *pkt;
|
|
||||||
|
|
||||||
pkt = *ppkt;
|
|
||||||
n = GBIT32(pkt);
|
|
||||||
pkt = erealloc(pkt, n+sz);
|
|
||||||
PBIT32(pkt, n+sz);
|
|
||||||
ap = &pkt[n];
|
|
||||||
memset(ap, 0, sz);
|
|
||||||
*ppkt = pkt;
|
|
||||||
return ap;
|
|
||||||
}
|
|
||||||
void
|
|
||||||
cvtuauthattach(Fcall *f, uchar **ppkt)
|
|
||||||
{
|
|
||||||
uchar *opkt, *ap;
|
|
||||||
|
|
||||||
opkt = *ppkt;
|
|
||||||
ap = growpkt(ppkt, BIT32SZ);
|
|
||||||
PBIT32(ap, NOUID);
|
|
||||||
|
|
||||||
if(*ppkt != opkt){
|
|
||||||
f->uname = updateptr(*ppkt, opkt, f->uname);
|
|
||||||
f->aname = updateptr(*ppkt, opkt, f->aname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void
|
|
||||||
cvtucreate(Fcall *f, uchar **ppkt)
|
|
||||||
{
|
|
||||||
uchar *opkt;
|
|
||||||
|
|
||||||
opkt = *ppkt;
|
|
||||||
growpkt(ppkt, BIT16SZ); /* add an empty `extension' */
|
|
||||||
if(*ppkt != opkt)
|
|
||||||
f->name = updateptr(*ppkt, opkt, f->name);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue