aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2007-10-12 12:56:57 -0400
committerRuss Cox <rsc@swtch.com>2007-10-12 12:56:57 -0400
commit151b86a03703255445a2165f714e914032f6c4a8 (patch)
tree51f268a91a3bca9f432ac632b8b0f0582019a5fd
parent9b25329723e3284db7b060bbb301a139b8f2ace1 (diff)
downloadplan9port-151b86a03703255445a2165f714e914032f6c4a8.tar.gz
plan9port-151b86a03703255445a2165f714e914032f6c4a8.tar.bz2
plan9port-151b86a03703255445a2165f714e914032f6c4a8.zip
srv: add -n flag to reject auth by clients
-rw-r--r--man/man4/srv.410
-rw-r--r--src/cmd/srv.c12
2 files changed, 17 insertions, 5 deletions
diff --git a/man/man4/srv.4 b/man/man4/srv.4
index 5c5c80a0..ccd0f034 100644
--- a/man/man4/srv.4
+++ b/man/man4/srv.4
@@ -4,7 +4,7 @@ srv, 9fs \- start network file service
.SH SYNOPSIS
.B srv
[
-.B -a
+.B -an
]
[
.B -k
@@ -37,6 +37,14 @@ to post a pre-authenticated connection to the file system
(by default, the empty string;
see
.IR attach (9p)).
+.PP
+The
+.B -n
+option causes
+.I srv
+to reject authentication attempts by clients,
+useful if the remote server is known not to require authentication.
+.PP
.I Srv
authenticates over the 9P connection to establish a valid auth fid.
.IR Keypattern ,
diff --git a/src/cmd/srv.c b/src/cmd/srv.c
index f6704fc2..e89b85eb 100644
--- a/src/cmd/srv.c
+++ b/src/cmd/srv.c
@@ -41,6 +41,9 @@ threadmain(int argc, char **argv)
case 'a':
doauth = 1;
break;
+ case 'n':
+ doauth = -1;
+ break;
case 'k':
keypattern = EARGF(usage());
break;
@@ -55,7 +58,7 @@ threadmain(int argc, char **argv)
if((fd = dial(addr, nil, nil, nil)) < 0)
sysfatal("dial %s: %r", addr);
- if(doauth)
+ if(doauth > 0)
xauth();
if(argc == 2)
@@ -216,7 +219,7 @@ post9pservice(int fd, char *name)
dup(fd, 1);
for(i=3; i<20; i++)
close(i);
- if(doauth)
+ if(doauth > 0)
execlp("9pserve", "9pserve", "-u",
"-M",
smprint("%d", msize),
@@ -224,8 +227,9 @@ post9pservice(int fd, char *name)
aname,
smprint("%d", afid),
s, (char*)0);
- else
- execlp("9pserve", "9pserve", "-u", s, (char*)0);
+ else
+ execlp("9pserve", "9pserve",
+ doauth < 0 ? "-nu" : "-u", s, (char*)0);
fprint(2, "exec 9pserve: %r\n");
_exits("exec");
default: