Browse Source

Plan 9 from Bell Labs 2005-09-27

David du Colombier 18 years ago
parent
commit
9f351058c2

+ 20 - 9
dist/replica/_plan9.db

@@ -5446,7 +5446,7 @@ rc/bin/nroff - 775 sys sys 945617208 27
 rc/bin/patch - 20000000775 sys sys 1067803227 0
 rc/bin/patch/applied - 775 sys sys 1115941614 111
 rc/bin/patch/apply - 775 sys sys 1109511606 1285
-rc/bin/patch/create - 775 sys sys 1116737281 1428
+rc/bin/patch/create - 775 sys sys 1127761278 1457
 rc/bin/patch/diff - 775 sys sys 1109511606 474
 rc/bin/patch/email - 775 sys sys 1109511607 409
 rc/bin/patch/list - 775 sys sys 1115941576 749
@@ -7319,7 +7319,7 @@ sys/man/1/ns - 664 sys sys 944959677 893
 sys/man/1/p - 664 sys sys 944959673 504
 sys/man/1/page - 664 sys sys 1087829646 5839
 sys/man/1/passwd - 664 sys sys 1113743327 1382
-sys/man/1/patch - 664 sys sys 1067804449 2176
+sys/man/1/patch - 664 sys sys 1127761213 2237
 sys/man/1/pcc - 664 sys sys 1015024740 3478
 sys/man/1/pic - 664 sys sys 1022625353 8229
 sys/man/1/pipefile - 664 sys sys 984709628 1861
@@ -7536,7 +7536,7 @@ sys/man/3/apm - 664 sys sys 984709634 1625
 sys/man/3/arch - 664 sys sys 958419692 1425
 sys/man/3/audio - 664 sys sys 1015024777 2932
 sys/man/3/cap - 664 sys sys 1032632323 2137
-sys/man/3/cons - 664 sys sys 1067722911 8683
+sys/man/3/cons - 664 sys sys 1127766305 8965
 sys/man/3/draw - 664 sys sys 1040457030 13813
 sys/man/3/dup - 664 sys sys 1015024778 1099
 sys/man/3/env - 664 sys sys 1015024778 1409
@@ -8031,7 +8031,7 @@ sys/src/9/pc/vgatvp3020.c - 664 sys sys 1015014528 4491
 sys/src/9/pc/vgatvp3026.c - 664 sys sys 1015014528 3940
 sys/src/9/pc/vgavmware.c - 664 sys sys 1063858321 6398
 sys/src/9/pc/vgax.c - 664 sys sys 1015014528 1655
-sys/src/9/pc/wavelan.c - 664 sys sys 1116097836 27838
+sys/src/9/pc/wavelan.c - 664 sys sys 1127743243 27879
 sys/src/9/pc/wavelan.h - 664 sys sys 1107448246 6169
 sys/src/9/port - 20000000775 sys sys 1018469625 0
 sys/src/9/port/alarm.c - 664 sys sys 1067722766 1426
@@ -8046,7 +8046,7 @@ sys/src/9/port/dev.c - 664 sys sys 1126586172 8246
 sys/src/9/port/devaudio.c - 664 sys sys 1067722761 21130
 sys/src/9/port/devbridge.c - 664 sys sys 1055688301 24308
 sys/src/9/port/devcap.c - 664 sys sys 1048644215 4113
-sys/src/9/port/devcons.c - 664 sys sys 1084475350 22380
+sys/src/9/port/devcons.c - 664 sys sys 1127766316 22681
 sys/src/9/port/devdraw.c - 664 sys sys 1091733670 41996
 sys/src/9/port/devdup.c - 664 sys sys 1014931172 2332
 sys/src/9/port/devenv.c - 664 sys sys 1048644225 6992
@@ -9721,7 +9721,7 @@ sys/src/cmd/cc/compat.c - 664 sys sys 1084472048 417
 sys/src/cmd/cc/dcl.c - 664 sys sys 1089299183 26723
 sys/src/cmd/cc/dpchk.c - 664 sys sys 1107365037 7152
 sys/src/cmd/cc/funct.c - 664 sys sys 984718510 6167
