Browse Source

Plan 9 from Bell Labs 2005-08-23

David du Colombier 18 years ago
parent
commit
bde00b6c61

+ 32 - 12
dist/replica/_plan9.db

@@ -904,9 +904,9 @@ lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict/README.pgw - 664 sys sys 1063660179 147
 lib/dict/README.roget - 664 sys sys 1100894426 105
 lib/face - 20000000775 sys sys 945049943 0
-lib/face/.machinelist - 664 sys sys 944945676 97
+lib/face/.machinelist - 664 sys sys 1124711522 87
 lib/face/48x48x1 - 20000000775 sys sys 1123100640 0
-lib/face/48x48x1/.dict - 664 sys sys 1079054327 9812
+lib/face/48x48x1/.dict - 664 sys sys 1124711604 9837
 lib/face/48x48x1/a - 20000000775 sys sys 1123100687 0
 lib/face/48x48x1/a/acsnet.1 - 664 sys sys 1020313578 1056
 lib/face/48x48x1/a/adb.1 - 664 sys sys 1020313578 1200
@@ -1218,7 +1218,7 @@ lib/face/48x48x1/x - 20000000775 sys sys 1020895709 0
 lib/face/48x48x1/y - 20000000775 sys sys 1020895709 0
 lib/face/48x48x1/z - 20000000775 sys sys 1020895709 0
 lib/face/48x48x2 - 20000000775 sys sys 1123100640 0
-lib/face/48x48x2/.dict - 664 sys sys 1059677865 534
+lib/face/48x48x2/.dict - 664 sys sys 1124711592 559
 lib/face/48x48x2/a - 20000000775 sys sys 1039727283 0
 lib/face/48x48x2/a/adb.1 - 664 sys sys 944941681 1776
 lib/face/48x48x2/a/andrew.1 - 664 sys sys 944941681 1776
@@ -1270,7 +1270,7 @@ lib/face/48x48x2/x - 20000000775 sys sys 1020895710 0
 lib/face/48x48x2/y - 20000000775 sys sys 1020895710 0
 lib/face/48x48x2/z - 20000000775 sys sys 1020895710 0
 lib/face/48x48x4 - 20000000775 sys sys 944941894 0
-lib/face/48x48x4/.dict - 664 sys sys 1103981657 2530
+lib/face/48x48x4/.dict - 664 sys sys 1124711578 2496
 lib/face/48x48x4/Z - 20000000775 sys sys 944945342 0
 lib/face/48x48x4/a - 20000000775 sys sys 944945701 0
 lib/face/48x48x4/a/adb.1 - 664 sys sys 944941890 962
@@ -5763,7 +5763,7 @@ sys/games - 20000000775 sys sys 952648872 0
 sys/games/lib - 20000000775 sys sys 952648879 0
 sys/games/lib/4scores - 10000000664 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000664 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1124666623 255050
+sys/games/lib/fortunes - 664 sys sys 1124716792 255238
 sys/games/lib/mahjongg - 20000000775 sys sys 1095792278 0
 sys/games/lib/mahjongg/backgrounds - 20000000775 sys sys 1095792293 0
 sys/games/lib/mahjongg/backgrounds/default.bit - 664 sys sys 1095792293 346803
@@ -6026,7 +6026,7 @@ sys/include/httpd.h - 664 sys sys 1091904418 5771
 sys/include/ip.h - 664 sys sys 1103554773 2989
 sys/include/keyboard.h - 664 sys sys 1079577798 815
 sys/include/libc.h - 664 sys sys 1115925565 19623
-sys/include/libsec.h - 664 sys sys 1084318867 9264
+sys/include/libsec.h - 664 sys sys 1124709121 9345
 sys/include/mach.h - 664 sys sys 1119476886 8368
 sys/include/memdraw.h - 664 sys sys 1091904419 5645
 sys/include/memlayer.h - 664 sys sys 1051031022 1851
@@ -7489,7 +7489,7 @@ sys/man/2/print - 664 sys sys 1115941566 8852
 sys/man/2/privalloc - 664 sys sys 984709633 651
 sys/man/2/proto - 664 sys sys 969499889 2948
 sys/man/2/pushssl - 664 sys sys 958249503 1032
-sys/man/2/pushtls - 664 sys sys 1087829666 4781
+sys/man/2/pushtls - 664 sys sys 1124711123 5618
 sys/man/2/qball - 664 sys sys 950892866 2000
 sys/man/2/qsort - 664 sys sys 944959694 763
 sys/man/2/quaternion - 664 sys sys 950892867 3421
@@ -7606,7 +7606,7 @@ sys/man/4/usb - 664 sys sys 1112038986 4430
 sys/man/4/usbd - 664 sys sys 1018386778 731
 sys/man/4/vacfs - 664 sys sys 1084333062 1545
 sys/man/4/webcookies - 664 sys sys 1019828742 3525
-sys/man/4/webfs - 664 sys sys 1123943673 6454
+sys/man/4/webfs - 664 sys sys 1124711926 6518
 sys/man/4/wikifs - 664 sys sys 1111765301 7505
 sys/man/5 - 20000000775 sys sys 1015024846 0
 sys/man/5/0intro - 664 sys sys 1072793193 14106
@@ -8099,7 +8099,7 @@ sys/src/9/port/pgrp.c - 664 sys sys 1072704671 3940
 sys/src/9/port/portclock.c - 664 sys sys 1102093397 4556
 sys/src/9/port/portdat.h - 664 sys sys 1109541435 22233
 sys/src/9/port/portfns.h - 664 sys sys 1123647283 10976
-sys/src/9/port/portmkfile - 664 sys sys 1109202242 2043
+sys/src/9/port/portmkfile - 664 sys sys 1124708650 2052
 sys/src/9/port/print.c - 664 sys sys 1014931178 227
 sys/src/9/port/proc.c - 664 sys sys 1099760501 28207
 sys/src/9/port/qio.c - 664 sys sys 1070287837 23562
