Browse Source

Plan 9 from Bell Labs 2007-03-27

David du Colombier 14 years ago
parent
commit
506a80b25d

+ 40 - 39
dist/replica/_plan9.db

@@ -20,7 +20,7 @@
 386/bin/9660srv - 775 sys sys 1168402261 104975
 386/bin/aan - 775 sys sys 1168402261 131298
 386/bin/acid - 775 sys sys 1172808055 401961
-386/bin/acme - 775 sys sys 1168402263 432256
+386/bin/acme - 775 sys sys 1174964422 432256
 386/bin/ape - 20000000775 sys sys 1016944144 0
 386/bin/ape/basename - 775 sys sys 1173754547 134719
 386/bin/ape/cc - 775 sys sys 1168402263 70642
@@ -43,21 +43,21 @@
 386/bin/ascii - 775 sys sys 1168402265 64884
 386/bin/astro - 775 sys sys 1148500574 138871
 386/bin/auth - 20000000775 sys sys 1016920815 0
-386/bin/auth/aescbc - 775 sys sys 1171830297 141337
+386/bin/auth/aescbc - 775 sys sys 1174964423 141321
 386/bin/auth/asn12rsa - 775 sys sys 1168402266 120828
 386/bin/auth/authsrv - 775 sys sys 1172808056 166692
 386/bin/auth/changeuser - 775 sys sys 1168402267 97488
-386/bin/auth/convkeys - 775 sys sys 1171830297 88680
-386/bin/auth/convkeys2 - 775 sys sys 1171830297 88739
+386/bin/auth/convkeys - 775 sys sys 1174964423 88664
+386/bin/auth/convkeys2 - 775 sys sys 1174964423 88723
 386/bin/auth/cron - 775 sys sys 1168402268 144754
 386/bin/auth/debug - 775 sys sys 1168402268 101566
 386/bin/auth/disable - 775 sys sys 1020319057 146
 386/bin/auth/enable - 775 sys sys 1020319057 134
-386/bin/auth/factotum - 775 sys sys 1171830298 322644
+386/bin/auth/factotum - 775 sys sys 1174964424 322628
 386/bin/auth/fgui - 775 sys sys 1168402269 218990
 386/bin/auth/guard.srv - 775 sys sys 1172808056 145120
 386/bin/auth/iam - 775 sys sys 1085076981 50791
-386/bin/auth/keyfs - 775 sys sys 1171830298 116576
+386/bin/auth/keyfs - 775 sys sys 1174964424 116560
 386/bin/auth/login - 775 sys sys 1168402270 104747
 386/bin/auth/newns - 775 sys sys 1168402270 89966
 386/bin/auth/none - 775 sys sys 1168402270 89249
@@ -71,13 +71,13 @@
 386/bin/auth/rsafill - 775 sys sys 1168402273 143968
 386/bin/auth/rsagen - 775 sys sys 1168402273 153528
 386/bin/auth/secretpem - 775 sys sys 1045537944 118526
-386/bin/auth/secstore - 775 sys sys 1171830299 196463
+386/bin/auth/secstore - 775 sys sys 1174964425 196447
 386/bin/auth/secstored - 775 sys sys 1172808057 198043
 386/bin/auth/secuser - 775 sys sys 1168402275 153231
 386/bin/auth/status - 775 sys sys 1020319060 738
 386/bin/auth/uniq - 775 sys sys 1168402275 63314
 386/bin/auth/warning - 775 sys sys 1168402275 101295
-386/bin/auth/wrkey - 775 sys sys 1171830299 76274
+386/bin/auth/wrkey - 775 sys sys 1174964425 76258
 386/bin/aux - 20000000775 sys sys 1016920817 0
 386/bin/aux/8prefix - 775 sys sys 1168402276 67103
 386/bin/aux/9pcon - 775 sys sys 1168402276 95153
@@ -192,6 +192,7 @@
 386/bin/cpp - 775 sys sys 1168402297 150459
 386/bin/cpu - 775 sys sys 1168402297 139484
 386/bin/crop - 775 sys sys 1168402298 116374
+386/bin/cwfs - 775 sys sys 1174964426 366681
 386/bin/date - 775 sys sys 1148500618 43311
 386/bin/db - 775 sys sys 1172203054 346003
 386/bin/dc - 775 sys sys 1168402299 99260
@@ -209,7 +210,7 @@
 386/bin/disk/exsort - 775 sys sys 1168402301 60455
 386/bin/disk/fdisk - 775 sys sys 1168402301 104096
 386/bin/disk/format - 775 sys sys 1168402302 89778
-386/bin/disk/kfs - 775 sys sys 1171830300 250080
+386/bin/disk/kfs - 775 sys sys 1174964427 250064
 386/bin/disk/kfscmd - 775 sys sys 1148500626 38257
 386/bin/disk/ksync - 775 sys sys 1020319074 302
 386/bin/disk/mbr - 775 sys sys 1168402302 73918
@@ -281,7 +282,7 @@
 386/bin/ico - 775 sys sys 1168402316 162132
 386/bin/iconv - 775 sys sys 1168402316 113629
 386/bin/idiff - 775 sys sys 1168402317 76342
-386/bin/import - 775 sys sys 1168402317 101661
+386/bin/import - 775 sys sys 1174964428 101761
 386/bin/iostats - 775 sys sys 1168402317 100378
 386/bin/ip - 20000000775 sys sys 1016920851 0
 386/bin/ip/dhcpclient - 775 sys sys 1168402317 94377
@@ -328,7 +329,7 @@
 386/bin/ls - 775 sys sys 1169783949 82470
 386/bin/mc - 775 sys sys 1168402333 134306
 386/bin/md5sum - 775 sys sys 1168402334 61498
-386/bin/mk - 775 sys sys 1168402334 144878
+386/bin/mk - 775 sys sys 1174933355 144891
 386/bin/mkdir - 775 sys sys 1168402334 61205
 386/bin/mkpaqfs - 775 sys sys 1168402334 94732
 386/bin/mntgen - 775 sys sys 1168402335 145458
@@ -340,10 +341,10 @@
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1169612028 150911
 386/bin/ndb/csquery - 775 sys sys 1168402337 61702
-386/bin/ndb/dns - 775 sys sys 1174704817 277690
-386/bin/ndb/dnsdebug - 775 sys sys 1174704818 252154
+386/bin/ndb/dns - 775 sys sys 1174964429 277544
+386/bin/ndb/dnsdebug - 775 sys sys 1174964430 252008
 386/bin/ndb/dnsquery - 775 sys sys 1174704818 64417
-386/bin/ndb/dnstcp - 775 sys sys 1174704819 250526
+386/bin/ndb/dnstcp - 775 sys sys 1174964431 250380
 386/bin/ndb/ipquery - 775 sys sys 1169612031 96994
 386/bin/ndb/mkdb - 775 sys sys 1168402340 64211
 386/bin/ndb/mkhash - 775 sys sys 1168402340 84780
@@ -376,7 +377,7 @@
 386/bin/ps - 775 sys sys 1168402346 68812
 386/bin/pwd - 775 sys sys 1148500685 36932
 386/bin/ramfs - 775 sys sys 1168402346 90080
-386/bin/rc - 775 sys sys 1166241174 143268
+386/bin/rc - 775 sys sys 1174933356 144261
 386/bin/rdbfs - 775 sys sys 1168402346 174602
 386/bin/read - 775 sys sys 1168402347 58283
 386/bin/replica - 20000000775 sys sys 1018321168 0
@@ -546,7 +547,7 @@
 386/lib/lib9p.a - 664 sys sys 1172780592 91012
 386/lib/libString.a - 664 sys sys 1168402362 22126
 386/lib/libauth.a - 664 sys sys 1171743876 58570
-386/lib/libauthsrv.a - 664 sys sys 1171830301 35838
+386/lib/libauthsrv.a - 664 sys sys 1174964431 35790
 386/lib/libbin.a - 664 sys sys 1168402363 2534
 386/lib/libbio.a - 664 sys sys 1168402363 25980
 386/lib/libc.a - 664 sys sys 1168402364 503128
@@ -7067,7 +7068,7 @@ sys/lib/tmac/mmt - 664 sys sys 964454718 40915
 sys/lib/tmac/name.sed - 664 sys sys 944956202 62
 sys/lib/tmac/sendcover - 775 sys sys 944956202 50
 sys/lib/tmac/strings.mm - 664 sys sys 964455723 2146