-sys/src/cmd/cc/lex.c - 664 sys sys 1109303822 23826
+sys/src/cmd/cc/lex.c - 664 sys sys 1127766297 23848
 sys/src/cmd/cc/lexbody - 664 sys sys 1127307403 9186
 sys/src/cmd/cc/mac.c - 664 sys sys 944960808 36
 sys/src/cmd/cc/macbody - 664 sys sys 1108281581 11703
@@ -14495,15 +14495,15 @@ sys/src/libhttpd/checkcontent.c - 664 sys sys 1014930783 771
 sys/src/libhttpd/date.c - 664 sys sys 1045502928 3507
 sys/src/libhttpd/escape.h - 664 sys sys 1014930784 2728
 sys/src/libhttpd/fail.c - 664 sys sys 1014930784 2794
-sys/src/libhttpd/gethead.c - 664 sys sys 1014930784 733
+sys/src/libhttpd/gethead.c - 664 sys sys 1127766499 737
 sys/src/libhttpd/hio.c - 664 sys sys 1079372798 7482
 sys/src/libhttpd/httpfmt.c - 664 sys sys 1014930784 472
 sys/src/libhttpd/httpunesc.c - 664 sys sys 1014930784 888
 sys/src/libhttpd/lower.c - 664 sys sys 1014930784 226
 sys/src/libhttpd/mkfile - 664 sys sys 1035389778 421
 sys/src/libhttpd/okheaders.c - 664 sys sys 1014930784 433
-sys/src/libhttpd/parse.c - 664 sys sys 1084318724 18934
-sys/src/libhttpd/parsereq.c - 664 sys sys 1014930785 5058
+sys/src/libhttpd/parse.c - 664 sys sys 1127766499 18965
+sys/src/libhttpd/parsereq.c - 664 sys sys 1127766499 5071
 sys/src/libhttpd/query.c - 664 sys sys 1014930785 712
 sys/src/libhttpd/redirected.c - 664 sys sys 1014930785 1555
 sys/src/libhttpd/unallowed.c - 664 sys sys 1014930785 980
@@ -14967,3 +14967,14 @@ 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/8c - 775 sys sys 1127790500 358222
+386/bin/venti/venti - 775 sys sys 1127790504 245198
+386/bin/ip/httpd/httpd - 775 sys sys 1127790501 291589
+386/bin/ip/httpd/imagemap - 775 sys sys 1127790501 114798
+386/bin/ip/httpd/man2html - 775 sys sys 1127790501 123085
+386/bin/ip/httpd/netlib_find - 775 sys sys 1127790502 115643
+386/bin/ip/httpd/netlib_history - 775 sys sys 1127790502 114439
+386/bin/ip/httpd/save - 775 sys sys 1127790502 131094
+386/bin/ip/httpd/webls - 775 sys sys 1127790503 131239
+386/bin/ip/httpd/wikipost - 775 sys sys 1127790503 112677
+386/lib/libhttpd.a - 664 sys sys 1127790504 99596

+ 20 - 20
dist/replica/plan9.db

@@ -15,7 +15,7 @@
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
 386/bin - 20000000775 sys sys 1018897690 0
 386/bin/8a - 775 sys sys 1127360556 115969
-386/bin/8c - 775 sys sys 1125345939 358173
+386/bin/8c - 775 sys sys 1127790500 358222
 386/bin/8l - 775 sys sys 1125345940 115694
 386/bin/9660srv - 775 sys sys 1115950023 104037
 386/bin/aan - 775 sys sys 1115950023 130710
@@ -285,14 +285,14 @@
 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 1127360602 291548
-386/bin/ip/httpd/imagemap - 775 sys sys 1125345985 114776
-386/bin/ip/httpd/man2html - 775 sys sys 1125345985 123063
-386/bin/ip/httpd/netlib_find - 775 sys sys 1125345986 115621
-386/bin/ip/httpd/netlib_history - 775 sys sys 1115950085 114417
-386/bin/ip/httpd/save - 775 sys sys 1125345986 131072
-386/bin/ip/httpd/webls - 775 sys sys 1125345987 131217
-386/bin/ip/httpd/wikipost - 775 sys sys 1115950085 112655
+386/bin/ip/httpd/httpd - 775 sys sys 1127790501 291589
+386/bin/ip/httpd/imagemap - 775 sys sys 1127790501 114798
+386/bin/ip/httpd/man2html - 775 sys sys 1127790501 123085
+386/bin/ip/httpd/netlib_find - 775 sys sys 1127790502 115643
+386/bin/ip/httpd/netlib_history - 775 sys sys 1127790502 114439
+386/bin/ip/httpd/save - 775 sys sys 1127790502 131094
+386/bin/ip/httpd/webls - 775 sys sys 1127790503 131239
+386/bin/ip/httpd/wikipost - 775 sys sys 1127790503 112677
 386/bin/ip/imap4d - 775 sys sys 1125345987 236488
 386/bin/ip/ipconfig - 775 sys sys 1126148865 137742
 386/bin/ip/ping - 775 sys sys 1116126319 77010