@@ -9548,7 +9548,7 @@ sys/src/cmd/aux/mnihongo/mnihongo.c - 664 sys sys 946759402 6406
 sys/src/cmd/aux/mnihongo/tmac.nihongo - 664 sys sys 944960789 22
 sys/src/cmd/aux/mouse.c - 664 sys sys 1063855425 7049
 sys/src/cmd/aux/ms2.c - 664 sys sys 1124305056 3153
-sys/src/cmd/aux/msexceltables.c - 664 sys sys 1116594581 13722
+sys/src/cmd/aux/msexceltables.c - 664 sys sys 1124709007 13935
 sys/src/cmd/aux/mswordstrings.c - 664 sys sys 952201344 5767
 sys/src/cmd/aux/na - 20000000775 sys sys 955036627 0
 sys/src/cmd/aux/na/mkfile - 664 sys sys 955036627 121
@@ -12248,7 +12248,7 @@ sys/src/cmd/ndb/dnserver.c - 664 sys sys 1021579994 3687
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1120564714 2198
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1063861697 7085
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1055701924 5277
-sys/src/cmd/ndb/ipquery.c - 664 sys sys 960335375 760
+sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711426 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
 sys/src/cmd/ndb/mkfile - 664 sys sys 1055701930 1877
 sys/src/cmd/ndb/mkhash.c - 664 sys sys 1014926160 2899
@@ -13634,6 +13634,7 @@ sys/src/cmd/webfs/mkfile - 664 sys sys 1032665986 340
 sys/src/cmd/webfs/plumb.c - 664 sys sys 1015090008 2761
 sys/src/cmd/webfs/url.c - 664 sys sys 1019240175 24238
 sys/src/cmd/webfs/util.c - 664 sys sys 1015015823 1211
+sys/src/cmd/webfs/webget.c - 664 sys sys 1124711795 1589
 sys/src/cmd/webfsget.c - 664 sys sys 1068413017 1595
 sys/src/cmd/wikifs - 20000000775 sys sys 1018211094 0
 sys/src/cmd/wikifs/fs.c - 664 sys sys 1122335732 15656
@@ -14799,7 +14800,7 @@ sys/src/libsec/port/sha1pickle.c - 664 sys sys 988225292 717
 sys/src/libsec/port/smallprimes.c - 664 sys sys 984710525 6851
 sys/src/libsec/port/smallprimetest.c - 664 sys sys 984710525 70640
 sys/src/libsec/port/thumb.c - 664 sys sys 1019832052 1891
-sys/src/libsec/port/tlshand.c - 664 sys sys 1109079424 54272
+sys/src/libsec/port/tlshand.c - 664 sys sys 1124709122 54987
 sys/src/libsec/port/x509.c - 664 sys sys 1063853597 50342
 sys/src/libsec/power - 20000000775 sys sys 984710502 0
 sys/src/libsec/power/mkfile - 664 sys sys 1032061453 139
@@ -14957,3 +14958,22 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/hget - 775 sys sys 1124766755 232366
+386/bin/vncs - 775 sys sys 1124766763 471616
+386/bin/vncv - 775 sys sys 1124766766 518438
+386/bin/ftpfs - 775 sys sys 1124766754 271942
+386/bin/webfs - 775 sys sys 1124766766 349594
+386/bin/aux/msexceltables - 775 sys sys 1124766753 81264
+386/bin/ip/httpd/httpd - 775 sys sys 1124766756 290737
+386/bin/ndb/ipquery - 775 sys sys 1124766757 95488
+386/bin/tlsclient - 775 sys sys 1124766757 197593
+386/bin/tlssrv - 775 sys sys 1124766758 197831
+386/bin/upas/fs - 775 sys sys 1124766759 332762
+386/bin/upas/pop3 - 775 sys sys 1124766760 260297
+386/bin/upas/smtp - 775 sys sys 1124766761 274266
+386/bin/upas/smtpd - 775 sys sys 1124766762 329315
+386/lib/libc.a - 664 sys sys 1124766768 502522
+386/lib/libhttpd.a - 664 sys sys 1124766768 99488
+386/lib/libmp.a - 664 sys sys 1124766769 79532
+386/lib/libsec.a - 664 sys sys 1124766771 645078
+386/lib/libventi.a - 664 sys sys 1124766772 97708

+ 32 - 31
dist/replica/plan9.db

@@ -118,7 +118,7 @@
 386/bin/aux/mnihongo - 775 sys sys 1115950044 139321
 386/bin/aux/mouse - 775 sys sys 1115950044 44026
 386/bin/aux/ms2 - 775 sys sys 1124335228 85677
-386/bin/aux/msexceltables - 775 sys sys 1116644791 81249
+386/bin/aux/msexceltables - 775 sys sys 1124766753 81264
 386/bin/aux/mswordstrings - 775 sys sys 1115950044 65317
 386/bin/aux/na - 775 sys sys 1115950045 154186
 386/bin/aux/nfsmount - 775 sys sys 1115950045 234092
@@ -243,7 +243,7 @@
 386/bin/fs/v10fs - 775 sys sys 1115950073 94571
 386/bin/fs/v6fs - 775 sys sys 1115950073 94489
 386/bin/fs/zipfs - 775 sys sys 1115950074 109088
-386/bin/ftpfs - 775 sys sys 1116903732 271518
+386/bin/ftpfs - 775 sys sys 1124766754 271942
 386/bin/games - 20000000775 sys sys 1096298711 0
 386/bin/games/4s - 775 sys sys 1120619353 177844
 386/bin/games/5s - 775 sys sys 1120619353 180356
@@ -266,7 +266,7 @@
 386/bin/gview - 775 sys sys 1123384234 238204
 386/bin/gzip - 775 sys sys 1115950078 84762
 386/bin/hayes - 775 sys sys 1115950078 64556
-386/bin/hget - 775 sys sys 1118891247 231963
+386/bin/hget - 775 sys sys 1124766755 232366
 386/bin/history - 775 sys sys 1116903733 75357
 386/bin/hoc - 775 sys sys 1115950079 99875
 386/bin/html2ms - 775 sys sys 1115950079 66095
@@ -285,7 +285,7 @@
 386/bin/ip/gping - 775 sys sys 1116126318 182819
 386/bin/ip/hogports - 775 sys sys 1118632064 42883
 386/bin/ip/httpd - 20000000775 sys sys 1016920846 0