-sys/lib/tmac/tmac.an - 664 sys sys 1174803319 8439
+sys/lib/tmac/tmac.an - 664 sys sys 1174885603 8441
 sys/lib/tmac/tmac.anhtml - 664 sys sys 984696197 105
 sys/lib/tmac/tmac.antimes - 664 sys sys 964454718 7809
 sys/lib/tmac/tmac.bits - 664 sys sys 944956202 1089
@@ -9069,7 +9070,7 @@ sys/src/boot/pc/ether8390.h - 664 sys sys 1015007951 1392
 sys/src/boot/pc/etherec2t.c - 664 sys sys 1015007951 3598
 sys/src/boot/pc/etherelnk3.c - 664 sys sys 1158012439 44736
 sys/src/boot/pc/etherelnk3x.c - 664 sys sys 1015007951 24989
-sys/src/boot/pc/etherga620.c - 664 sys sys 1174080071 26933
+sys/src/boot/pc/etherga620.c - 664 sys sys 1174944362 26969
 sys/src/boot/pc/etherga620fw.h - 664 sys sys 1174080072 222295
 sys/src/boot/pc/etherif.h - 664 sys sys 1174077279 1338
 sys/src/boot/pc/etherigbe.c - 664 sys sys 1140710606 40769
@@ -9344,7 +9345,7 @@ sys/src/cmd/acid/proc.c - 664 sys sys 1143223273 4333
 sys/src/cmd/acid/util.c - 664 sys sys 1136312279 4671
 sys/src/cmd/acme - 20000000775 sys sys 1080134210 0
 sys/src/cmd/acme/acme.c - 664 sys sys 1134233060 19621
-sys/src/cmd/acme/addr.c - 664 sys sys 1111171698 4805
+sys/src/cmd/acme/addr.c - 664 sys sys 1174916026 4851
 sys/src/cmd/acme/buff.c - 664 sys sys 1014926092 5573
 sys/src/cmd/acme/cols.c - 664 sys sys 1111119425 11229
 sys/src/cmd/acme/dat.h - 664 sys sys 1111606459 11106
@@ -9957,7 +9958,7 @@ sys/src/cmd/cwfs/9netics64.8k/mkfile - 664 sys sys 1171519752 28
 sys/src/cmd/cwfs/9p1.c - 664 sys sys 1174716878 29747
 sys/src/cmd/cwfs/9p1.h - 664 sys sys 1171159776 2128
 sys/src/cmd/cwfs/9p1lib.c - 664 sys sys 1171145882 7894
-sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174716894 35170
+sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174942081 35261
 sys/src/cmd/cwfs/README - 664 sys sys 1171520084 344
 sys/src/cmd/cwfs/all.h - 664 sys sys 1174716764 2186
 sys/src/cmd/cwfs/auth.c - 664 sys sys 1174797532 5840
@@ -10004,7 +10005,7 @@ sys/src/cmd/cwfs/juke.c - 664 sys sys 1174799503 28859
 sys/src/cmd/cwfs/lrand.c - 664 sys sys 1171160167 1070
 sys/src/cmd/cwfs/main.c - 664 sys sys 1174799729 9976
 sys/src/cmd/cwfs/malloc.c - 664 sys sys 1174281557 2360
-sys/src/cmd/cwfs/mkfile - 664 sys sys 1174799125 170
+sys/src/cmd/cwfs/mkfile - 664 sys sys 1174941889 201
 sys/src/cmd/cwfs/mworm.c - 664 sys sys 1174370308 4311
 sys/src/cmd/cwfs/net.c - 664 sys sys 1174521421 9939
 sys/src/cmd/cwfs/pc.c - 664 sys sys 1174716747 1718
@@ -12396,7 +12397,7 @@ sys/src/cmd/htmlroff/t9.c - 664 sys sys 1138396082 47
 sys/src/cmd/htmlroff/util.c - 664 sys sys 1138458817 1625
 sys/src/cmd/iconv.c - 664 sys sys 1039753035 1801
 sys/src/cmd/idiff.c - 664 sys sys 1014926695 6896
-sys/src/cmd/import.c - 664 sys sys 1133180705 7028
+sys/src/cmd/import.c - 664 sys sys 1174944074 7118
 sys/src/cmd/init.c - 664 sys sys 1121977160 4462
 sys/src/cmd/iostats - 20000000775 sys sys 1055699098 0
 sys/src/cmd/iostats/iostats.c - 664 sys sys 1140099908 10209
@@ -12732,8 +12733,8 @@ sys/src/cmd/mk/run.c - 664 sys sys 1131289510 5063
 sys/src/cmd/mk/shprint.c - 664 sys sys 952627588 1515
 sys/src/cmd/mk/symtab.c - 664 sys sys 1131289510 1581
 sys/src/cmd/mk/var.c - 664 sys sys 1131289510 530
-sys/src/cmd/mk/varsub.c - 664 sys sys 1131289511 4425
-sys/src/cmd/mk/word.c - 664 sys sys 944961025 2595
+sys/src/cmd/mk/varsub.c - 664 sys sys 1174930010 4297
+sys/src/cmd/mk/word.c - 664 sys sys 1174930010 2709
 sys/src/cmd/mkdir.c - 664 sys sys 1082593106 1026
 sys/src/cmd/mkfile - 664 sys sys 1173736967 2618
 sys/src/cmd/mklib - 664 sys sys 1101213349 618
@@ -12752,16 +12753,16 @@ sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1174690173 10779
 sys/src/cmd/ndb/cs.c - 664 sys sys 1163208159 33080
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
 sys/src/cmd/ndb/dblookup.c - 664 sys sys 1174792290 20940
-sys/src/cmd/ndb/dn.c - 664 sys sys 1174690061 32609
+sys/src/cmd/ndb/dn.c - 664 sys sys 1174930826 32533
 sys/src/cmd/ndb/dnarea.c - 664 sys sys 1174626121 2505
 sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1174626121 3122
-sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1174690047 25752
+sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1174887023 25765
 sys/src/cmd/ndb/dns.c - 664 sys sys 1174626124 15895
-sys/src/cmd/ndb/dns.h - 664 sys sys 1174690654 10460
+sys/src/cmd/ndb/dns.h - 664 sys sys 1174930824 10527
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1174690026 8779
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1174626125 4400
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1174626126 2435
-sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1174689582 7445
+sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1174965165 7479
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1174626126 5497
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711423 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
@@ -13190,28 +13191,28 @@ sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/rc - 20000000775 sys sys 1071884773 0
 sys/src/cmd/rc/code.c - 664 sys sys 1100894086 8215
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
-sys/src/cmd/rc/exec.c - 664 sys sys 1100894087 16525
-sys/src/cmd/rc/exec.h - 664 sys sys 1100894087 2804
+sys/src/cmd/rc/exec.c - 664 sys sys 1174915671 16567
+sys/src/cmd/rc/exec.h - 664 sys sys 1174915671 2828
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
-sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
-sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
+sys/src/cmd/rc/fns.h - 664 sys sys 1174919213 1490
+sys/src/cmd/rc/getflags.c - 664 sys sys 1174915671 3962
 sys/src/cmd/rc/getflags.h - 664 sys sys 944961082 185
 sys/src/cmd/rc/glob.c - 664 sys sys 1055698770 4540
-sys/src/cmd/rc/havefork.c - 664 sys sys 1166459910 3473
+sys/src/cmd/rc/havefork.c - 664 sys sys 1174919214 3714
 sys/src/cmd/rc/haventfork.c - 664 sys sys 1055698771 3122
 sys/src/cmd/rc/here.c - 664 sys sys 1135080780 2504
 sys/src/cmd/rc/io.c - 664 sys sys 1132448641 3752
-sys/src/cmd/rc/io.h - 664 sys sys 1132448641 535
-sys/src/cmd/rc/lex.c - 664 sys sys 1168915241 6199
+sys/src/cmd/rc/io.h - 664 sys sys 1174915672 513
+sys/src/cmd/rc/lex.c - 664 sys sys 1174915672 6203
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
 sys/src/cmd/rc/pcmd.c - 664 sys sys 1100894086 2681
 sys/src/cmd/rc/pfnc.c - 664 sys sys 1100894087 1320
