You can keep srv() from eating Tattach's and Tauth's without numeric
userids with the following:
--- a/src/cmd/9pserve.c Wed Nov 03 15:49:22 2010 -0400
+++ b/src/cmd/9pserve.c Thu Nov 11 19:27:02 2010 -0800
@@ -440,6 +440,8 @@
m->tx.uname = getuser(); /* what srv.c
used */
repack(&m->tx, &m->tpkt, c->dotu);
}
+ if(dotu && !c->dotu)
+ repack(&m->tx, &m->tpkt, dotu);
break;
case Twalk:
if((m->fid = gethash(c->fid, m->tx.fid)) == nil){
@@ -474,6 +476,8 @@
continue;
}
m->afid->ref++;
+ if(dotu && !c->dotu)
+ repack(&m->tx, &m->tpkt, dotu);
break;
case Tcreate:
if(dotu && !c->dotu &&
(m->tx.perm&(DMSYMLINK|DMDEVICE|DMNAMEDPIPE|DMSOCKET))){
knieriem also proposed a fix at:
http://code.swtch.com/plan9port/issue/38/9pserve-not-translating-9p2000-client-msgs
Russ does this approach blow up your ssh-agent?
Noah
On Wed, Nov 10, 2010 at 6:31 AM, Russ Cox <[email protected]> wrote:
>>> Factotum doesn't answer that message.
>>> You need to be looking at 9pserve.
>>
>> maybe i'm missing something, but 9pserve is also the
>> mechanism behind plumb, and it works. why would
>> p9serve be broken, but only for factotum? more likely
>> that drawterm itself is broken?
>
> It's always hard to say which program is broken
> when two programs can't talk to each other.
> I was only trying to point out that the two programs
> involved are drawterm and 9pserve, not drawterm
> and factotum (you had made changes to factotum
> in hopes that would fix it).
>
> I suspect the problem has to do with the so-called
> 9P2000.u protocol negotiation that 9pserve supports.
>
> Russ
>
>