-386/bin/ip/httpd/httpd - 775 sys sys 1115950083 290319
+386/bin/ip/httpd/httpd - 775 sys sys 1124766756 290737
 386/bin/ip/httpd/imagemap - 775 sys sys 1115950084 114785
 386/bin/ip/httpd/man2html - 775 sys sys 1115950084 123072
 386/bin/ip/httpd/netlib_find - 775 sys sys 1115950084 115630
@@ -335,7 +335,7 @@
 386/bin/ndb/dnsdebug - 775 sys sys 1123643767 194702
 386/bin/ndb/dnsquery - 775 sys sys 1120619354 63643
 386/bin/ndb/dnstcp - 775 sys sys 1123643767 193343
-386/bin/ndb/ipquery - 775 sys sys 1116126323 95480
+386/bin/ndb/ipquery - 775 sys sys 1124766757 95488
 386/bin/ndb/mkdb - 775 sys sys 1115950097 63982
 386/bin/ndb/mkhash - 775 sys sys 1115950097 83917
 386/bin/ndb/mkhosts - 775 sys sys 1115950097 84963
@@ -420,8 +420,8 @@
 386/bin/telnet - 775 sys sys 1115950118 80364
 386/bin/test - 775 sys sys 1115950119 69853
 386/bin/time - 775 sys sys 1115950119 61386
-386/bin/tlsclient - 775 sys sys 1115950119 197187
-386/bin/tlssrv - 775 sys sys 1115950120 197434
+386/bin/tlsclient - 775 sys sys 1124766757 197593
+386/bin/tlssrv - 775 sys sys 1124766758 197831
 386/bin/togif - 775 sys sys 1115950120 189766
 386/bin/toico - 775 sys sys 1115950121 123524
 386/bin/topng - 775 sys sys 1115950121 138328
@@ -445,7 +445,7 @@
 386/bin/upas/bayes - 775 sys sys 1064598344 70530
 386/bin/upas/deliver - 775 sys sys 1116990554 100066
 386/bin/upas/filter - 775 sys sys 1116990554 147609
-386/bin/upas/fs - 775 sys sys 1121915493 332331
+386/bin/upas/fs - 775 sys sys 1124766759 332762
 386/bin/upas/isspam - 775 sys sys 1064598349 38
 386/bin/upas/list - 775 sys sys 1115950126 82776
 386/bin/upas/marshal - 775 sys sys 1124075449 132904
@@ -455,14 +455,14 @@
 386/bin/upas/msgcat - 775 sys sys 1064598353 38
 386/bin/upas/msgtok - 775 sys sys 1064598354 75149
 386/bin/upas/nedmail - 775 sys sys 1116990556 156591
-386/bin/upas/pop3 - 775 sys sys 1119496663 259900
+386/bin/upas/pop3 - 775 sys sys 1124766760 260297
 386/bin/upas/qer - 775 sys sys 1116990557 100127
 386/bin/upas/ratfs - 775 sys sys 1119496663 111358
 386/bin/upas/runq - 775 sys sys 1116990557 113778
 386/bin/upas/scanmail - 775 sys sys 1116990557 129045
 386/bin/upas/send - 775 sys sys 1116990558 191823
-386/bin/upas/smtp - 775 sys sys 1119496663 273869
-386/bin/upas/smtpd - 775 sys sys 1120792315 328918
+386/bin/upas/smtp - 775 sys sys 1124766761 274266
+386/bin/upas/smtpd - 775 sys sys 1124766762 329315
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/testscan - 775 sys sys 1115950131 83668
 386/bin/upas/token - 775 sys sys 1115950132 77554
@@ -495,13 +495,13 @@
 386/bin/venti/verifyarena - 775 sys sys 1115950139 104270
 386/bin/venti/wrarena - 775 sys sys 1115950140 176179
 386/bin/venti/write - 775 sys sys 1115950140 102499
-386/bin/vncs - 775 sys sys 1120792316 471216
-386/bin/vncv - 775 sys sys 1115950142 518017
+386/bin/vncs - 775 sys sys 1124766763 471616
+386/bin/vncv - 775 sys sys 1124766766 518438
 386/bin/vt - 775 sys sys 1115950143 173664
 386/bin/vtdump - 775 sys sys 1119496667 159467
 386/bin/wc - 775 sys sys 1115950143 41156
 386/bin/webcookies - 775 sys sys 1119496667 161521
-386/bin/webfs - 775 sys sys 1119496668 349179
+386/bin/webfs - 775 sys sys 1124766766 349594
 386/bin/webfsget - 775 sys sys 1115950144 39143
 386/bin/wikifs - 775 sys sys 1122347400 201648
 386/bin/winwatch - 775 sys sys 1115950145 154555
@@ -539,7 +539,7 @@
 386/lib/libauthsrv.a - 664 sys sys 1117249746 34098
 386/lib/libbin.a - 664 sys sys 1115950150 2534
 386/lib/libbio.a - 664 sys sys 1115950150 26078
-386/lib/libc.a - 664 sys sys 1121398861 502522
+386/lib/libc.a - 664 sys sys 1124766768 502522
 386/lib/libcomplete.a - 664 sys sys 1115950151 6370
 386/lib/libcontrol.a - 664 sys sys 1115950152 274922
 386/lib/libdisk.a - 664 sys sys 1115950152 42234
@@ -548,22 +548,22 @@
 386/lib/libframe.a - 664 sys sys 1115950153 66060
 386/lib/libgeometry.a - 664 sys sys 1115950153 50470
 386/lib/libhtml.a - 664 sys sys 1115950154 219972
-386/lib/libhttpd.a - 664 sys sys 1115950154 99488
+386/lib/libhttpd.a - 664 sys sys 1124766768 99488
 386/lib/libip.a - 664 sys sys 1116126324 35602
 386/lib/libl.a - 664 sys sys 1115950154 5384
 386/lib/libmach.a - 664 sys sys 1120619355 755696
 386/lib/libmemdraw.a - 664 sys sys 1120792317 284130
 386/lib/libmemlayer.a - 664 sys sys 1115950157 47360