-sys/src/cmd/rc/plan9.c - 664 sys sys 1132448642 9330
+sys/src/cmd/rc/plan9.c - 664 sys sys 1174919214 9934
 sys/src/cmd/rc/rc.h - 664 sys sys 1100894086 3329
-sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
+sys/src/cmd/rc/simple.c - 664 sys sys 1174915673 9018
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
-sys/src/cmd/rc/trap.c - 664 sys sys 1055698780 871
+sys/src/cmd/rc/trap.c - 664 sys sys 1174915673 878
 sys/src/cmd/rc/tree.c - 664 sys sys 1055698780 2071
 sys/src/cmd/rc/unix.c - 664 sys sys 1055698781 8726
 sys/src/cmd/rc/var.c - 664 sys sys 1055698781 1298
@@ -14544,7 +14545,7 @@ sys/src/fs/port - 20000000775 sys sys 1151739200 0
 sys/src/fs/port/9p1.c - 664 sys sys 1140167971 29982
 sys/src/fs/port/9p1.h - 664 sys sys 1140167972 2128
 sys/src/fs/port/9p1lib.c - 664 sys sys 1101627232 7911
-sys/src/fs/port/9p2.c - 664 sys sys 1146785189 36265
+sys/src/fs/port/9p2.c - 664 sys sys 1174941740 36357
 sys/src/fs/port/all.h - 664 sys sys 1146798594 1888
 sys/src/fs/port/auth.c - 664 sys sys 1146785221 7606
 sys/src/fs/port/chk.c - 664 sys sys 1097832483 15683

+ 40 - 39
dist/replica/plan9.db

@@ -20,7 +20,7 @@
 386/bin/9660srv - 775 sys sys 1168402261 104975
 386/bin/aan - 775 sys sys 1168402261 131298
 386/bin/acid - 775 sys sys 1172808055 401961
-386/bin/acme - 775 sys sys 1168402263 432256
+386/bin/acme - 775 sys sys 1174964422 432256
 386/bin/ape - 20000000775 sys sys 1016944144 0
 386/bin/ape/basename - 775 sys sys 1173754547 134719
 386/bin/ape/cc - 775 sys sys 1168402263 70642
@@ -43,21 +43,21 @@
 386/bin/ascii - 775 sys sys 1168402265 64884
 386/bin/astro - 775 sys sys 1148500574 138871
 386/bin/auth - 20000000775 sys sys 1016920815 0
-386/bin/auth/aescbc - 775 sys sys 1171830297 141337
+386/bin/auth/aescbc - 775 sys sys 1174964423 141321
 386/bin/auth/asn12rsa - 775 sys sys 1168402266 120828
 386/bin/auth/authsrv - 775 sys sys 1172808056 166692
 386/bin/auth/changeuser - 775 sys sys 1168402267 97488
-386/bin/auth/convkeys - 775 sys sys 1171830297 88680
-386/bin/auth/convkeys2 - 775 sys sys 1171830297 88739
+386/bin/auth/convkeys - 775 sys sys 1174964423 88664
+386/bin/auth/convkeys2 - 775 sys sys 1174964423 88723
 386/bin/auth/cron - 775 sys sys 1168402268 144754
 386/bin/auth/debug - 775 sys sys 1168402268 101566
 386/bin/auth/disable - 775 sys sys 1020319057 146
 386/bin/auth/enable - 775 sys sys 1020319057 134
-386/bin/auth/factotum - 775 sys sys 1171830298 322644
+386/bin/auth/factotum - 775 sys sys 1174964424 322628
 386/bin/auth/fgui - 775 sys sys 1168402269 218990
 386/bin/auth/guard.srv - 775 sys sys 1172808056 145120
 386/bin/auth/iam - 775 sys sys 1085076981 50791
-386/bin/auth/keyfs - 775 sys sys 1171830298 116576
+386/bin/auth/keyfs - 775 sys sys 1174964424 116560
 386/bin/auth/login - 775 sys sys 1168402270 104747
 386/bin/auth/newns - 775 sys sys 1168402270 89966
 386/bin/auth/none - 775 sys sys 1168402270 89249
@@ -71,13 +71,13 @@
 386/bin/auth/rsafill - 775 sys sys 1168402273 143968
 386/bin/auth/rsagen - 775 sys sys 1168402273 153528
 386/bin/auth/secretpem - 775 sys sys 1045537944 118526
-386/bin/auth/secstore - 775 sys sys 1171830299 196463
+386/bin/auth/secstore - 775 sys sys 1174964425 196447
 386/bin/auth/secstored - 775 sys sys 1172808057 198043
 386/bin/auth/secuser - 775 sys sys 1168402275 153231
 386/bin/auth/status - 775 sys sys 1020319060 738
 386/bin/auth/uniq - 775 sys sys 1168402275 63314
 386/bin/auth/warning - 775 sys sys 1168402275 101295
-386/bin/auth/wrkey - 775 sys sys 1171830299 76274
+386/bin/auth/wrkey - 775 sys sys 1174964425 76258
 386/bin/aux - 20000000775 sys sys 1016920817 0
 386/bin/aux/8prefix - 775 sys sys 1168402276 67103
 386/bin/aux/9pcon - 775 sys sys 1168402276 95153
@@ -192,6 +192,7 @@
 386/bin/cpp - 775 sys sys 1168402297 150459
 386/bin/cpu - 775 sys sys 1168402297 139484
 386/bin/crop - 775 sys sys 1168402298 116374
+386/bin/cwfs - 775 sys sys 1174964426 366681
 386/bin/date - 775 sys sys 1148500618 43311
 386/bin/db - 775 sys sys 1172203054 346003
 386/bin/dc - 775 sys sys 1168402299 99260
@@ -209,7 +210,7 @@
 386/bin/disk/exsort - 775 sys sys 1168402301 60455
 386/bin/disk/fdisk - 775 sys sys 1168402301 104096
 386/bin/disk/format - 775 sys sys 1168402302 89778
-386/bin/disk/kfs - 775 sys sys 1171830300 250080
+386/bin/disk/kfs - 775 sys sys 1174964427 250064
 386/bin/disk/kfscmd - 775 sys sys 1148500626 38257
 386/bin/disk/ksync - 775 sys sys 1020319074 302
 386/bin/disk/mbr - 775 sys sys 1168402302 73918
@@ -281,7 +282,7 @@
 386/bin/ico - 775 sys sys 1168402316 162132
 386/bin/iconv - 775 sys sys 1168402316 113629
 386/bin/idiff - 775 sys sys 1168402317 76342
-386/bin/import - 775 sys sys 1168402317 101661
+386/bin/import - 775 sys sys 1174964428 101761
 386/bin/iostats - 775 sys sys 1168402317 100378
 386/bin/ip - 20000000775 sys sys 1016920851 0
 386/bin/ip/dhcpclient - 775 sys sys 1168402317 94377
@@ -328,7 +329,7 @@
 386/bin/ls - 775 sys sys 1169783949 82470
 386/bin/mc - 775 sys sys 1168402333 134306
 386/bin/md5sum - 775 sys sys 1168402334 61498
-386/bin/mk - 775 sys sys 1168402334 144878
+386/bin/mk - 775 sys sys 1174933355 144891
 386/bin/mkdir - 775 sys sys 1168402334 61205
 386/bin/mkpaqfs - 775 sys sys 1168402334 94732
 386/bin/mntgen - 775 sys sys 1168402335 145458
@@ -340,10 +341,10 @@
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1169612028 150911
 386/bin/ndb/csquery - 775 sys sys 1168402337 61702
-386/bin/ndb/dns - 775 sys sys 1174704817 277690
-386/bin/ndb/dnsdebug - 775 sys sys 1174704818 252154
+386/bin/ndb/dns - 775 sys sys 1174964429 277544
+386/bin/ndb/dnsdebug - 775 sys sys 1174964430 252008
 386/bin/ndb/dnsquery - 775 sys sys 1174704818 64417
-386/bin/ndb/dnstcp - 775 sys sys 1174704819 250526
+386/bin/ndb/dnstcp - 775 sys sys 1174964431 250380
 386/bin/ndb/ipquery - 775 sys sys 1169612031 96994
 386/bin/ndb/mkdb - 775 sys sys 1168402340 64211
 386/bin/ndb/mkhash - 775 sys sys 1168402340 84780
