Use more-standard CPU server not cpu server.
[rsc] --rw-rw-r-- M 923680 glenda sys 3804 Oct 4 23:31 sys/man/1/cpu
[rsc] --rw-rw-r-- M 923680 rsc sys 779 Oct 4 23:31 sys/man/1/delkey
[rsc] --rw-rw-r-- M 923680 glenda sys 14709 Oct 4 23:31 sys/man/4/factotum
[rsc] --rw-rw-r-- M 923680 glenda sys 3397 Oct 4 23:31 sys/man/8/nfsserver
[sys] --rwxrwxr-x M 923680 glenda sys 139098 Oct 5 23:09 386/bin/cpu
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/ctime.c:gmtime
/sys/src/libc/port/strpbrk.c:strpbrk
Describe changes since 1995.
[rsc] --rw-rw-r-- M 923680 glenda sys 13304 Oct 4 23:32 sys/man/6/authsrv
Update with current state of the world.
[rsc] --rw-rw-r-- M 923680 glenda sys 1735 Oct 5 09:53 sys/src/cmd/unix/README
/n/sourcesdump/2005/1005/plan9/sys/src/cmd/unix/README:1,25 -
/n/sourcesdump/2005/1006/plan9/sys/src/cmd/unix/README:1,59
- This directory contains the source for programs that
- live in both the Plan 9 and Unix worlds. The following
- programs are supplied:
- u9fs - a Unix resident file server that serves the
- Plan 9 protocol, P9.
+ This directory contains source for some programs that
+ help Plan 9 co-exist with the non-Plan 9 world.
- sam - an X-windows version of the sam editor that runs
- on most popular Unix systems and Suns, too.
+ 9pfreebsd/
+ Patches to FreeBSD 3.2 to add the IL network protocol
+ and the pre-9P2000 version of 9P.
- bootp - program to allow a Unix machine to answer a Plan 9 bootp.
+ drawterm/
+ Drawterm is a Unix and Windows program that simulates
+ a Plan 9 terminal to connect to a Plan 9 cpu server.
+ The version in this directory speaks the pre-9P2000
+ protocols.
- tcs.shar.Z - a compressed version of the Unix source for the
- character set converter.
+ A new 9P2000 version is in progress but still crashes
+ with some regularity on Unix. It can be found at
+ http://cvs.pdos.csail.mit.edu/cvs/drawterm/
+ or use
+ cvs -d :pserver:[email protected]:/cvs co drawterm
+ For more information about CVS, see
+ http://swtch.com/plan9port/man/man1/cvs.html
- spin - on-the-fly verification program for concurrent systems.
+ u9fs/
+ U9fs is a simple 9P server that runs on Unix.
+ It serves both 9P2000 and the older 9P.
- 9pfreebsd - IL and 9FS for FreeBSD 3.2.
+ netkey.c
+ A standalone Unix version of Plan 9's netkey(1).
- A README file in each subdirectory further explains each
- program.
+ winstart
+ winplumb.c
+ winplumb.exe
+ Winstart is a shell script to be used with the plumber
+ to relay plumbing messages (typically URLs) to a Windows
+ machine. It is particularly useful with VMware.
- For a more up-to-date copy of sam and tcs, see Plan 9 from
- User Space at http://swtch.com/plan9port.
+ The following programs at external locations may also be of interest:
+
+ Plan 9 from User Space
+ a Unix port of acme, sam, tcs, and many other Plan 9 programs
+ - http://swtch.com/plan9port
+
+ V9fs
+ a project to write 9P drivers for other operating systems
+ - 9p2000.ko is now part of the standard Linux 2.6 tree
+ - http://v9fs.sourceforge.net/
+
+ spin, the protocol verifier
+ - http://spinroot.com/
+
+ sam
+ older ports of Sam to Unix and Windows
+ - ftp://ftp.demon.co.uk/pub/unix/plan9
+ - ftp://plan9.bell-labs.com/netlib/research/
+
+ 9pm
+ an old port of much of the Plan 9 tools to Windows
+ - http://plan9.bell-labs.com/plan9dist/ureg.html
[rsc] --rw-rw-r-- M 923680 glenda drawterm 373 Oct 5 09:54 sys/src/cmd/unix/drawterm/README
/n/sourcesdump/2005/1005/plan9/sys/src/cmd/unix/drawterm/README:5,9 -
/n/sourcesdump/2005/1006/plan9/sys/src/cmd/unix/drawterm/README:5,9
This drawterm still uses the old (third edition) 9P, aka 9P1.
A 9P2000 version of drawterm and many other tools is in
- progress. If you are interested in helping, mail [email protected].
+ progress. See ../README for details.
Better test harness for newns.
[rsc] --rw-rw-r-- M 923680 rsc sys 962 Oct 5 15:28 sys/src/cmd/auth/newns.c
/n/sourcesdump/2005/1005/plan9/sys/src/cmd/auth/newns.c:5,22 -
/n/sourcesdump/2005/1006/plan9/sys/src/cmd/auth/newns.c:5,43
void
usage(void)
{
- fprint(2, "usage: newns [-n namespace] [cmd [args...]]\n");
+ fprint(2, "usage: newns [-ad] [-n namespace] [cmd [args...]]\n");
exits("usage");
}
+ static int
+ rooted(char *s)
+ {
+ if(s[0] == '/')
+ return 1;
+ if(s[0] == '.' && s[1] == '/')
+ return 1;
+ if(s[0] == '.' && s[1] == '.' && s[2] == '/')
+ return 1;
+ return 0;
+ }
+
void
main(int argc, char **argv)
{
- char *nsfile;
+ extern int newnsdebug;
char *defargv[] = { "/bin/rc", "-i", nil };
+ char *nsfile, err[ERRMAX];
+ int add;
+ add = 0;
nsfile = "/lib/namespace";
ARGBEGIN{
+ case 'a':
+ add = 1;
+ break;
+ case 'd':
+ newnsdebug = 1;
+ break;
case 'n':
nsfile = ARGF();
break;
/n/sourcesdump/2005/1005/plan9/sys/src/cmd/auth/newns.c:26,32 -
/n/sourcesdump/2005/1006/plan9/sys/src/cmd/auth/newns.c:47,61
}ARGEND
if(argc == 0)
argv = defargv;
- newns(getuser(), nsfile);
+ if (add)
+ addns(getuser(), nsfile);
+ else
+ newns(getuser(), nsfile);
exec(argv[0], argv);
+ if(!rooted(argv[0])){
+ rerrstr(err, sizeof err);
+ exec(smprint("/bin/%s", argv[0]), argv);
+ errstr(err, sizeof err);
+ }
sysfatal("exec: %s: %r", argv[0]);
}
Parse quoting properly in name space files.
[rsc] --rw-rw-r-- M 923680 glenda sys 7226 Oct 5 15:28 sys/src/libauth/newns.c
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:14,24 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:14,26
static int setenv(char*, char*);
static char *expandarg(char*, char*);
static int splitargs(char*, char*[], char*, int);
- static int nsfile(Biobuf *, AuthRpc *);
- static int nsop(int, char*[], AuthRpc*);
+ static int nsfile(char*, Biobuf *, AuthRpc *);
+ static int nsop(char*, int, char*[], AuthRpc*);
static int callexport(char*, char*);
static int catch(void*, char*);
+ int newnsdebug;
+
static int
buildns(int newns, char *user, char *file)
{
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:32,37 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:34,41
rpc = nil;
/* try for factotum now because later is impossible */
afd = open("/mnt/factotum/rpc", ORDWR);
+ if (afd < 0 && newnsdebug)
+ fprint(2, "open /mnt/factotum/rpc: %r\n");
if(afd >= 0){
rpc = auth_allocrpc(afd);
if(rpc == nil){
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:59,65 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:63,69
snprint(home, 2*ANAMELEN, "/usr/%s", user);
setenv("home", home);
}
- cdroot = nsfile(b, rpc);
+ cdroot = nsfile(newns ? "newns" : "addns", b, rpc);
Bterm(b);
if(rpc){
close(rpc->afd);
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:79,90 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:83,95
}
static int
- nsfile(Biobuf *b, AuthRpc *rpc)
+ nsfile(char *fn, Biobuf *b, AuthRpc *rpc)
{
int argc;
char *cmd, *argv[NARG+1], argbuf[MAXARG*NARG];
- int cdroot = 0;
+ int cdroot;
+ cdroot = 0;
atnotify(catch, 1);
while(cmd = Brdline(b, '\n')){
cmd[Blinelen(b)-1] = '\0';
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:94,100 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:99,105
continue;
argc = splitargs(cmd, argv, argbuf, NARG);
if(argc)
- cdroot |= nsop(argc, argv, rpc);
+ cdroot |= nsop(fn, argc, argv, rpc);
}
atnotify(catch, 0);
return cdroot;
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:128,143 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:133,154
}
static int
- nsop(int argc, char *argv[], AuthRpc *rpc)
+ nsop(char *fn, int argc, char *argv[], AuthRpc *rpc)
{
char *argv0;
ulong flags;
- int fd;
+ int fd, i;
Biobuf *b;
- int cdroot = 0;
+ int cdroot;
+ cdroot = 0;
flags = 0;
argv0 = 0;
+ if (newnsdebug){
+ for (i = 0; i < argc; i++)
+ fprint(2, "%s ", argv[i]);
+ fprint(2, "\n");
+ }
ARGBEGIN{
case 'a':
flags |= MAFTER;
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:160,184 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:171,199
b = Bopen(argv[0], OREAD);
if(b == nil)
return 0;
- cdroot |= nsfile(b, rpc);
+ cdroot |= nsfile(fn, b, rpc);
Bterm(b);
- } else if(strcmp(argv0, "clear") == 0 && argc == 0)
+ }else if(strcmp(argv0, "clear") == 0 && argc == 0)
rfork(RFCNAMEG);
- else if(strcmp(argv0, "bind") == 0 && argc == 2)
- bind(argv[0], argv[1], flags);
- else if(strcmp(argv0, "unmount") == 0){
+ else if(strcmp(argv0, "bind") == 0 && argc == 2){
+ if(bind(argv[0], argv[1], flags) < 0 && newnsdebug)
+ fprint(2, "%s: bind: %s %s: %r\n", fn, argv[0], argv[1]);
+ }else if(strcmp(argv0, "unmount") == 0){
if(argc == 1)
unmount(nil, argv[0]);
else if(argc == 2)
unmount(argv[0], argv[1]);
- } else if(strcmp(argv0, "mount") == 0){
+ }else if(strcmp(argv0, "mount") == 0){
fd = open(argv[0], ORDWR);
- if(argc == 2)
- famount(fd, rpc, argv[1], flags, "");
- else if(argc == 3)
- famount(fd, rpc, argv[1], flags, argv[2]);
+ if(argc == 2){
+ if(famount(fd, rpc, argv[1], flags, "") < 0 && newnsdebug)
+ fprint(2, "%s: mount: %s %s: %r\n", fn, argv[0], argv[1]);
+ }else if(argc == 3){
+ if(famount(fd, rpc, argv[1], flags, argv[2]) < 0 && newnsdebug)
+ fprint(2, "%s: mount: %s %s %s: %r\n", fn, argv[0], argv[1], argv[2]);
+ }
close(fd);
- } else if(strcmp(argv0, "import") == 0){
+ }else if(strcmp(argv0, "import") == 0){
fd = callexport(argv[0], argv[1]);
if(argc == 2)
famount(fd, rpc, argv[1], flags, "");
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:185,193 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:200,209
else if(argc == 3)
famount(fd, rpc, argv[2], flags, "");
close(fd);
- } else if(strcmp(argv0, "cd") == 0 && argc == 1)
+ }else if(strcmp(argv0, "cd") == 0 && argc == 1){
if(chdir(argv[0]) == 0 && *argv[0] == '/')
cdroot = 1;
+ }
return cdroot;
}
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:221,226 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:237,267
return fd;
}
+ static char*
+ unquote(char *s)
+ {
+ char *r, *w;
+ int inquote;
+
+ inquote = 0;
+ for(r=w=s; *r; r++){
+ if(*r != '\''){
+ *w++ = *r;
+ continue;
+ }
+ if(inquote){
+ if(*(r+1) == '\''){
+ *w++ = '\'';
+ r++;
+ }else
+ inquote = 0;
+ }else
+ inquote = 1;
+ }
+ *w = 0;
+ return s;
+ }
+
static int
splitargs(char *p, char *argv[], char *argbuf, int nargv)
{
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:227,233 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:268,274
char *q;
int i, n;
- n = gettokens(p, argv, nargv, " \t'\r");
+ n = gettokens(p, argv, nargv, " \t\r");
if(n == nargv)
return 0;
for(i = 0; i < n; i++){
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:234,245 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:275,303
q = argv[i];
argv[i] = argbuf;
argbuf = expandarg(q, argbuf);
- if(!argbuf)
+ if(argbuf == nil)
return 0;
+ unquote(argv[i]);
}
return n;
}
+ static char*
+ nextdollar(char *arg)
+ {
+ char *p;
+ int inquote;
+
+ inquote = 0;
+ for(p=arg; *p; p++){
+ if(*p == '\'')
+ inquote = !inquote;
+ if(*p == '$' && !inquote)
+ return p;
+ }
+ return nil;
+ }
+
/*
* copy the arg into the buffer,
* expanding any environment variables.
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:253,263 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:311,321
static char *
expandarg(char *arg, char *buf)
{
- char env[3+ANAMELEN], *p, *q, *x;
+ char env[3+ANAMELEN], *p, *x;
int fd, n, len;
n = 0;
- while(p = utfrune(arg, L'$')){
+ while(p = nextdollar(arg)){
len = p - arg;
if(n + len + ANAMELEN >= MAXARG-1)
return 0;
/n/sourcesdump/2005/1005/plan9/sys/src/libauth/newns.c:264,281 -
/n/sourcesdump/2005/1006/plan9/sys/src/libauth/newns.c:322,332
memmove(&buf[n], arg, len);
n += len;
p++;
- arg = utfrune(p, L'\0');
- q = utfrune(p, L'/');
- if(q && q < arg)
- arg = q;
- q = utfrune(p, L'.');
- if(q && q < arg)
- arg = q;
- q = utfrune(p, L'$');
- if(q && q < arg)
- arg = q;
+ arg = strpbrk(p, "/.!'$");
+ if(arg == nil)
+ arg = p+strlen(p);
len = arg - p;
- if(len >= ANAMELEN)
+ if(len == 0 || len >= ANAMELEN)
continue;
strcpy(env, "#e/");
strncpy(env+3, p, len);
[sys] --rwxrwxr-x M 923680 glenda sys 162241 Oct 5 23:09 386/bin/exportfs
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 101371 Oct 5 23:09 386/bin/import
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/port/rune.c:chartorune
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 143960 Oct 5 23:09 386/bin/auth/cron
/sys/src/cmd/auth/cron.c:main
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/ctime.c:gmtime
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 104451 Oct 5 23:09 386/bin/auth/login
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/rune.c:chartorune
/sys/src/libc/port/strpbrk.c:strpbrk
/sys/src/libsec/port/des.c:block_cipher
/sys/src/libsec/port/des.c:des_key_setup
/sys/src/libsec/port/des.c:keycompperm
/sys/src/libsec/port/des.c:triple_block_cipher
[sys] --rwxrwxr-x M 923680 rsc sys 89687 Oct 5 23:09 386/bin/auth/newns
/sys/src/cmd/auth/newns.c:main
/sys/src/cmd/auth/newns.c:rooted
/sys/src/cmd/auth/newns.c:usage
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/fmt/smprint.c:smprint
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 rsc sys 89021 Oct 5 23:09 386/bin/auth/none
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 100637 Oct 5 23:09 386/bin/auth/warning
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/dirread.c:dirread
/sys/src/libc/9sys/dirread.c:dirreadall
/sys/src/libc/port/rune.c:chartorune
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 107968 Oct 5 23:09 386/bin/aux/listen
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/dirread.c:dirread
/sys/src/libc/9sys/dirread.c:dirreadall
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/fmt/sprint.c:sprint
/sys/src/libc/port/pool.c:blocksetdsize
/sys/src/libc/port/pool.c:trim
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 rsc sys 94491 Oct 5 23:09 386/bin/aux/listen1
[sys] --rwxrwxr-x M 923680 glenda sys 252710 Oct 5 23:09 386/bin/aux/sshserve
[sys] --rwxrwxr-x M 923680 glenda sys 170299 Oct 5 23:09 386/bin/ip/ftpd
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 292364 Oct 5 23:09 386/bin/ip/httpd/httpd
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
[sys] --rwxrwxr-x M 923680 glenda sys 237569 Oct 5 23:09 386/bin/ip/imap4d
[sys] --rwxrwxr-x M 923680 glenda sys 219956 Oct 5 23:09 386/bin/ip/ppp
[sys] --rwxrwxr-x M 923680 glenda sys 89977 Oct 5 23:09 386/bin/ip/rexexec
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 123067 Oct 5 23:09 386/bin/ip/telnetd
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/ctime.c:gmtime
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 130567 Oct 5 23:09 386/bin/ip/tftpd
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/9sys/ctime.c:gmtime
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 262187 Oct 5 23:09 386/bin/upas/pop3
/sys/src/cmd/upas/pop3/pop3.c:setuser
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 192895 Oct 5 23:09 386/bin/upas/send
/sys/src/cmd/upas/smtp/rfc822.y:yylex1
/sys/src/cmd/upas/smtp/rfc822.y:yytokname
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 331205 Oct 5 23:09 386/bin/upas/smtpd
/sys/src/cmd/upas/smtp/rfc822.y:yylex1
/sys/src/cmd/upas/smtp/smtpd.y:zzlex1
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/fmt/fmt.c:_fmtinstall
/sys/src/libc/port/strpbrk.c:strpbrk
[sys] --rwxrwxr-x M 923680 glenda sys 101180 Oct 5 23:09 386/init
/sys/src/libauth/newns.c:buildns
/sys/src/libauth/newns.c:callexport
/sys/src/libauth/newns.c:expandarg
/sys/src/libauth/newns.c:famount
/sys/src/libauth/newns.c:nextdollar
/sys/src/libauth/newns.c:nsfile
/sys/src/libauth/newns.c:nsop
/sys/src/libauth/newns.c:setenv
/sys/src/libauth/newns.c:splitargs
/sys/src/libauth/newns.c:unquote
/sys/src/libc/port/rune.c:chartorune
/sys/src/libc/port/strpbrk.c:strpbrk
/sys/src/libsec/port/des.c:block_cipher
/sys/src/libsec/port/des.c:des_key_setup
/sys/src/libsec/port/des.c:keycompperm
/sys/src/libsec/port/des.c:triple_block_cipher
[sys] --rw-rw-r-- M 923680 glenda sys 58648 Oct 5 23:09 386/lib/libauth.a
New program from Christoph Lohmann.
[rsc] --rw-rw-r-- M 923680 rsc sys 1233 Oct 5 20:02 sys/man/4/httpfile
[rsc] --rw------- M 923680 rsc sys 10037 Oct 5 20:02 sys/src/cmd/ip/httpfile.c
|