-386/lib/libmp.a - 664 sys sys 1115950157 79532
+386/lib/libmp.a - 664 sys sys 1124766769 79532
 386/lib/libndb.a - 664 sys sys 1115950157 60666
 386/lib/libplumb.a - 664 sys sys 1115950157 18876
 386/lib/libregexp.a - 664 sys sys 1115950157 37464
 386/lib/libscribble.a - 664 sys sys 1116815422 107282
-386/lib/libsec.a - 664 sys sys 1115950159 643998
+386/lib/libsec.a - 664 sys sys 1124766771 645078
 386/lib/libstdio.a - 664 sys sys 1115950159 126206
 386/lib/libsunrpc.a - 664 sys sys 1115950160 355994
 386/lib/libthread.a - 664 sys sys 1115950160 71162
-386/lib/libventi.a - 664 sys sys 1115950160 97708
+386/lib/libventi.a - 664 sys sys 1124766772 97708
 386/mbr - 775 sys sys 1022125974 407
 386/mkfile - 664 sys sys 948141303 46
 386/pbs - 775 sys sys 1022125973 494
@@ -904,9 +904,9 @@ lib/dict - 20000000775 sys sys 1063656980 0
 lib/dict/README.pgw - 664 sys sys 1063660179 147
 lib/dict/README.roget - 664 sys sys 1100894426 105
 lib/face - 20000000775 sys sys 945049943 0
-lib/face/.machinelist - 664 sys sys 944945676 97
+lib/face/.machinelist - 664 sys sys 1124711522 87
 lib/face/48x48x1 - 20000000775 sys sys 1123100640 0
-lib/face/48x48x1/.dict - 664 sys sys 1079054327 9812
+lib/face/48x48x1/.dict - 664 sys sys 1124711604 9837
 lib/face/48x48x1/a - 20000000775 sys sys 1123100687 0
 lib/face/48x48x1/a/acsnet.1 - 664 sys sys 1020313578 1056
 lib/face/48x48x1/a/adb.1 - 664 sys sys 1020313578 1200
@@ -1218,7 +1218,7 @@ lib/face/48x48x1/x - 20000000775 sys sys 1020895709 0
 lib/face/48x48x1/y - 20000000775 sys sys 1020895709 0
 lib/face/48x48x1/z - 20000000775 sys sys 1020895709 0
 lib/face/48x48x2 - 20000000775 sys sys 1123100640 0
-lib/face/48x48x2/.dict - 664 sys sys 1059677865 534
+lib/face/48x48x2/.dict - 664 sys sys 1124711592 559
 lib/face/48x48x2/a - 20000000775 sys sys 1039727283 0
 lib/face/48x48x2/a/adb.1 - 664 sys sys 944941681 1776
 lib/face/48x48x2/a/andrew.1 - 664 sys sys 944941681 1776
@@ -1270,7 +1270,7 @@ lib/face/48x48x2/x - 20000000775 sys sys 1020895710 0
 lib/face/48x48x2/y - 20000000775 sys sys 1020895710 0
 lib/face/48x48x2/z - 20000000775 sys sys 1020895710 0
 lib/face/48x48x4 - 20000000775 sys sys 944941894 0
-lib/face/48x48x4/.dict - 664 sys sys 1103981657 2530
+lib/face/48x48x4/.dict - 664 sys sys 1124711578 2496
 lib/face/48x48x4/Z - 20000000775 sys sys 944945342 0
 lib/face/48x48x4/a - 20000000775 sys sys 944945701 0
 lib/face/48x48x4/a/adb.1 - 664 sys sys 944941890 962
@@ -5763,7 +5763,7 @@ sys/games - 20000000775 sys sys 952648872 0
 sys/games/lib - 20000000775 sys sys 952648879 0
 sys/games/lib/4scores - 10000000664 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000664 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1124666623 255050
+sys/games/lib/fortunes - 664 sys sys 1124716792 255238
 sys/games/lib/mahjongg - 20000000775 sys sys 1095792278 0
 sys/games/lib/mahjongg/backgrounds - 20000000775 sys sys 1095792293 0
 sys/games/lib/mahjongg/backgrounds/default.bit - 664 sys sys 1095792293 346803
@@ -6026,7 +6026,7 @@ sys/include/httpd.h - 664 sys sys 1091904418 5771
 sys/include/ip.h - 664 sys sys 1103554773 2989
 sys/include/keyboard.h - 664 sys sys 1079577798 815
 sys/include/libc.h - 664 sys sys 1115925565 19623
-sys/include/libsec.h - 664 sys sys 1084318867 9264
+sys/include/libsec.h - 664 sys sys 1124709121 9345
 sys/include/mach.h - 664 sys sys 1119476886 8368
 sys/include/memdraw.h - 664 sys sys 1091904419 5645
 sys/include/memlayer.h - 664 sys sys 1051031022 1851
@@ -7489,7 +7489,7 @@ sys/man/2/print - 664 sys sys 1115941566 8852
 sys/man/2/privalloc - 664 sys sys 984709633 651
 sys/man/2/proto - 664 sys sys 969499889 2948
 sys/man/2/pushssl - 664 sys sys 958249503 1032
-sys/man/2/pushtls - 664 sys sys 1087829666 4781
+sys/man/2/pushtls - 664 sys sys 1124711123 5618
 sys/man/2/qball - 664 sys sys 950892866 2000
 sys/man/2/qsort - 664 sys sys 944959694 763
 sys/man/2/quaternion - 664 sys sys 950892867 3421
@@ -7606,7 +7606,7 @@ sys/man/4/usb - 664 sys sys 1112038986 4430
 sys/man/4/usbd - 664 sys sys 1018386778 731
 sys/man/4/vacfs - 664 sys sys 1084333062 1545
 sys/man/4/webcookies - 664 sys sys 1019828742 3525
-sys/man/4/webfs - 664 sys sys 1123943673 6454
+sys/man/4/webfs - 664 sys sys 1124711926 6518
 sys/man/4/wikifs - 664 sys sys 1111765301 7505
 sys/man/5 - 20000000775 sys sys 1015024846 0
 sys/man/5/0intro - 664 sys sys 1072793193 14106