@@ -376,7 +377,7 @@
 386/bin/ps - 775 sys sys 1168402346 68812
 386/bin/pwd - 775 sys sys 1148500685 36932
 386/bin/ramfs - 775 sys sys 1168402346 90080
-386/bin/rc - 775 sys sys 1166241174 143268
+386/bin/rc - 775 sys sys 1174933356 144261
 386/bin/rdbfs - 775 sys sys 1168402346 174602
 386/bin/read - 775 sys sys 1168402347 58283
 386/bin/replica - 20000000775 sys sys 1018321168 0
@@ -546,7 +547,7 @@
 386/lib/lib9p.a - 664 sys sys 1172780592 91012
 386/lib/libString.a - 664 sys sys 1168402362 22126
 386/lib/libauth.a - 664 sys sys 1171743876 58570
-386/lib/libauthsrv.a - 664 sys sys 1171830301 35838
+386/lib/libauthsrv.a - 664 sys sys 1174964431 35790
 386/lib/libbin.a - 664 sys sys 1168402363 2534
 386/lib/libbio.a - 664 sys sys 1168402363 25980
 386/lib/libc.a - 664 sys sys 1168402364 503128
@@ -7067,7 +7068,7 @@ sys/lib/tmac/mmt - 664 sys sys 964454718 40915
 sys/lib/tmac/name.sed - 664 sys sys 944956202 62
 sys/lib/tmac/sendcover - 775 sys sys 944956202 50
 sys/lib/tmac/strings.mm - 664 sys sys 964455723 2146
-sys/lib/tmac/tmac.an - 664 sys sys 1174803319 8439
+sys/lib/tmac/tmac.an - 664 sys sys 1174885603 8441
 sys/lib/tmac/tmac.anhtml - 664 sys sys 984696197 105
 sys/lib/tmac/tmac.antimes - 664 sys sys 964454718 7809
 sys/lib/tmac/tmac.bits - 664 sys sys 944956202 1089
@@ -9069,7 +9070,7 @@ sys/src/boot/pc/ether8390.h - 664 sys sys 1015007951 1392
 sys/src/boot/pc/etherec2t.c - 664 sys sys 1015007951 3598
 sys/src/boot/pc/etherelnk3.c - 664 sys sys 1158012439 44736
 sys/src/boot/pc/etherelnk3x.c - 664 sys sys 1015007951 24989
-sys/src/boot/pc/etherga620.c - 664 sys sys 1174080071 26933
+sys/src/boot/pc/etherga620.c - 664 sys sys 1174944362 26969
 sys/src/boot/pc/etherga620fw.h - 664 sys sys 1174080072 222295
 sys/src/boot/pc/etherif.h - 664 sys sys 1174077279 1338
 sys/src/boot/pc/etherigbe.c - 664 sys sys 1140710606 40769
@@ -9344,7 +9345,7 @@ sys/src/cmd/acid/proc.c - 664 sys sys 1143223273 4333
 sys/src/cmd/acid/util.c - 664 sys sys 1136312279 4671
 sys/src/cmd/acme - 20000000775 sys sys 1080134210 0
 sys/src/cmd/acme/acme.c - 664 sys sys 1134233060 19621
-sys/src/cmd/acme/addr.c - 664 sys sys 1111171698 4805
+sys/src/cmd/acme/addr.c - 664 sys sys 1174916026 4851
 sys/src/cmd/acme/buff.c - 664 sys sys 1014926092 5573
 sys/src/cmd/acme/cols.c - 664 sys sys 1111119425 11229
 sys/src/cmd/acme/dat.h - 664 sys sys 1111606459 11106
@@ -9957,7 +9958,7 @@ sys/src/cmd/cwfs/9netics64.8k/mkfile - 664 sys sys 1171519752 28
 sys/src/cmd/cwfs/9p1.c - 664 sys sys 1174716878 29747
 sys/src/cmd/cwfs/9p1.h - 664 sys sys 1171159776 2128
 sys/src/cmd/cwfs/9p1lib.c - 664 sys sys 1171145882 7894
-sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174716894 35170
+sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174942081 35261
 sys/src/cmd/cwfs/README - 664 sys sys 1171520084 344
 sys/src/cmd/cwfs/all.h - 664 sys sys 1174716764 2186
 sys/src/cmd/cwfs/auth.c - 664 sys sys 1174797532 5840
@@ -10004,7 +10005,7 @@ sys/src/cmd/cwfs/juke.c - 664 sys sys 1174799503 28859
 sys/src/cmd/cwfs/lrand.c - 664 sys sys 1171160167 1070
 sys/src/cmd/cwfs/main.c - 664 sys sys 1174799729 9976
 sys/src/cmd/cwfs/malloc.c - 664 sys sys 1174281557 2360
-sys/src/cmd/cwfs/mkfile - 664 sys sys 1174799125 170
+sys/src/cmd/cwfs/mkfile - 664 sys sys 1174941889 201
 sys/src/cmd/cwfs/mworm.c - 664 sys sys 1174370308 4311
 sys/src/cmd/cwfs/net.c - 664 sys sys 1174521421 9939
 sys/src/cmd/cwfs/pc.c - 664 sys sys 1174716747 1718
@@ -12396,7 +12397,7 @@ sys/src/cmd/htmlroff/t9.c - 664 sys sys 1138396082 47
 sys/src/cmd/htmlroff/util.c - 664 sys sys 1138458817 1625
 sys/src/cmd/iconv.c - 664 sys sys 1039753035 1801
 sys/src/cmd/idiff.c - 664 sys sys 1014926695 6896
-sys/src/cmd/import.c - 664 sys sys 1133180705 7028
+sys/src/cmd/import.c - 664 sys sys 1174944074 7118
 sys/src/cmd/init.c - 664 sys sys 1121977160 4462
 sys/src/cmd/iostats - 20000000775 sys sys 1055699098 0
 sys/src/cmd/iostats/iostats.c - 664 sys sys 1140099908 10209
@@ -12732,8 +12733,8 @@ sys/src/cmd/mk/run.c - 664 sys sys 1131289510 5063
 sys/src/cmd/mk/shprint.c - 664 sys sys 952627588 1515
 sys/src/cmd/mk/symtab.c - 664 sys sys 1131289510 1581
 sys/src/cmd/mk/var.c - 664 sys sys 1131289510 530
-sys/src/cmd/mk/varsub.c - 664 sys sys 1131289511 4425
-sys/src/cmd/mk/word.c - 664 sys sys 944961025 2595
+sys/src/cmd/mk/varsub.c - 664 sys sys 1174930010 4297
+sys/src/cmd/mk/word.c - 664 sys sys 1174930010 2709
 sys/src/cmd/mkdir.c - 664 sys sys 1082593106 1026
 sys/src/cmd/mkfile - 664 sys sys 1173736967 2618
 sys/src/cmd/mklib - 664 sys sys 1101213349 618
@@ -12752,16 +12753,16 @@ sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1174690173 10779
 sys/src/cmd/ndb/cs.c - 664 sys sys 1163208159 33080
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
 sys/src/cmd/ndb/dblookup.c - 664 sys sys 1174792290 20940
-sys/src/cmd/ndb/dn.c - 664 sys sys 1174690061 32609
+sys/src/cmd/ndb/dn.c - 664 sys sys 1174930826 32533
 sys/src/cmd/ndb/dnarea.c - 664 sys sys 1174626121 2505
 sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1174626121 3122
-sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1174690047 25752
+sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1174887023 25765
 sys/src/cmd/ndb/dns.c - 664 sys sys 1174626124 15895
-sys/src/cmd/ndb/dns.h - 664 sys sys 1174690654 10460
+sys/src/cmd/ndb/dns.h - 664 sys sys 1174930824 10527
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1174690026 8779
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1174626125 4400
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1174626126 2435
-sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1174689582 7445
+sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1174965165 7479
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1174626126 5497
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711423 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
@@ -13190,28 +13191,28 @@ sys/src/cmd/ratfs/ratfs.h - 664 sys sys 1016943965 2743
 sys/src/cmd/rc - 20000000775 sys sys 1071884773 0
 sys/src/cmd/rc/code.c - 664 sys sys 1100894086 8215
 sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