@@ -491,7 +491,7 @@
 386/bin/venti/read - 775 sys sys 1115950138 102547
 386/bin/venti/sync - 775 sys sys 1115950138 101697
 386/bin/venti/syncindex - 775 sys sys 1127531314 169425
-386/bin/venti/venti - 775 sys sys 1127531314 245157
+386/bin/venti/venti - 775 sys sys 1127790504 245198
 386/bin/venti/verifyarena - 775 sys sys 1127531315 103977
 386/bin/venti/wrarena - 775 sys sys 1127531315 175882
 386/bin/venti/write - 775 sys sys 1115950140 102499
@@ -548,7 +548,7 @@
 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 1127360619 220134
-386/lib/libhttpd.a - 664 sys sys 1124766768 99488
+386/lib/libhttpd.a - 664 sys sys 1127790504 99596
 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
@@ -5446,7 +5446,7 @@ rc/bin/nroff - 775 sys sys 945617208 27
 rc/bin/patch - 20000000775 sys sys 1067803227 0
 rc/bin/patch/applied - 775 sys sys 1115941614 111
 rc/bin/patch/apply - 775 sys sys 1109511606 1285
-rc/bin/patch/create - 775 sys sys 1116737281 1428
+rc/bin/patch/create - 775 sys sys 1127761278 1457
 rc/bin/patch/diff - 775 sys sys 1109511606 474
 rc/bin/patch/email - 775 sys sys 1109511607 409
 rc/bin/patch/list - 775 sys sys 1115941576 749
@@ -7319,7 +7319,7 @@ sys/man/1/ns - 664 sys sys 944959677 893
 sys/man/1/p - 664 sys sys 944959673 504
 sys/man/1/page - 664 sys sys 1087829646 5839
 sys/man/1/passwd - 664 sys sys 1113743327 1382
-sys/man/1/patch - 664 sys sys 1067804449 2176
+sys/man/1/patch - 664 sys sys 1127761213 2237
 sys/man/1/pcc - 664 sys sys 1015024740 3478
 sys/man/1/pic - 664 sys sys 1022625353 8229
 sys/man/1/pipefile - 664 sys sys 984709628 1861
@@ -7536,7 +7536,7 @@ sys/man/3/apm - 664 sys sys 984709634 1625
 sys/man/3/arch - 664 sys sys 958419692 1425
 sys/man/3/audio - 664 sys sys 1015024777 2932
 sys/man/3/cap - 664 sys sys 1032632323 2137
-sys/man/3/cons - 664 sys sys 1067722911 8683
+sys/man/3/cons - 664 sys sys 1127766305 8965
 sys/man/3/draw - 664 sys sys 1040457030 13813
 sys/man/3/dup - 664 sys sys 1015024778 1099
 sys/man/3/env - 664 sys sys 1015024778 1409
@@ -8031,7 +8031,7 @@ sys/src/9/pc/vgatvp3020.c - 664 sys sys 1015014528 4491
 sys/src/9/pc/vgatvp3026.c - 664 sys sys 1015014528 3940
 sys/src/9/pc/vgavmware.c - 664 sys sys 1063858321 6398
 sys/src/9/pc/vgax.c - 664 sys sys 1015014528 1655
-sys/src/9/pc/wavelan.c - 664 sys sys 1116097836 27838
+sys/src/9/pc/wavelan.c - 664 sys sys 1127743243 27879
 sys/src/9/pc/wavelan.h - 664 sys sys 1107448246 6169
 sys/src/9/port - 20000000775 sys sys 1018469625 0
 sys/src/9/port/alarm.c - 664 sys sys 1067722766 1426