@@ -8099,7 +8099,7 @@ sys/src/9/port/pgrp.c - 664 sys sys 1072704671 3940
 sys/src/9/port/portclock.c - 664 sys sys 1102093397 4556
 sys/src/9/port/portdat.h - 664 sys sys 1109541435 22233
 sys/src/9/port/portfns.h - 664 sys sys 1123647283 10976
-sys/src/9/port/portmkfile - 664 sys sys 1109202242 2043
+sys/src/9/port/portmkfile - 664 sys sys 1124708650 2052
 sys/src/9/port/print.c - 664 sys sys 1014931178 227
 sys/src/9/port/proc.c - 664 sys sys 1099760501 28207
 sys/src/9/port/qio.c - 664 sys sys 1070287837 23562
@@ -9548,7 +9548,7 @@ sys/src/cmd/aux/mnihongo/mnihongo.c - 664 sys sys 946759402 6406
 sys/src/cmd/aux/mnihongo/tmac.nihongo - 664 sys sys 944960789 22
 sys/src/cmd/aux/mouse.c - 664 sys sys 1063855425 7049
 sys/src/cmd/aux/ms2.c - 664 sys sys 1124305056 3153
-sys/src/cmd/aux/msexceltables.c - 664 sys sys 1116594581 13722
+sys/src/cmd/aux/msexceltables.c - 664 sys sys 1124709007 13935
 sys/src/cmd/aux/mswordstrings.c - 664 sys sys 952201344 5767
 sys/src/cmd/aux/na - 20000000775 sys sys 955036627 0
 sys/src/cmd/aux/na/mkfile - 664 sys sys 955036627 121
@@ -12248,7 +12248,7 @@ sys/src/cmd/ndb/dnserver.c - 664 sys sys 1021579994 3687
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1120564714 2198
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1063861697 7085
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1055701924 5277
-sys/src/cmd/ndb/ipquery.c - 664 sys sys 960335375 760
+sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711426 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
 sys/src/cmd/ndb/mkfile - 664 sys sys 1055701930 1877
 sys/src/cmd/ndb/mkhash.c - 664 sys sys 1014926160 2899
@@ -13634,6 +13634,7 @@ sys/src/cmd/webfs/mkfile - 664 sys sys 1032665986 340
 sys/src/cmd/webfs/plumb.c - 664 sys sys 1015090008 2761
 sys/src/cmd/webfs/url.c - 664 sys sys 1019240175 24238
 sys/src/cmd/webfs/util.c - 664 sys sys 1015015823 1211
+sys/src/cmd/webfs/webget.c - 664 sys sys 1124711795 1589
 sys/src/cmd/webfsget.c - 664 sys sys 1068413017 1595
 sys/src/cmd/wikifs - 20000000775 sys sys 1018211094 0
 sys/src/cmd/wikifs/fs.c - 664 sys sys 1122335732 15656
@@ -14799,7 +14800,7 @@ sys/src/libsec/port/sha1pickle.c - 664 sys sys 988225292 717
 sys/src/libsec/port/smallprimes.c - 664 sys sys 984710525 6851
 sys/src/libsec/port/smallprimetest.c - 664 sys sys 984710525 70640
 sys/src/libsec/port/thumb.c - 664 sys sys 1019832052 1891
-sys/src/libsec/port/tlshand.c - 664 sys sys 1109079424 54272
+sys/src/libsec/port/tlshand.c - 664 sys sys 1124709122 54987
 sys/src/libsec/port/x509.c - 664 sys sys 1063853597 50342
 sys/src/libsec/power - 20000000775 sys sys 984710502 0
 sys/src/libsec/power/mkfile - 664 sys sys 1032061453 139

+ 32 - 0
dist/replica/plan9.log

@@ -20816,3 +20816,35 @@
 1124335961 2 c 386/bin/aux/ms2 - 775 sys sys 1124335228 85677
 1124335961 3 c 386/bin/tprof - 775 sys sys 1124335229 290189
 1124667115 0 c sys/games/lib/fortunes - 664 sys sys 1124666623 255050
+1124710324 0 c sys/include/libsec.h - 664 sys sys 1124709121 9345
+1124710324 1 c sys/src/9/port/portmkfile - 664 sys sys 1124708650 2052
+1124710324 2 c sys/src/cmd/aux/msexceltables.c - 664 sys sys 1124709007 13935
+1124710324 3 c sys/src/libsec/port/tlshand.c - 664 sys sys 1124709122 54987
+1124712125 0 c lib/face/.machinelist - 664 sys sys 1124711522 87
+1124712125 1 c lib/face/48x48x1/.dict - 664 sys sys 1124711604 9837
+1124712125 2 c lib/face/48x48x2/.dict - 664 sys sys 1124711592 559
+1124712125 3 c lib/face/48x48x4/.dict - 664 sys sys 1124711578 2496
+1124712125 4 c sys/man/2/pushtls - 664 sys sys 1124711123 5618
+1124712125 5 c sys/man/4/webfs - 664 sys sys 1124711926 6518
+1124712125 6 c sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711426 773
+1124712125 7 a sys/src/cmd/webfs/webget.c - 664 sys sys 1124711795 1589
+1124717526 0 c sys/games/lib/fortunes - 664 sys sys 1124716792 255238
+1124767938 0 c 386/bin/hget - 775 sys sys 1124766755 232366
+1124767938 1 c 386/bin/vncs - 775 sys sys 1124766763 471616
+1124767938 2 c 386/bin/vncv - 775 sys sys 1124766766 518438
+1124767938 3 c 386/bin/ftpfs - 775 sys sys 1124766754 271942
+1124767938 4 c 386/bin/webfs - 775 sys sys 1124766766 349594
+1124767938 5 c 386/bin/aux/msexceltables - 775 sys sys 1124766753 81264
+1124767938 6 c 386/bin/ip/httpd/httpd - 775 sys sys 1124766756 290737
+1124767938 7 c 386/bin/ndb/ipquery - 775 sys sys 1124766757 95488
+1124767938 8 c 386/bin/tlsclient - 775 sys sys 1124766757 197593
+1124767938 9 c 386/bin/tlssrv - 775 sys sys 1124766758 197831
+1124767938 10 c 386/bin/upas/fs - 775 sys sys 1124766759 332762
+1124767938 11 c 386/bin/upas/pop3 - 775 sys sys 1124766760 260297
+1124767938 12 c 386/bin/upas/smtp - 775 sys sys 1124766761 274266
+1124767938 13 c 386/bin/upas/smtpd - 775 sys sys 1124766762 329315
+1124767938 14 c 386/lib/libc.a - 664 sys sys 1124766768 502522
+1124767938 15 c 386/lib/libhttpd.a - 664 sys sys 1124766768 99488
+1124767938 16 c 386/lib/libmp.a - 664 sys sys 1124766769 79532
+1124767938 17 c 386/lib/libsec.a - 664 sys sys 1124766771 645078
+1124767938 18 c 386/lib/libventi.a - 664 sys sys 1124766772 97708