-sys/src/cmd/rc/exec.c - 664 sys sys 1100894087 16525
-sys/src/cmd/rc/exec.h - 664 sys sys 1100894087 2804
+sys/src/cmd/rc/exec.c - 664 sys sys 1174915671 16567
+sys/src/cmd/rc/exec.h - 664 sys sys 1174915671 2828
 sys/src/cmd/rc/fmtquote.c - 664 sys sys 1055698768 3609
-sys/src/cmd/rc/fns.h - 664 sys sys 1055698768 1377
-sys/src/cmd/rc/getflags.c - 664 sys sys 1055698770 3954
+sys/src/cmd/rc/fns.h - 664 sys sys 1174919213 1490
+sys/src/cmd/rc/getflags.c - 664 sys sys 1174915671 3962
 sys/src/cmd/rc/getflags.h - 664 sys sys 944961082 185
 sys/src/cmd/rc/glob.c - 664 sys sys 1055698770 4540
-sys/src/cmd/rc/havefork.c - 664 sys sys 1166459910 3473
+sys/src/cmd/rc/havefork.c - 664 sys sys 1174919214 3714
 sys/src/cmd/rc/haventfork.c - 664 sys sys 1055698771 3122
 sys/src/cmd/rc/here.c - 664 sys sys 1135080780 2504
 sys/src/cmd/rc/io.c - 664 sys sys 1132448641 3752
-sys/src/cmd/rc/io.h - 664 sys sys 1132448641 535
-sys/src/cmd/rc/lex.c - 664 sys sys 1168915241 6199
+sys/src/cmd/rc/io.h - 664 sys sys 1174915672 513
+sys/src/cmd/rc/lex.c - 664 sys sys 1174915672 6203
 sys/src/cmd/rc/mkfile - 664 sys sys 1055698774 812
 sys/src/cmd/rc/pcmd.c - 664 sys sys 1100894086 2681
 sys/src/cmd/rc/pfnc.c - 664 sys sys 1100894087 1320
-sys/src/cmd/rc/plan9.c - 664 sys sys 1132448642 9330
+sys/src/cmd/rc/plan9.c - 664 sys sys 1174919214 9934
 sys/src/cmd/rc/rc.h - 664 sys sys 1100894086 3329
-sys/src/cmd/rc/simple.c - 664 sys sys 1055698777 8993
+sys/src/cmd/rc/simple.c - 664 sys sys 1174915673 9018
 sys/src/cmd/rc/subr.c - 664 sys sys 1055698779 1206
 sys/src/cmd/rc/syn.y - 664 sys sys 944961083 3128
-sys/src/cmd/rc/trap.c - 664 sys sys 1055698780 871
+sys/src/cmd/rc/trap.c - 664 sys sys 1174915673 878
 sys/src/cmd/rc/tree.c - 664 sys sys 1055698780 2071
 sys/src/cmd/rc/unix.c - 664 sys sys 1055698781 8726
 sys/src/cmd/rc/var.c - 664 sys sys 1055698781 1298
@@ -14544,7 +14545,7 @@ sys/src/fs/port - 20000000775 sys sys 1151739200 0
 sys/src/fs/port/9p1.c - 664 sys sys 1140167971 29982
 sys/src/fs/port/9p1.h - 664 sys sys 1140167972 2128
 sys/src/fs/port/9p1lib.c - 664 sys sys 1101627232 7911
-sys/src/fs/port/9p2.c - 664 sys sys 1146785189 36265
+sys/src/fs/port/9p2.c - 664 sys sys 1174941740 36357
 sys/src/fs/port/all.h - 664 sys sys 1146798594 1888
 sys/src/fs/port/auth.c - 664 sys sys 1146785221 7606
 sys/src/fs/port/chk.c - 664 sys sys 1097832483 15683

+ 45 - 0
dist/replica/plan9.log

@@ -48044,3 +48044,48 @@
 1174847405 0 c sys/lib/lp/process/generic - 775 sys sys 1174846328 4108
 1174851005 0 c rc/bin/termrc - 775 sys sys 1174850048 2434
 1174851005 1 a rc/bin/diskparts - 775 sys sys 1174849973 392
+1174887006 0 c sys/lib/tmac/tmac.an - 664 sys sys 1174885603 8441
+1174887006 1 c sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1174887023 25765
+1174915805 0 c sys/src/cmd/acme/addr.c - 664 sys sys 1174915679 4851
+1174915805 1 c sys/src/cmd/rc/exec.c - 664 sys sys 1174915671 16567
+1174915805 2 c sys/src/cmd/rc/exec.h - 664 sys sys 1174915671 2828
+1174915805 3 c sys/src/cmd/rc/getflags.c - 664 sys sys 1174915671 3962
+1174915805 4 c sys/src/cmd/rc/io.h - 664 sys sys 1174915672 513
+1174915805 5 c sys/src/cmd/rc/lex.c - 664 sys sys 1174915672 6203
+1174915805 6 c sys/src/cmd/rc/simple.c - 664 sys sys 1174915673 9018
+1174915805 7 c sys/src/cmd/rc/trap.c - 664 sys sys 1174915673 878
+1174917606 0 c sys/src/cmd/acme/addr.c - 664 sys sys 1174916026 4851
+1174919415 0 c 386/bin/rc - 775 sys sys 1174919333 144261
+1174919415 1 c sys/src/cmd/rc/fns.h - 664 sys sys 1174919213 1490
+1174919415 2 c sys/src/cmd/rc/havefork.c - 664 sys sys 1174919214 3714
+1174919415 3 c sys/src/cmd/rc/plan9.c - 664 sys sys 1174919214 9934
+1174930205 0 c 386/bin/mk - 775 sys sys 1174930062 144891
+1174930205 1 c sys/src/cmd/mk/varsub.c - 664 sys sys 1174930010 4297
+1174930205 2 c sys/src/cmd/mk/word.c - 664 sys sys 1174930010 2709
+1174932005 0 c sys/src/cmd/ndb/dn.c - 664 sys sys 1174930826 32533
+1174932005 1 c sys/src/cmd/ndb/dns.h - 664 sys sys 1174930824 10527
+1174933805 0 c 386/bin/mk - 775 sys sys 1174933355 144891
+1174933805 1 c 386/bin/rc - 775 sys sys 1174933356 144261
+1174941006 0 c sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174940753 35215
+1174941006 1 c sys/src/fs/port/9p2.c - 664 sys sys 1174940730 36310
+1174942806 0 c sys/src/cmd/cwfs/9p2.c - 664 sys sys 1174942081 35261
+1174942806 1 c sys/src/cmd/cwfs/mkfile - 664 sys sys 1174941889 201
+1174942806 2 c sys/src/fs/port/9p2.c - 664 sys sys 1174941740 36357
+1174944605 0 c sys/src/boot/pc/etherga620.c - 664 sys sys 1174944362 26969
+1174944605 1 c sys/src/cmd/import.c - 664 sys sys 1174944074 7118
+1174966205 0 c 386/bin/acme - 775 sys sys 1174964422 432256
+1174966205 1 c 386/bin/import - 775 sys sys 1174964428 101761
+1174966205 2 c 386/bin/auth/aescbc - 775 sys sys 1174964423 141321
+1174966205 3 c 386/bin/auth/convkeys - 775 sys sys 1174964423 88664
+1174966205 4 c 386/bin/auth/convkeys2 - 775 sys sys 1174964423 88723
+1174966205 5 c 386/bin/auth/factotum - 775 sys sys 1174964424 322628
+1174966205 6 c 386/bin/auth/keyfs - 775 sys sys 1174964424 116560
+1174966205 7 c 386/bin/auth/secstore - 775 sys sys 1174964425 196447
+1174966205 8 c 386/bin/auth/wrkey - 775 sys sys 1174964425 76258
+1174966205 9 a 386/bin/cwfs - 775 sys sys 1174964426 366681
+1174966205 10 c 386/bin/disk/kfs - 775 sys sys 1174964427 250064
+1174966205 11 c 386/bin/ndb/dns - 775 sys sys 1174964429 277544
+1174966205 12 c 386/bin/ndb/dnsdebug - 775 sys sys 1174964430 252008
+1174966205 13 c 386/bin/ndb/dnstcp - 775 sys sys 1174964431 250380
+1174966205 14 c 386/lib/libauthsrv.a - 664 sys sys 1174964431 35790
+1174966205 15 c sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1174965165 7479