@@ -8046,7 +8046,7 @@ sys/src/9/port/dev.c - 664 sys sys 1126586172 8246
 sys/src/9/port/devaudio.c - 664 sys sys 1067722761 21130
 sys/src/9/port/devbridge.c - 664 sys sys 1055688301 24308
 sys/src/9/port/devcap.c - 664 sys sys 1048644215 4113
-sys/src/9/port/devcons.c - 664 sys sys 1084475350 22380
+sys/src/9/port/devcons.c - 664 sys sys 1127766316 22681
 sys/src/9/port/devdraw.c - 664 sys sys 1091733670 41996
 sys/src/9/port/devdup.c - 664 sys sys 1014931172 2332
 sys/src/9/port/devenv.c - 664 sys sys 1048644225 6992
@@ -9721,7 +9721,7 @@ sys/src/cmd/cc/compat.c - 664 sys sys 1084472048 417
 sys/src/cmd/cc/dcl.c - 664 sys sys 1089299183 26723
 sys/src/cmd/cc/dpchk.c - 664 sys sys 1107365037 7152
 sys/src/cmd/cc/funct.c - 664 sys sys 984718510 6167
-sys/src/cmd/cc/lex.c - 664 sys sys 1109303822 23826
+sys/src/cmd/cc/lex.c - 664 sys sys 1127766297 23848
 sys/src/cmd/cc/lexbody - 664 sys sys 1127307403 9186
 sys/src/cmd/cc/mac.c - 664 sys sys 944960808 36
 sys/src/cmd/cc/macbody - 664 sys sys 1108281581 11703
@@ -14495,15 +14495,15 @@ sys/src/libhttpd/checkcontent.c - 664 sys sys 1014930783 771
 sys/src/libhttpd/date.c - 664 sys sys 1045502928 3507
 sys/src/libhttpd/escape.h - 664 sys sys 1014930784 2728
 sys/src/libhttpd/fail.c - 664 sys sys 1014930784 2794
-sys/src/libhttpd/gethead.c - 664 sys sys 1014930784 733
+sys/src/libhttpd/gethead.c - 664 sys sys 1127766499 737
 sys/src/libhttpd/hio.c - 664 sys sys 1079372798 7482
 sys/src/libhttpd/httpfmt.c - 664 sys sys 1014930784 472
 sys/src/libhttpd/httpunesc.c - 664 sys sys 1014930784 888
 sys/src/libhttpd/lower.c - 664 sys sys 1014930784 226
 sys/src/libhttpd/mkfile - 664 sys sys 1035389778 421
 sys/src/libhttpd/okheaders.c - 664 sys sys 1014930784 433
-sys/src/libhttpd/parse.c - 664 sys sys 1084318724 18934
-sys/src/libhttpd/parsereq.c - 664 sys sys 1014930785 5058
+sys/src/libhttpd/parse.c - 664 sys sys 1127766499 18965
+sys/src/libhttpd/parsereq.c - 664 sys sys 1127766499 5071
 sys/src/libhttpd/query.c - 664 sys sys 1014930785 712
 sys/src/libhttpd/redirected.c - 664 sys sys 1014930785 1555
 sys/src/libhttpd/unallowed.c - 664 sys sys 1014930785 980

+ 20 - 0
dist/replica/plan9.log

@@ -21469,3 +21469,23 @@
 1127561502 0 c sys/man/8/fossilcons - 664 sys sys 1127560168 17789
 1127671207 0 c sys/lib/dist/pc/inst/download - 775 sys sys 1127670124 1218
 1127671207 1 c sys/lib/dist/pc/inst/watchfd - 775 sys sys 1127670125 362