+ 1 - 1
lib/face/.machinelist

@@ -1,4 +1,4 @@
 plan9\.bell-labs\.com	astro
 lucent\.com	astro
-.*research\.bell-labs\.com	astro
+.*bell-labs\.com	astro
 .*\.oz.au		acsnet

+ 1 - 0
lib/face/48x48x1/.dict

@@ -44,6 +44,7 @@ astro/root r/root.1
 astro/sean s/sean.1
 astro/seanq s/seanq.1
 astro/td t/td.1
+astro/trickey h/howard.1
 astro/tom t/tom.1
 astro/unknown p/pjw.1
 astro/uspostmaster p/postmaster.1

+ 1 - 0
lib/face/48x48x2/.dict

@@ -20,6 +20,7 @@ astro/rob r/rob.1
 astro/sean s/sean.1
 astro/seanq s/seanq.1
 astro/td t/td.1
+astro/trickey h/howard.1
 astro/unknown p/pjw.1
 closedmind.org/presotto p/presotto.1
 research.att.com/tom t/tom.1

+ 1 - 2
lib/face/48x48x4/.dict

@@ -60,11 +60,10 @@ astro/td t/td.1
 astro/tgs t/tgs.1
 astro/tkh t/tkh.1
 astro/tor t/tor.1
+astro/trickey h/howard.1
 astro/tsalamon t/tsalamon.1
 astro/va v/va.1
 astro/wmc w/wmc.1
-bell-labs.com/ehg e/ehg.1
-bell-labs.com/trickey h/howard.1
 closedmind.org/presotto p/presotto.1
 cpsc.ucalgary.ca/mirtchov a/andrey.1
 cs.princeton.edu/bwk b/bwk.1

+ 1 - 0
sys/games/lib/fortunes

@@ -4077,3 +4077,4 @@ A computer is like an Old Testament god, with a lot of rules and no mercy.  - Jo
 Arguing that Java is better than C++ is like arguing that grasshoppers taste better than tree bark.  - Thant Tessman
 (Of course SML does have its weaknesses, but by comparison, a discussion of C++'s strengths and flaws always sounds like an argument about whether one should face north or east when one is sacrificing one's goat to the rain god.)  - Thant Tessman
 C++ is history repeated as tragedy.  Java is history repeated as farce.  - Scott McKay
+Applicants must also have extensive knowledge of UNIX, although they should have sufficiently good programming taste to not consider this an achievement.  - Hal Abelson, MIT AI Lab job ad

+ 4 - 0
sys/include/libsec.h

@@ -339,6 +339,10 @@ typedef struct TLSconn{
 	int certlen, sessionIDlen;
 	int (*trace)(char*fmt, ...);
 	PEMChain *chain; // optional extra certificate evidence for servers to present
+	char *sessionType;
+	uchar *sessionKey;
+	int sessionKeylen;
+	char *sessionConst;
 } TLSconn;
 
 // tlshand.c

+ 57 - 25
sys/man/2/pushtls

@@ -92,10 +92,14 @@ points to a (caller-allocated) struct
    typedef struct TLSconn{
       char dir[40];     // OUT    connection directory
       uchar *cert;      // IN/OUT certificate
-      uchar *sessionID; // IN/OUT sessionID
+      uchar *sessionID; // IN/OUT session ID
       int certlen, sessionIDlen;
       void (*trace)(char*fmt, ...);
       PEMChain *chain;
+      char *sessionType;  // opt IN  session type
+      uchar *sessionKey;  // opt IN/OUT session key
+      int sessionKeylen;  // opt IN  session key length
+      char *sessionConst; // opt IN  session constant
    } TLSconn;
 .EE
 defined in
@@ -115,42 +119,48 @@ is freed and a freshly allocated copy of the remote's certificate
 is returned in
 .IR conn ,
 to be checked by the caller
-according to its needs.  One mechanism is supplied by
+according to its needs.
+One way to check the remote certificate is to use
 .I initThumbprints
 and
 .I freeThumbprints
 which allocate and free, respectively, a table of hashes
 from files of known trusted and revoked certificates.
 .I okThumbprint
-confirms that a particular hash is in the table, as computed by
-.PP
-.EX
-   uchar hash[SHA1dlen];
-   conn = (TLSconn*)mallocz(sizeof *conn, 1);
-   fd = tlsClient(fd, conn);
-   sha1(conn->cert, conn->certlen, hash, nil);
-   if(!okThumbprint(hash,table))
-      exits("suspect server");
-   ...application begins...
-.EE
-.PP
-Call
-.I tlsServer
-to perform the corresponding function on the server side:
-.PP
-.EX
-   fd = accept(lcfd, ldir);
-   conn = (TLSconn*)mallocz(sizeof *conn, 1);
-   conn->cert = readcert("cert.pem", &conn->certlen);
-   fd = tlsServer(fd, conn);
-   ...application begins...
-.EE
+confirms that a particular hash is in the table.
+.PP
+.I TlsClient
+will optionally compute a session key for use
+by higher-level protocols.
+To compute a session key, the caller must set
+.I sessionType
+to a known session type;
+.I sessionKeylen
+to the desired key length;
+.I sessionKey
+to a buffer of length
+.IR sessionKeylen ;
+and
+.I sessionConst
+to the desired salting constant.
+The only supported session type is
+.BR ttls ,
+as used by 802.1x.
+.PP
+.I TlsServer
+executes the server side of the handshake.
+The caller must initialize
+.IB conn ->cert \fR,
+usually by calling
+.I readcert
+to read the certificate out of a file.
 The private key corresponding to
 .I cert.pem
 should have been previously loaded into factotum.
 (See
 .IR rsa (8)
 for more about key generation.)