+ 1 - 1
sys/lib/tmac/tmac.an

@@ -468,7 +468,7 @@
 .dsS \s\n()S
 ..\}
 .ifn \{.if \nL<=0 .nr )L 11i
-.ie \{
+.ie \{\c
 .nr )L \nLu
 .\" Changed the above from .nr )L 1000i
 .\" (doesn't work for invocation outside of man) [sape]

+ 4 - 2
sys/src/boot/pc/etherga620.c

@@ -325,9 +325,11 @@ ga620command(Ctlr* ctlr, int cmd, int flags, int index)
 static void
 ga620attach(Ether* edev)
 {
+	int i;
+
 	if (edev->mbps == 0) {
-		print("waiting for link...");
-		while (edev->mbps == 0) {
+		print("ga620: waiting for link...");
+		for (i = 0; i < 30 && edev->mbps == 0; i++) {
 			print(".");
 			delay(1000);
 		}

+ 2 - 1
sys/src/cmd/acme/addr.c

@@ -98,7 +98,8 @@ number(Mntdir *md, Text *t, Range r, int line, int dir, int size, int *evalp)
 			}
 			--q0;
 		}
-		if(line > 0)
+		/* :1-1 is :0 = #0, but :1-2 is an error */
+		if(line > 1)
 			goto Rescue;
 		while(q0>0 && textreadc(t, q0-1)!='\n')
 			--q0;

+ 14 - 9
sys/src/cmd/cwfs/9p2.c

@@ -1460,7 +1460,7 @@ fs_wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 	 * .qid.path, .qid.vers and .muid are checked for validity but
 	 * any attempt to change them is an error.
 	 * .qid.type/.mode, .mtime, .name, .length, .uid and .gid can
-	 * possibly be changed.
+	 * possibly be changed (and .muid iff wstatallow).
 	 *
 	 * 'Op' flags there are changed fields, i.e. it's not a no-op.
 	 * 'Tsync' flags all fields are defaulted.
@@ -1483,14 +1483,6 @@ fs_wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 		}
 		tsync = 0;
 	}
-	if(dir.muid != nil && *dir.muid != '\0'){
-		muid = strtouid(dir.muid);
-		if(muid != d->muid && !wstatallow){
-			error = Ewstatm;
-			goto out;
-		}
-		tsync = 0;
-	}
 
 	/*
 	 * .qid.type and .mode have some bits in common. Only .mode
@@ -1669,6 +1661,18 @@ fs_wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 		tsync = 0;
 	} else
 		uid = d->uid;
+	if(dir.muid != nil && *dir.muid != '\0'){
+		muid = strtouid(dir.muid);
+		if(muid != d->muid){
+			if(!wstatallow){
+				error = Ewstatm;
+				goto out;
+			}
+			op = 1;
+		}
+		tsync = 0;
+	} else
+		muid = d->muid;
 
 	/*
 	 * Check for permission to change group, must be
@@ -1701,6 +1705,7 @@ fs_wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 			strncpy(d->name, dir.name, sizeof(d->name));
 		d->uid = uid;
 		d->gid = gid;
+		d->muid = muid;
 	}
 	if(!tsync)
 		accessdir(p, d, FREAD, file->uid);

+ 2 - 2
sys/src/cmd/cwfs/mkfile

@@ -1,6 +1,6 @@
-first:V: all
+default:V: all
 
-all default clean install installall safeinstall safeinstallall:V:
+all allall first default clean nuke install installall safeinstall safeinstallall update man:V:
 	cd cwfs && mk $target
 emelie.%:V:
 	cd emelie && mk $stem

+ 12 - 7
sys/src/cmd/import.c

@@ -24,6 +24,7 @@ char		*aan = "/bin/aan";
 AuthInfo 	*ai;
 int		debug;
 int		doauth = 1;
+int		timedout;
 
 int	connect(char*, char*, int);
 int	passive(void);
@@ -192,7 +193,7 @@ main(int argc, char **argv)
 		if(fd < 0)
 			sysfatal("can't establish ssl connection: %r");
 	}
-	else if (filterp) 
+	else if (filterp)
 		fd = filter(fd, filterp, argv[0]);
 
 	if(srvpost){
@@ -214,6 +215,7 @@ main(int argc, char **argv)
 void
 catcher(void*, char *msg)
 {
+	timedout = 1;
 	if(strcmp(msg, "alarm") == 0)
 		noted(NCONT);
 	noted(NDFLT);
@@ -254,7 +256,7 @@ old9p(int fd)
 		close(fd);
 		close(p[0]);
 	}
-	return p[1];	
+	return p[1];
 }
 
 int
@@ -273,8 +275,9 @@ connect(char *system, char *tree, int oldserver)
 			authp = "p9sk2";
 		else
 			authp = "p9any";
-	
-		ai = auth_proxy(fd, auth_getkey, "proto=%q role=client %s", authp, keyspec);
+
+		ai = auth_proxy(fd, auth_getkey, "proto=%q role=client %s",
+			authp, keyspec);
 		if(ai == nil)
 			sysfatal("%r: %s", system);
 	}
@@ -287,6 +290,8 @@ connect(char *system, char *tree, int oldserver)
 
 	n = read(fd, buf, sizeof buf - 1);
 	if(n!=2 || buf[0]!='O' || buf[1]!='K'){
+		if (timedout)
+			sysfatal("timed out connecting to %s", na);
 		buf[sizeof buf - 1] = '\0';
 		sysfatal("bad remote tree: %s", buf);
 	}
@@ -336,7 +341,7 @@ filter(int fd, char *cmd, char *host)
 	char newport[256], buf[256], *s;
 	char *argv[16], *file, *pbuf;
 
-	if ((len = read(fd, newport, sizeof newport - 1)) < 0) 
+	if ((len = read(fd, newport, sizeof newport - 1)) < 0)
 		sysfatal("filter: cannot write port; %r\n");
 	newport[len] = '\0';
 
@@ -347,7 +352,7 @@ filter(int fd, char *cmd, char *host)
 	pbuf = strrchr(buf, '!');
 	strecpy(pbuf, buf+sizeof buf, s);
 
-	if(debug) 
+	if(debug)
 		fprint(2, "filter: remote port %s\n", newport);
 
 	argc = tokenize(cmd, argv, nelem(argv)-2);
@@ -377,7 +382,7 @@ filter(int fd, char *cmd, char *host)
 		close(fd);
 		close(p[0]);
 	}
-	return p[1];	
+	return p[1];
 }
 
 static void

+ 4 - 8
sys/src/cmd/mk/varsub.c

@@ -5,7 +5,7 @@ static	Word		*expandvar(char**);
 static	Bufblock	*varname(char**);
 static	Word		*extractpat(char*, char**, char*, char*);
 static	int		submatch(char*, Word*, Word*, int*, char**);
-static	Word		*varmatch(char *, char**);
+static	Word		*varmatch(char *);
 
 Word *
 varsub(char **s)
@@ -20,7 +20,7 @@ varsub(char **s)
 	if(b == 0)
 		return 0;
 
-	w = varmatch(b->start, s);
+	w = varmatch(b->start);
 	freebuf(b);
 	return w;
 }
@@ -57,11 +57,10 @@ varname(char **s)
 }
 
 static Word*
-varmatch(char *name, char **s)
+varmatch(char *name)
 {
 	Word *w;
 	Symtab *sym;
-	char *cp;
 	
 	sym = symlook(name, S_VAR, 0);
 	if(sym){
@@ -70,9 +69,6 @@ varmatch(char *name, char **s)
 			if(w->s && *w->s)
 				return wdup(w);
 	}
-	for(cp = *s; *cp == ' ' || *cp == '\t'; cp++)	/* skip trailing whitespace */
-			;
-	*s = cp;
 	return 0;
 }
 
@@ -92,7 +88,7 @@ expandvar(char **s)
 	cp = *s;
 	if (*cp == '}') {				/* ${name} variant*/
 		(*s)++;					/* skip the '}' */
-		w = varmatch(buf->start, s);
+		w = varmatch(buf->start);
 		freebuf(buf);
 		return w;
 	}

+ 10 - 1
sys/src/cmd/mk/word.c

@@ -97,12 +97,15 @@ nextword(char **s)
 	Word *head, *tail, *w;
 	Rune r;
 	char *cp;
