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 <r...@swtch.com> 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
>
>

Reply via email to