+
 By setting
 .EX
    conn->chain = readcertchain("intermediate-certs.pem");
@@ -162,6 +172,28 @@ known to the client.
 .I Conn
 is not required for the ongoing conversation and may
 be freed by the application whenever convenient.
+.SH EXAMPLES
+Start the client half of TLS and check the remote certificate:
+.PP
+.EX
+    uchar hash[SHA1dlen];
+    conn = (TLSconn*)mallocz(sizeof *conn, 1);
+    fd = tlsClient(fd, conn);
+    sha1(conn->cert, conn->certlen, hash, nil);
+    if(!okThumbprint(hash,table))
+        exits("suspect server");
+    \fI...application begins...\fP
+.EE
+.PP
+Run the server side:
+.PP
+.EX
+    fd = accept(lcfd, ldir);
+    conn = (TLSconn*)mallocz(sizeof *conn, 1);
+    conn->cert = readcert("cert.pem", &conn->certlen);
+    fd = tlsServer(fd, conn);
+    \fI...application begins...\fP
+.EE
 .SH FILES
 .TP 
 .B /sys/lib/tls

+ 5 - 3
sys/man/4/webfs

@@ -158,7 +158,7 @@ or a relative URL such as
 The
 .B baseurl
 string variable sets the URL against which relative URLs
-are based.
+are interpreted.
 Once the URL has been set,
 its pieces can be retrieved via individual files in the
 .B parsed
@@ -292,12 +292,14 @@ does not conform to the cookie standard, RFC2109.
 It is assumed that when presenting the cookie to the server,
 it must be sent back in Netscape style as well.
 .PD
-.PP
+.SH EXAMPLE
+.B /sys/src/cmd/webfs/webget.c
+is a simple client.
 .SH SOURCE
 .B /sys/src/cmd/webfs
 .SH SEE ALSO
 .IR hget (1),
-.IR webcookies (4).
+.IR webcookies (4)
 .SH BUGS
 It's not clear what the relationship between
 .IR hget ,

+ 1 - 1
sys/src/9/port/portmkfile

@@ -30,7 +30,7 @@ all:V:
 		mk 'CONF='$i
 
 clean:V:
-	rm -f *.[$OS] *.root.s *.rootc.c cfs.h fs.h init.h conf.h *.out *.m
+	rm -f *.[$OS] *.root.s *.rootc.c cfs.h fs.h init.h conf.h *.out *.m errstr.h
 	for(i in $CONFLIST)
 		mk $i.clean
 

+ 18 - 25
sys/src/cmd/aux/msexceltables.c