+	int empty;
 
 	cp = *s;
 	b = newbuf();
+restart:
 	head = tail = 0;
 	while(*cp == ' ' || *cp == '\t')		/* leading white space */
 		cp++;
+	empty = 1;
 	while(*cp){
 		cp += chartorune(&r, cp);
 		switch(r)
@@ -114,6 +117,7 @@ nextword(char **s)
 		case '\\':
 		case '\'':
 		case '"':
+			empty = 0;
 			cp = expandquote(cp, r, b);
 			if(cp == 0){
 				fprint(2, "missing closing quote: %s\n", *s);
@@ -122,8 +126,12 @@ nextword(char **s)
 			break;
 		case '$':
 			w = varsub(&cp);
-			if(w == 0)
+			if(w == 0){
+				if(empty)
+					goto restart;
 				break;
+			}
+			empty = 0;
 			if(b->current != b->start){
 				bufcpy(b, w->s, strlen(w->s));
 				insert(b, 0);
@@ -147,6 +155,7 @@ nextword(char **s)
 				tail = tail->next;
 			break;
 		default:
+			empty = 0;
 			rinsert(b, r);
 			break;
 		}

+ 2 - 4
sys/src/cmd/ndb/dn.c

@@ -277,10 +277,8 @@ dnage(DN *dp)
 static void
 upref(DN *dp)
 {
-	if (dp == nil)
-		return;
-	dp->refs++;
-	assert(dp->refs < 120);		/* make sure it fits in a signed char */
+	if (dp != nil)
+		dp->refs++;
 }
 
 /*

+ 6 - 5
sys/src/cmd/ndb/dnresolve.c

@@ -1105,11 +1105,12 @@ netquery(DN *dp, int type, RR *nsrp, Request *reqp, int depth)
 	if(depth > 12)			/* in a recursive loop? */
 		return 0;
 
-	slave(reqp);			/* might fork */
-	/* if so, parent process longjmped to req->mret; we're child slave */
-	if (!reqp->isslave)
-		dnslog("[%d] netquery: slave returned with reqp->isslave==0",
-			getpid());
+	slave(reqp);
+	/*
+	 * slave might have forked.  if so, the parent process longjmped to
+	 * req->mret; we're usually the child slave, but if there are too
+	 * many children already, we're still the same process.
+	 */
 
 	/* don't lock before call to slave so only children can block */
 	lock = reqp->isslave != 0;

+ 2 - 1
sys/src/cmd/ndb/dns.h

@@ -185,8 +185,9 @@ struct DN
 	RR	*rr;		/* resource records off this name */
 	ulong	referenced;	/* time last referenced */
 	ulong	lookuptime;	/* last time we tried to get a better value */
+	/* refs was `char' but we've seen refs > 120, so go whole hog */
+	ulong	refs;		/* for mark and sweep */
 	ushort	class;		/* RR class */
-	char	refs;		/* for mark and sweep */
 	uchar	respcode;	/* response code */
 /* was:	char	nonexistent; /* true if we get an authoritative nx for this domain */
 	ulong	ordinal;

+ 10 - 11
sys/src/cmd/ndb/dnstcp.c

@@ -38,9 +38,9 @@ void
 main(int argc, char *argv[])
 {
 	int len, rcode;
-	uchar buf[512];
 	char tname[32];
 	char *err, *ext = "";
+	uchar buf[512], callip[IPaddrlen];
 	Request req;
 	DNSmsg reqmsg, repmsg;
 
@@ -79,6 +79,8 @@ main(int argc, char *argv[])
 	if(myipaddr(ipaddr, mntpt) < 0)
 		sysfatal("can't read my ip address");
 	dnslog("dnstcp call from %s to %I", caller, ipaddr);
+	memset(callip, 0, sizeof callip);
+	parseip(callip, caller);
 
 	db2cache(1);
 
@@ -102,23 +104,20 @@ main(int argc, char *argv[])
 		memset(&reqmsg, 0, sizeof reqmsg);
 		err = convM2DNS(buf, len, &reqmsg, &rcode);
 		if(err){
-			/* first bytes in buf are source IP addr */
-			dnslog("server: input error: %s from %I",
-				err, buf);
+			dnslog("server: input error: %s from %s", err, caller);
 			break;
 		}
 		if (rcode == 0)
 			if(reqmsg.qdcount < 1){
-				dnslog(
-					"server: no questions from %I", buf);
+				dnslog("server: no questions from %s", caller);
 				break;
 			} else if(reqmsg.flags & Fresp){
-				dnslog(
-				    "server: reply not request from %I", buf);
+				dnslog("server: reply not request from %s",
+					caller);
 				break;
 			} else if((reqmsg.flags & Omask) != Oquery){
-				dnslog("server: op %d from %I",
-					reqmsg.flags & Omask, buf);
+				dnslog("server: op %d from %s",
+					reqmsg.flags & Omask, caller);
 				break;
 			}
 		if(debug)
@@ -132,7 +131,7 @@ main(int argc, char *argv[])
 			if(reqmsg.qd->type == Taxfr)
 				dnzone(&reqmsg, &repmsg, &req);
 			else {
-				dnserver(&reqmsg, &repmsg, &req, buf, rcode);
+				dnserver(&reqmsg, &repmsg, &req, callip, rcode);
 				reply(1, &repmsg, &req);
 				rrfreelist(repmsg.qd);
 				rrfreelist(repmsg.an);

+ 2 - 0
sys/src/cmd/rc/exec.c

@@ -894,6 +894,7 @@ Xerror(char *s)
 	else
 		pfmt(err, "rc (%s): %s: %r\n", argv0, s);
 	flush(err);
+	setstatus("error");
 	while(!runq->iflag) Xreturn();
 }
 
@@ -905,6 +906,7 @@ Xerror1(char *s)
 	else
 		pfmt(err, "rc (%s): %s\n", argv0, s);
 	flush(err);
+	setstatus("error");
 	while(!runq->iflag) Xreturn();
 }
 

+ 2 - 1
sys/src/cmd/rc/exec.h

@@ -64,7 +64,8 @@ int trap[NSIG];				/* number of outstanding traps per type */
 struct builtin{
 	char *name;
 	void (*fnc)(void);
-}Builtin[];
+};
+extern struct builtin Builtin[];
 int eflagok;			/* kludge flag so that -e doesn't exit in startup */
 int havefork;
 

+ 5 - 0
sys/src/cmd/rc/fns.h

@@ -22,6 +22,7 @@ void	Updenv(void);
 void	Vinit(void);
 int	Waitfor(int, int);
 long	Write(int, char*, long);
+void	addwaitpid(int);
 int	advance(void);
 int	back(int);
 void	cleanhere(char*);
@@ -30,10 +31,12 @@ int	compile(tree*);
 char *	list2str(word*);
 int	count(word*);
 void	deglob(char*);
+void	delwaitpid(int);
 void	dotrap(void);
 void	freenodes(void);
 void	freewords(word*);
 void	globlist(void);
+int	havewaitpid(int);
 int	idchr(int);
 void	inttoascii(char*, long);
 void	kinit(void);
@@ -41,7 +44,9 @@ int	mapfd(int);
 int	match(char*, char*, int);
 int	matchfn(char*, char*);
 char**	mkargv(word*);
+void	clearwaitpids(void);
 void	panic(char*, int);
+void	pathinit(void);
 void	poplist(void);
 void	popword(void);
 void	pprompt(void);

+ 2 - 2
sys/src/cmd/rc/getflags.c

@@ -9,7 +9,7 @@ char cmdline[NCMDLINE+1];
 char *cmdname;
 static char *flagarg="";
 static void reverse(char**, char**);
-static scanflag(int, char*);
+static int scanflag(int, char*);
 static void errn(char*, int);
 static void errs(char*);
 static void errc(int);
@@ -92,7 +92,7 @@ reverse(char **p, char **q)
 	for(;p<q;p++,--q){ t=*p; *p=*q; *q = t; }
 }
 
