plan9port

[fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port # fast
git clone https://src.adamsgaard.dk/plan9port.git # slow
Log | Files | Refs | README | LICENSE Back to index

commit ef6606c7a7f22ae6cca150c6433748102640e130
parent e082105c33333969c3b3e29349801b5d9abf6932
Author: Russ Cox <rsc@swtch.com>
Date:   Wed, 11 Jun 2008 06:40:54 -0700

9pserve: add -c option

Diffstat:
Mman/man4/9pserve.4 | 9+++++++++
Msrc/cmd/9pserve.c | 13+++++++++++--
2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/man/man4/9pserve.4 b/man/man4/9pserve.4 @@ -12,6 +12,10 @@ .I afid ] [ +.B -c +.I addr +] +[ .B -M .I msize ] @@ -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 diff --git a/src/cmd/9pserve.c b/src/cmd/9pserve.c @@ -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"); } @@ -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"); @@ -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;