URI:
       t9pserve: add -c option - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit ef6606c7a7f22ae6cca150c6433748102640e130
   DIR parent e082105c33333969c3b3e29349801b5d9abf6932
  HTML Author: Russ Cox <rsc@swtch.com>
       Date:   Wed, 11 Jun 2008 06:40:54 -0700
       
       9pserve: add -c option
       
       Diffstat:
         M man/man4/9pserve.4                  |       9 +++++++++
         M src/cmd/9pserve.c                   |      13 +++++++++++--
       
       2 files changed, 20 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/man/man4/9pserve.4 b/man/man4/9pserve.4
       t@@ -12,6 +12,10 @@
        .I afid
        ]
        [
       +.B -c
       +.I addr
       +]
       +[
        .B -M
        .I msize
        ]
       t@@ -73,6 +77,11 @@ used to implement
        .B -a
        option
        .TP
       +.B -c
       +multiplex clients onto a single connection to
       +.IR addr ,
       +instead of standard input and output
       +.TP
        .B -M
        do not initialize the connection with a
        .B Tversion
   DIR diff --git a/src/cmd/9pserve.c b/src/cmd/9pserve.c
       t@@ -136,7 +136,7 @@ int cvtustat(Fcall*, uchar**, int);
        void
        usage(void)
        {
       -        fprint(2, "usage: 9pserve [-lnv] [-A aname afid] [-M msize] address\n");
       +        fprint(2, "usage: 9pserve [-lnv] [-A aname afid] [-c addr] [-M msize] address\n");
                fprint(2, "\treads/writes 9P messages on stdin/stdout\n");
                threadexitsall("usage");
        }
       t@@ -146,7 +146,7 @@ extern int _threaddebuglevel;
        void
        threadmain(int argc, char **argv)
        {
       -        char *file, *x;
       +        char *file, *x, *addr;
                int fd;
        
                x = getenv("verbose9pserve");
       t@@ -166,6 +166,15 @@ threadmain(int argc, char **argv)
                        versioned = 1;
                        msize = atoi(EARGF(usage()));
                        break;
       +        case 'c':
       +                addr = netmkaddr(EARGF(usage()), "net", "9fs");
       +                if((fd = dial(addr, nil, nil, nil)) < 0)
       +                        sysfatal("dial %s: %r", addr);
       +                dup(fd, 0);
       +                dup(fd, 1);
       +                if(fd > 1)
       +                        close(fd);
       +                break;
                case 'n':
                        noauth = 1;
                        break;