-static
+static int
 scanflag(int c, char *f)
 {
 	int fc, count;

+ 14 - 2
sys/src/cmd/rc/havefork.c

@@ -22,11 +22,13 @@ Xasync(void)
 		Xerror("try again");
 		break;
 	case 0:
+		clearwaitpids();
 		pushredir(ROPEN, null, 0);
 		start(runq->code, runq->pc+1, runq->local);
 		runq->ret = 0;
 		break;
 	default:
+		addwaitpid(pid);
 		close(null);
 		runq->pc = runq->code[runq->pc].i;
 		inttoascii(npid, pid);
@@ -52,12 +54,14 @@ Xpipe(void)
 		Xerror("try again");
 		break;
 	case 0:
+		clearwaitpids();
 		start(p->code, pc+2, runq->local);
 		runq->ret = 0;
 		close(pfd[PRD]);
 		pushredir(ROPEN, pfd[PWR], lfd);
 		break;
 	default:
+		addwaitpid(forkid);
 		start(p->code, p->code[pc].i, runq->local);
 		close(pfd[PWR]);
 		pushredir(ROPEN, pfd[PRD], rfd);
@@ -93,11 +97,13 @@ Xbackq(void)
 		close(pfd[PWR]);
 		return;
 	case 0:
+		clearwaitpids();
 		close(pfd[PRD]);
 		start(runq->code, runq->pc+1, runq->local);
 		pushredir(ROPEN, pfd[PWR], 1);
 		return;
 	default:
+		addwaitpid(pid);
 		close(pfd[PWR]);
 		f = openfd(pfd[PRD]);
 		s = wd;
@@ -134,7 +140,7 @@ void
 Xpipefd(void)
 {
 	struct thread *p = runq;
-	int pc = p->pc;
+	int pc = p->pc, pid;
 	char name[40];
 	int pfd[2];
 	int sidefd, mainfd;
@@ -150,17 +156,19 @@ Xpipefd(void)
 		sidefd = pfd[PRD];
 		mainfd = pfd[PWR];
 	}
-	switch(fork()){
+	switch(pid = fork()){
 	case -1:
 		Xerror("try again");
 		break;
 	case 0:
+		clearwaitpids();
 		start(p->code, pc+2, runq->local);
 		close(mainfd);
 		pushredir(ROPEN, sidefd, p->code[pc].i==READ?1:0);
 		runq->ret = 0;
 		break;
 	default:
+		addwaitpid(pid);
 		close(sidefd);
 		pushredir(ROPEN, mainfd, mainfd);	/* isn't this a noop? */
 		strcpy(name, Fdprefix);
@@ -180,10 +188,12 @@ Xsubshell(void)
 		Xerror("try again");
 		break;
 	case 0:
+		clearwaitpids();
 		start(runq->code, runq->pc+1, runq->local);
 		runq->ret = 0;
 		break;
 	default:
+		addwaitpid(pid);
 		Waitfor(pid, 1);
 		runq->pc = runq->code[runq->pc].i;
 		break;
@@ -201,6 +211,7 @@ execforkexec(void)
 	case -1:
 		return -1;
 	case 0:
+		clearwaitpids();
 		pushword("exec");
 		execexec();
 		strcpy(buf, "can't exec: ");
@@ -208,5 +219,6 @@ execforkexec(void)
 		errstr(buf+n, ERRMAX-n);
 		Exit(buf);
 	}
+	addwaitpid(pid);
 	return pid;
 }

+ 0 - 1
sys/src/cmd/rc/io.h

@@ -1,6 +1,5 @@
 #define	EOF	(-1)
 #define	NBUF	512
-typedef struct io io;
 struct io{
 	int fd;
 	char *bufp, *ebuf, *strp, buf[NBUF];

+ 1 - 1
sys/src/cmd/rc/lex.c

@@ -56,7 +56,7 @@ int
 getnext(void)
 {
 	int c;
-	static peekc = EOF;
+	static int peekc = EOF;
 	if(peekc!=EOF){
 		c = peekc;
 		peekc = EOF;

+ 44 - 0
sys/src/cmd/rc/plan9.c

@@ -207,7 +207,11 @@ Waitfor(int pid, int)
 	Waitmsg *w;
 	char errbuf[ERRMAX];
 
+	if(pid >= 0 && !havewaitpid(pid))
+		return 0;
+
 	while((w = wait()) != nil){
+		delwaitpid(w->pid);
 		if(w->pid==pid){
 			setstatus(w->msg);
 			free(w);
@@ -593,3 +597,43 @@ Malloc(ulong n)
 {
 	return malloc(n);
 }
+
+int *waitpids;
+int nwaitpids;
+
+void
+addwaitpid(int pid)
+{
+	waitpids = realloc(waitpids, (nwaitpids+1)*sizeof waitpids[0]);
+	if(waitpids == 0)
+		panic("Can't realloc %d waitpids", nwaitpids+1);
+	waitpids[nwaitpids++] = pid;
+}
+
+void
+delwaitpid(int pid)
+{
+	int r, w;
+	
+	for(r=w=0; r<nwaitpids; r++)
+		if(waitpids[r] != pid)
+			waitpids[w++] = waitpids[r];
+	nwaitpids = w;
+}
+
+void
+clearwaitpids(void)
+{
+	nwaitpids = 0;
+}
+
+int
+havewaitpid(int pid)
+{
+	int i;
+
+	for(i=0; i<nwaitpids; i++)
+		if(waitpids[i] == pid)
+			return 1;
+	return 0;
+}

+ 4 - 3
sys/src/cmd/rc/simple.c

@@ -9,6 +9,7 @@
 /*
  * Search through the following code to see if we're just going to exit.
  */
+int
 exitnext(void){
 	union code *c=&runq->code[runq->pc];
 	while(c->f==Xpopredir) c++;
@@ -396,18 +397,18 @@ execflag(void)
 	char *letter, *val;
 	switch(count(runq->argv->words)){
 	case 2:
-		setstatus(flag[runq->argv->words->next->word[0]]?"":"flag not set");
+		setstatus(flag[(uchar)runq->argv->words->next->word[0]]?"":"flag not set");
 		break;
 	case 3:
 		letter = runq->argv->words->next->word;
 		val = runq->argv->words->next->next->word;
 		if(strlen(letter)==1){
 			if(strcmp(val, "+")==0){
-				flag[letter[0]] = flagset;
+				flag[(uchar)letter[0]] = flagset;
 				break;
 			}
 			if(strcmp(val, "-")==0){
-				flag[letter[0]] = 0;
+				flag[(uchar)letter[0]] = 0;
 				break;
 			}
 		}

+ 1 - 1
sys/src/cmd/rc/trap.c

@@ -2,7 +2,7 @@
 #include "exec.h"
 #include "fns.h"
 #include "io.h"
-char *Signame[];
+extern char *Signame[];
 
 void
 dotrap(void)

+ 15 - 9
sys/src/fs/port/9p2.c

@@ -1505,7 +1505,7 @@ wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 	 * .qid.path, .qid.vers and .muid are checked for validity but
 	 * any attempt to change them is an error.
 	 * .qid.type/.mode, .mtime, .name, .length, .uid and .gid can
-	 * possibly be changed.
+	 * possibly be changed (and .muid iff wstatallow).
 	 *
 	 * 'Op' flags there are changed fields, i.e. it's not a no-op.
 	 * 'Tsync' flags all fields are defaulted.
@@ -1528,14 +1528,6 @@ wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 		}
 		tsync = 0;
 	}
-	if(dir.muid != nil && *dir.muid != '\0'){
-		muid = strtouid(dir.muid);
-		if(muid != d->muid && !wstatallow){
-			error = Ewstatm;
-			goto out;
-		}
-		tsync = 0;
-	}
 
 	/*
 	 * .qid.type and .mode have some bits in common. Only .mode
@@ -1719,6 +1711,19 @@ wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 	}
 	else
 		uid = d->uid;
+	if(dir.muid != nil && *dir.muid != '\0'){
+		muid = strtouid(dir.muid);
+		if(muid != d->muid){
+			if(!wstatallow){
+				error = Ewstatm;
+				goto out;
+			}
+			op = 1;
+		}
+		tsync = 0;
+	}
+	else
+		muid = d->muid;
 
 	/*
 	 * Check for permission to change group, must be
@@ -1751,6 +1756,7 @@ wstat(Chan* chan, Fcall* f, Fcall*, char* strs)
 			strncpy(d->name, dir.name, sizeof(d->name));
 		d->uid = uid;
 		d->gid = gid;
+		d->muid = muid;
 	}
 	if(!tsync)
 		accessdir(p, d, FREAD, file->uid);