+1127743224 0 c sys/src/9/pc/wavelan.c - 664 sys sys 1127743243 27879
+1127761227 0 c rc/bin/patch/create - 775 sys sys 1127761278 1457
+1127761227 1 c sys/man/1/patch - 664 sys sys 1127761213 2237
+1127766629 0 c sys/man/3/cons - 664 sys sys 1127766305 8965
+1127766629 1 c sys/src/9/port/devcons.c - 664 sys sys 1127766316 22681
+1127766629 2 c sys/src/cmd/cc/lex.c - 664 sys sys 1127766297 23848
+1127766629 3 c sys/src/libhttpd/gethead.c - 664 sys sys 1127766499 737
+1127766629 4 c sys/src/libhttpd/parse.c - 664 sys sys 1127766499 18965
+1127766629 5 c sys/src/libhttpd/parsereq.c - 664 sys sys 1127766499 5071
+1127791835 0 c 386/bin/8c - 775 sys sys 1127790500 358222
+1127791835 1 c 386/bin/venti/venti - 775 sys sys 1127790504 245198
+1127791835 2 c 386/bin/ip/httpd/httpd - 775 sys sys 1127790501 291589
+1127791835 3 c 386/bin/ip/httpd/imagemap - 775 sys sys 1127790501 114798
+1127791835 4 c 386/bin/ip/httpd/man2html - 775 sys sys 1127790501 123085
+1127791835 5 c 386/bin/ip/httpd/netlib_find - 775 sys sys 1127790502 115643
+1127791835 6 c 386/bin/ip/httpd/netlib_history - 775 sys sys 1127790502 114439
+1127791835 7 c 386/bin/ip/httpd/save - 775 sys sys 1127790502 131094
+1127791835 8 c 386/bin/ip/httpd/webls - 775 sys sys 1127790503 131239
+1127791835 9 c 386/bin/ip/httpd/wikipost - 775 sys sys 1127790503 112677
+1127791835 10 c 386/lib/libhttpd.a - 664 sys sys 1127790504 99596

+ 1 - 1
rc/bin/patch/create

@@ -6,7 +6,7 @@ if(~ $#* 0 1){
 }
 
 if(! echo $1 | grep -s '^[a-z_0-9.\-]+$'){
-	echo bad name
+	echo 'bad name: [a-z0-9._\-]+ only' >[1=2]
 	exit usage
 }
 

+ 1 - 0
sys/man/1/patch

@@ -35,6 +35,7 @@ These scripts are a simple patch submission and tracking system
 used to propose additions or changes to Plan 9.
 Each patch has a 
 .I name
+(lowercase letters, numbers, dash, dot, and underscore only)
 and is stored in
 .BI /n/sources/patch/ name \fR.
 .PP

+ 21 - 8
sys/man/3/cons

@@ -297,17 +297,30 @@ resets all of the counts on all processors.
 .PP
 The
 .B swap
-device holds a string of the form
+device holds a text block giving memory usage statistics:
 .IP
-.IB m1 / m2
-.B memory
-.IB s1 / s2
-.B swap
+.EX
+\fIn\fP memory
+\fIn\fP pagesize
+\fIn\fP kernel
+\fIn\fP/\fIm\fP user
+\fIn\fP/\fIm\fP swap
+\fIn\fP/\fIm\fP kernel malloc
+\fIn\fP/\fIm\fP kernel draw
+.EE
 .PP
-These give, for each of
-internal memory and the swapping area,
-the number of pages used and the total available.
+These are total memory (bytes), system page size (bytes),
+kernel memory (pages), user memory (pages), swap space (pages),
+kernel malloced data (bytes), and kernel graphics data (bytes).
+The expression
+.IR n / m
+indicates
+.I n
+used out of
+.I m
+available.
 These numbers are not blank padded.
+.PP
 To turn on swapping, write to
 .B swap
 the textual file descriptor number of a file or device on which to swap.

+ 1 - 0
sys/src/9/pc/wavelan.c

@@ -1263,5 +1263,6 @@ char* wavenames[] = {
 	"Instant Wireless Network PC Card",
 	"Avaya Wireless PC Card",
 	"AirLancer MC-11",
+	"INTERSIL;HFA384x/IEEE;Version 01.02;",
 	nil,
 };

+ 17 - 4
sys/src/9/port/devcons.c

@@ -4,6 +4,7 @@
 #include	"dat.h"
 #include	"fns.h"
 #include	"../port/error.h"
+#include	"pool.h"
 
 #include	<authsrv.h>
 
@@ -702,7 +703,7 @@ consread(Chan *c, void *buf, long n, vlong off)
 	ulong l;
 	Mach *mp;
 	char *b, *bp;
-	char tmp[128];		/* must be >= 6*NUMSIZE */
+	char tmp[256];		/* must be >= 18*NUMSIZE (Qswap) */
 	char *cbuf = buf;
 	int ch, i, k, id, eol;
 	vlong offset = off;
@@ -870,9 +871,21 @@ consread(Chan *c, void *buf, long n, vlong off)
 		return n;
 
 	case Qswap:
-		sprint(tmp, "%lud/%lud memory %lud/%lud swap\n",
-			palloc.user-palloc.freecount,
-			palloc.user, conf.nswap-swapalloc.free, conf.nswap);
+		snprint(tmp, sizeof tmp,
+			"%lud memory\n"
+			"%d pagesize\n"
+			"%lud kernel\n"
+			"%lud/%lud user\n"
+			"%lud/%lud swap\n"
+			"%lud/%lud kernel malloc\n"
+			"%lud/%lud kernel draw\n",
+			conf.npage*BY2PG,
+			BY2PG,
+			conf.npage-conf.upages,
+			palloc.user-palloc.freecount, palloc.user,
+			conf.nswap-swapalloc.free, conf.nswap,
+			mainmem->cursize, mainmem->maxsize,
+			imagmem->cursize, imagmem->maxsize);
 
 		return readstr((ulong)offset, buf, n, tmp);
 

+ 2 - 1
sys/src/cmd/cc/lex.c

@@ -177,7 +177,8 @@ compile(char *file, char **defs, int ndef)
 	}
 	if((debug['a'] || debug['Z']) && !debug['n']) {
 		outfile = 0;
-		Binit(&outbuf, 1, OWRITE);
+		Binit(&outbuf, dup(1, -1), OWRITE);
+		dup(2, 1);
 	} else {
 		c = mycreat(outfile, 0664);
 		if(c < 0) {

+ 4 - 4
sys/src/libhttpd/gethead.c

@@ -19,7 +19,7 @@ hgethead(HConnect *c, int many)
 		s = (char*)hin->pos;
 		pp = s;
 		while(p = memchr(pp, '\n', (char*)hin->stop - pp)){
-			if(!many || p == pp || p == pp + 1 && *pp == '\r'){
+			if(!many || p == pp || (p == pp + 1 && *pp == '\r')){
 				pp = p + 1;
 				break;
 			}
@@ -28,13 +28,13 @@ hgethead(HConnect *c, int many)
 		hin->pos = (uchar*)pp;
 		n = pp - s;
 		if(c->hstop + n > &c->header[HBufSize])
-			return 0;
+			return -1;
 		memmove(c->hstop, s, n);
 		c->hstop += n;
 		*c->hstop = '\0';
 		if(p != nil)
-			return 1;
-		if(hreadbuf(hin, hin->pos) == nil || hin->state == Hend)
 			return 0;
+		if(hreadbuf(hin, hin->pos) == nil || hin->state == Hend)
+			return -1;
 	}
 }

+ 5 - 3
sys/src/libhttpd/parse.c

@@ -198,10 +198,12 @@ hparseheaders(HConnect *c, int timeout)
 
 	memset(&h, 0, sizeof(h));
 	h.c = c;
-	alarm(timeout);
-	if(!hgethead(c, 1))
+	if(timeout)
+		alarm(timeout);
+	if(hgethead(c, 1) < 0)
 		return -1;
-	alarm(0);
+	if(timeout)
+		alarm(0);
 	h.hstart = c->hpos;
 
 	if(setjmp(h.jmp) == -1)

+ 7 - 6
sys/src/libhttpd/parsereq.c

@@ -15,7 +15,6 @@ static	char*		abspath(HConnect *cc, char *origpath, char *curdir);
 static	int		getc(HConnect*);
 static	char*		getword(HConnect*);
 static	Strings		parseuri(HConnect *c, char*);
-static	Strings		stripmagic(char*);
 static	Strings		stripsearch(char*);
 
 /*
@@ -41,10 +40,12 @@ hparsereq(HConnect *c, int timeout)
 	 * later requests have to come quickly.
 	 * only works for http/1.1 or later.
 	 */
-	alarm(timeout);
-	if(!hgethead(c, 0))
-		return 0;
-	alarm(0);
+	if(timeout)
+		alarm(timeout);
+	if(hgethead(c, 0) < 0)
+		return -1;
+	if(timeout)
+		alarm(0);
 	c->reqtime = time(nil);
 	c->req.meth = getword(c);
 	if(c->req.meth == nil){
@@ -284,7 +285,7 @@ getword(HConnect *c)
 		}
 		ch = getc(c);
 	}
-	return nil;
+	return nil;	/* stupid 8c */
 }
 
 static int