@@ -23,18 +23,18 @@ typedef struct Col Col;
 typedef struct Row Row;
 
 struct Row {
-	Row *next;
-	int r;
-	Col *col;
+	Row *next;		// next row
+	int r;			// row number
+	Col *col;		// list of cols in row
 };
 
 struct Col {
-	Col *next;
-	int c;
-	int f;
-	int type;
-	union {
-		int index;
+	Col *next;		// next col in row
+	int c;			// col number
+	int f;			// index into formating table (Xf)
+	int type;		// type of value for union below
+	union {			// value
+		int index;	// index into string table (Strtab)
 		int error;
 		int bool;
 		char *label;
@@ -43,9 +43,9 @@ struct Col {
 };
 
 struct  Biff {
-	Biobuf *bp;
-	int op;
-	int len;
+	Biobuf *bp;		// input file
+	int op;			// current record type
+	int len;		// length of current record
 };
 
 // options
@@ -157,8 +157,9 @@ bifftime(double num)
 	long long t = num;
 
 	/* Beware - These epochs are wrong, this
-	 * is to remain compatible with Lotus-123
-	 * which believed 1900 was a leap year
+	 * is due to Excel still remaining compatible
+	 * with Lotus-123, which incorrectly believed 1900
+	 * was a leap year
 	 */
 	if (Datemode)
 		t -= 24107;		// epoch = 1/1/1904
@@ -191,14 +192,12 @@ numfmt(int fmt, int min, int max, double num)
 	}
 	else
 	if ((fmt >= 18 && fmt <= 21) || (fmt >= 45 && fmt <= 47)){
-
 		tm = bifftime(num);
 		snprint(buf, sizeof(buf),"%02d:%02d:%02d", tm->hour, tm->min, tm->sec);
 
 	}
 	else
 	if (fmt == 22){
-
 		tm = bifftime(num);
 		snprint(buf, sizeof(buf),"%02d:%02d:%02d %d-%s-%d",
 			tm->hour, tm->min, tm->sec,
@@ -225,10 +224,9 @@ dump(void)
 				min = 0;
 			max = -1;
 			if (Trunc && min > 2)
-				max = min -2;		// FIXME: -2 because of bug %q format ?
+				max = min -2;	// FIXME: -2 because of bug %q format ?
 
 			switch(c->type){
-
 			case Tnumber:
 				if (Xf[c->f] == 0)
 					Bprint(bo, "%-*.*g", min, max, c->number);
@@ -242,12 +240,12 @@ dump(void)
 				Bprint(bo, "%-*.*s", min, max, (c->bool)? "True": "False");
 				break;
 			case Tindex:
-				if (c->error < 0 || c->error >= Nstrtab)
+				if (c->index < 0 || c->index >= Nstrtab)
 					sysfatal("SST string out of range - corrupt file?\n");
 				Bprint(bo, "%-*.*q", min, max, Strtab[c->index]);
 				break;
 			case Terror:
-				if (c->error < 0 || c->error >= nelem(Errmsgs))
+				if (c->error < 0 || c->error >= nelem(Errmsgs) || !Errmsgs[c->error])
 					Bprint(bo, "#ERR=%d", c->index);
 				else
 					Bprint(bo, "%-*.*q", min, max, Errmsgs[c->error]);
@@ -458,11 +456,6 @@ gstr(Biff *b, int len_width)
 	while (1){
 		opt = gint(b, 1);
 		w = (opt & 1)? sizeof(Rune): sizeof(char);
-		/*
-		 * some people and compilers hate '?'
-		sz = (opt & 4)? gint(b, 4): 0;
-		rt = (opt & 8)? gint(b, 2): 0;
-		 */
 		if(opt & 4)
 			sz = gint(b,4);
 		else

+ 4 - 4
sys/src/cmd/ndb/ipquery.c

@@ -18,13 +18,13 @@ usage(void)
 void
 search(Ndb *db, char *attr, char *val, char **rattr, int nrattr)
 {
-	Ndbtuple *t;
+	Ndbtuple *t, *tt;
 
-	t = ndbipinfo(db, attr, val, rattr, nrattr);
-	for(; t; t = t->entry)
+	tt = ndbipinfo(db, attr, val, rattr, nrattr);
+	for(t = tt; t; t = t->entry)
 		print("%s=%s ", t->attr, t->val);
 	print("\n");
-	ndbfree(t);
+	ndbfree(tt);
 }
 
 void

+ 87 - 0
sys/src/cmd/webfs/webget.c

@@ -0,0 +1,87 @@
+/*
+ * Sample client.
+ */
+#include <u.h>
+#include <libc.h>
+
+void
+xfer(int from, int to)
+{
+	char buf[12*1024];
+	int n;
+
+	while((n = read(from, buf, sizeof buf)) > 0)
+		if(write(to, buf, n) < 0)
+			sysfatal("write failed: %r");
+	if(n < 0)
+		sysfatal("read failed: %r");
+}
+
+void
+usage(void)
+{
+	fprint(2, "usage: webget [-b baseurl] [-m mtpt] [-p postbody] url\n");
+	exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+	int conn, ctlfd, fd, i, n;
+	char buf[128], *base, *mtpt, *post, *url;
+
+	mtpt = "/mnt/web";
+	post = nil;
+	base = nil;
+	ARGBEGIN{
+	default:
+		usage();
+	case 'b':
+		base = EARGF(usage());
+		break;
+	case 'm':
+		mtpt = EARGF(usage());
+		break;
+	case 'p':
+		post = EARGF(usage());
+		break;
+	}ARGEND;
+
+	if (argc != 1) 
+		usage();
+
+	url = argv[0];
+ 
+	snprint(buf, sizeof buf, "%s/clone", mtpt);
+	if((ctlfd = open(buf, ORDWR)) < 0)
+		sysfatal("couldn't open %s: %r", buf);
+	if((n = read(ctlfd, buf, sizeof buf-1)) < 0)
+		sysfatal("reading clone: %r");
+	if(n == 0)
+		sysfatal("short read on clone");
+	buf[n] = '\0';
+	conn = atoi(buf);
+
+	if(base)
+		if(fprint(ctlfd, "baseurl %s", base) < 0)
+			sysfatal("baseurl ctl write: %r");
+
+	if(fprint(ctlfd, "url %s", url) <= 0)
+		sysfatal("get ctl write: %r");
+
+	if(post){
+		snprint(buf, sizeof buf, "%s/%d/postbody", mtpt, conn);
+		if((fd = open(buf, OWRITE)) < 0)
+			sysfatal("open %s: %r", buf);
+		if(write(fd, post, strlen(post)) < 0)
+			sysfatal("post write failed: %r");
+		close(fd);
+	}
+
+	snprint(buf, sizeof buf, "%s/%d/body", mtpt, conn);
+	if((fd = open(buf, OREAD)) < 0)
+		sysfatal("open %s: %r", buf);
+
+	xfer(fd, 1);
+	exits(nil);
+}

+ 11 - 1
sys/src/libsec/port/tlshand.c

@@ -118,7 +118,7 @@ typedef struct Msg{
 
 typedef struct TlsSec{
 	char *server;	// name of remote; nil for server
-	int ok;	// <0 killed; ==0 in progress; >0 reusable
+	int ok;	// <0 killed; == 0 in progress; >0 reusable
 	RSApub *rsapub;
 	AuthRpc *rpc;	// factotum for rsa private key
 	uchar sec[MasterSecretSize];	// master secret
@@ -357,6 +357,8 @@ tlsServer(int fd, TLSconn *conn)
 	conn->sessionIDlen = tls->sid->len;
 	conn->sessionID = emalloc(conn->sessionIDlen);
 	memcpy(conn->sessionID, tls->sid->data, conn->sessionIDlen);
+	if(conn->sessionKey != nil && conn->sessionType != nil && strcmp(conn->sessionType, "ttls") == 0)
+		tls->sec->prf(conn->sessionKey, conn->sessionKeylen, tls->sec->sec, MasterSecretSize, conn->sessionConst,  tls->sec->crandom, RandomSize, tls->sec->srandom, RandomSize);
 	tlsConnectionFree(tls);
 	return data;
 }
@@ -408,6 +410,8 @@ tlsClient(int fd, TLSconn *conn)
 	conn->sessionIDlen = tls->sid->len;
 	conn->sessionID = emalloc(conn->sessionIDlen);
 	memcpy(conn->sessionID, tls->sid->data, conn->sessionIDlen);
+	if(conn->sessionKey != nil && conn->sessionType != nil && strcmp(conn->sessionType, "ttls") == 0)
+		tls->sec->prf(conn->sessionKey, conn->sessionKeylen, tls->sec->sec, MasterSecretSize, conn->sessionConst,  tls->sec->crandom, RandomSize, tls->sec->srandom, RandomSize);
 	tlsConnectionFree(tls);
 	return data;
 }
@@ -1142,8 +1146,14 @@ msgRecv(TlsConnection *c, Msg *m)
 		nn = get24(p);
 		p += 3;
 		n -= 3;
+		/*
+		 * can't do this because it fails in 802.1x-TTLS
+		 * for unknown reasons.  maybe the other side generates
+		 * bogus data, or maybe we're just confused.
+		 *
 		if(nn == 0 || n != nn)
 			goto Short;
+		 */
 		/* cas */
 		i = 0;
 		while(n > 0) {