Browse Source

Plan 9 from Bell Labs 2004-12-07

David du Colombier 19 years ago
parent
commit
43d4387905

+ 6 - 6
dist/replica/_plan9.db

@@ -2832,7 +2832,7 @@ mail/lib/pipeto.bayes - 664 upas upas 1063950935 129
 mail/lib/pipeto.lib - 664 upas upas 1068478156 3340
 mail/lib/prof.mbox - 664 upas upas 1063950959 13
 mail/lib/prof.spam - 664 upas upas 1063950959 13
-mail/lib/qmail - 775 upas upas 1100638780 182
+mail/lib/qmail - 775 upas upas 1102352695 197
 mail/lib/remotemail - 775 upas upas 959722371 180
 mail/lib/rewrite - 664 upas upas 964036209 295
 mail/lib/rewrite.direct - 664 upas upas 1020271916 1048
@@ -4015,7 +4015,7 @@ sys/lib/man/preface4 - 664 sys sys 1020082276 1758
 sys/lib/man/secindex - 775 sys sys 956337727 322
 sys/lib/man/title - 664 sys sys 1019915894 746
 sys/lib/man/trademarks - 664 sys sys 958527089 1838
-sys/lib/mimetype - 664 sys sys 1089299188 5778
+sys/lib/mimetype - 664 sys sys 1102352651 6153
 sys/lib/newuser - 775 sys sys 1097900388 1259
 sys/lib/plumb - 20000000775 sys sys 944957365 0
 sys/lib/plumb/basic - 664 sys sys 1070330856 2930
@@ -5265,8 +5265,6 @@ sys/src/9/boot/bootmkfile - 664 sys sys 1091732792 404
 sys/src/9/boot/doauthenticate.c - 664 sys sys 1015012529 2300
 sys/src/9/boot/embed.c - 664 sys sys 1039763720 1191
 sys/src/9/boot/getpasswd.c - 664 sys sys 957373373 654
-sys/src/9/boot/libboot.a8 - 664 sys sys 1089299185 63496
-sys/src/9/boot/libboot.aq - 664 sys sys 1089390072 78666
 sys/src/9/boot/local.c - 664 sys sys 1068835808 5355
 sys/src/9/boot/mkboot - 775 sys sys 1045504382 1935
 sys/src/9/boot/nopsession.c - 664 sys sys 957373374 843
@@ -6854,13 +6852,13 @@ sys/src/cmd/auth/changeuser.c - 664 sys sys 1015008431 2933
 sys/src/cmd/auth/convbio.c - 664 sys sys 1015008432 2212
 sys/src/cmd/auth/convkeys.c - 664 sys sys 1015008430 2347
 sys/src/cmd/auth/convkeys2.c - 664 sys sys 1015008432 2401
-sys/src/cmd/auth/cron.c - 664 sys sys 1063858528 11410
+sys/src/cmd/auth/cron.c - 664 sys sys 1102346964 11487
 sys/src/cmd/auth/debug.c - 664 sys sys 1083771270 7356
 sys/src/cmd/auth/disable - 775 sys sys 1015008431 146
 sys/src/cmd/auth/enable - 775 sys sys 1015008430 134
 sys/src/cmd/auth/factotum - 20000000775 sys sys 1017165894 0
 sys/src/cmd/auth/factotum/apop.c - 664 sys sys 1071260312 6074
-sys/src/cmd/auth/factotum/chap.c - 664 sys sys 1099176467 8774
+sys/src/cmd/auth/factotum/chap.c - 664 sys sys 1102347052 8751
 sys/src/cmd/auth/factotum/confirm.c - 664 sys sys 1044829586 3103
 sys/src/cmd/auth/factotum/dat.h - 664 sys sys 1099176466 4809
 sys/src/cmd/auth/factotum/fgui.c - 664 sys sys 1044829587 15948
@@ -12394,3 +12392,5 @@ usr/glenda/lib/profile - 664 glenda glenda 1021580005 847
 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/auth/cron - 775 sys sys 1102393465 142855
+386/bin/auth/factotum - 775 sys sys 1102393465 313832

+ 6 - 8
dist/replica/plan9.db

@@ -49,11 +49,11 @@
 386/bin/auth/changeuser - 775 sys sys 1102171654 96991
 386/bin/auth/convkeys - 775 sys sys 1102171655 87188
 386/bin/auth/convkeys2 - 775 sys sys 1102171655 87239
-386/bin/auth/cron - 775 sys sys 1102171655 142823
+386/bin/auth/cron - 775 sys sys 1102393465 142855
 386/bin/auth/debug - 775 sys sys 1102171656 101029
 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 1102171656 314174
+386/bin/auth/factotum - 775 sys sys 1102393465 313832
 386/bin/auth/fgui - 775 sys sys 1102171657 217758
 386/bin/auth/guard.srv - 775 sys sys 1102171658 142815
 386/bin/auth/iam - 775 sys sys 1085076981 50791
@@ -2832,7 +2832,7 @@ mail/lib/pipeto.bayes - 664 upas upas 1063950935 129
 mail/lib/pipeto.lib - 664 upas upas 1068478156 3340
 mail/lib/prof.mbox - 664 upas upas 1063950959 13
 mail/lib/prof.spam - 664 upas upas 1063950959 13
-mail/lib/qmail - 775 upas upas 1100638780 182
+mail/lib/qmail - 775 upas upas 1102352695 197
 mail/lib/remotemail - 775 upas upas 959722371 180
 mail/lib/rewrite - 664 upas upas 964036209 295
 mail/lib/rewrite.direct - 664 upas upas 1020271916 1048
@@ -4015,7 +4015,7 @@ sys/lib/man/preface4 - 664 sys sys 1020082276 1758
 sys/lib/man/secindex - 775 sys sys 956337727 322
 sys/lib/man/title - 664 sys sys 1019915894 746
 sys/lib/man/trademarks - 664 sys sys 958527089 1838
-sys/lib/mimetype - 664 sys sys 1089299188 5778
+sys/lib/mimetype - 664 sys sys 1102352651 6153
 sys/lib/newuser - 775 sys sys 1097900388 1259
 sys/lib/plumb - 20000000775 sys sys 944957365 0
 sys/lib/plumb/basic - 664 sys sys 1070330856 2930
@@ -5265,8 +5265,6 @@ sys/src/9/boot/bootmkfile - 664 sys sys 1091732792 404
 sys/src/9/boot/doauthenticate.c - 664 sys sys 1015012529 2300
 sys/src/9/boot/embed.c - 664 sys sys 1039763720 1191
 sys/src/9/boot/getpasswd.c - 664 sys sys 957373373 654
-sys/src/9/boot/libboot.a8 - 664 sys sys 1089299185 63496
-sys/src/9/boot/libboot.aq - 664 sys sys 1089390072 78666
 sys/src/9/boot/local.c - 664 sys sys 1068835808 5355
 sys/src/9/boot/mkboot - 775 sys sys 1045504382 1935
 sys/src/9/boot/nopsession.c - 664 sys sys 957373374 843
@@ -6854,13 +6852,13 @@ sys/src/cmd/auth/changeuser.c - 664 sys sys 1015008431 2933
 sys/src/cmd/auth/convbio.c - 664 sys sys 1015008432 2212
 sys/src/cmd/auth/convkeys.c - 664 sys sys 1015008430 2347
 sys/src/cmd/auth/convkeys2.c - 664 sys sys 1015008432 2401
-sys/src/cmd/auth/cron.c - 664 sys sys 1063858528 11410
+sys/src/cmd/auth/cron.c - 664 sys sys 1102346964 11487
 sys/src/cmd/auth/debug.c - 664 sys sys 1083771270 7356
 sys/src/cmd/auth/disable - 775 sys sys 1015008431 146
 sys/src/cmd/auth/enable - 775 sys sys 1015008430 134
 sys/src/cmd/auth/factotum - 20000000775 sys sys 1017165894 0
 sys/src/cmd/auth/factotum/apop.c - 664 sys sys 1071260312 6074
-sys/src/cmd/auth/factotum/chap.c - 664 sys sys 1099176467 8774
+sys/src/cmd/auth/factotum/chap.c - 664 sys sys 1102347052 8751
 sys/src/cmd/auth/factotum/confirm.c - 664 sys sys 1044829586 3103
 sys/src/cmd/auth/factotum/dat.h - 664 sys sys 1099176466 4809
 sys/src/cmd/auth/factotum/fgui.c - 664 sys sys 1044829587 15948

+ 8 - 0
dist/replica/plan9.log

@@ -17567,3 +17567,11 @@
 1102172490 400 c acme/bin/386/spout - 775 sys sys 1102171815 61582
 1102172490 401 c acme/bin/386/win - 775 sys sys 1102171815 178910
 1102172490 402 c acme/mail/386/Mail - 775 sys sys 1102171816 178677
+1102347123 0 c sys/src/cmd/auth/cron.c - 664 sys sys 1102346964 11487
+1102347123 1 c sys/src/cmd/auth/factotum/chap.c - 664 sys sys 1102347052 8751
+1102354204 0 c mail/lib/qmail - 775 upas upas 1102352695 197
+1102354204 1 c sys/lib/mimetype - 664 sys sys 1102352651 6153
+1102354204 2 d sys/src/9/boot/libboot.aq - 664 sys sys 1089390072 0
+1102354204 3 d sys/src/9/boot/libboot.a8 - 664 sys sys 1089299185 0
+1102393811 0 c 386/bin/auth/cron - 775 sys sys 1102393465 142855
+1102393811 1 c 386/bin/auth/factotum - 775 sys sys 1102393465 313832

+ 5 - 7
mail/lib/qmail

@@ -1,8 +1,6 @@
 #!/bin/rc
-sender=$1
-shift
-addr=$1
-shift
-/bin/upas/qer /mail/queue mail $sender $addr $* || exit 1
-/bin/upas/runq /mail/queue /mail/lib/remotemail</dev/null>/dev/null >[2=1] &
-exit 0
+# qmail sender machine user...
+rfork s
+upas/vf | upas/qer /mail/queue smtp $* || exit 'qer failed'
+upas/runq -n 10 /mail/queue /mail/lib/remotemail </dev/null >/dev/null >[2=1] &
+exit ''

+ 9 - 2
sys/lib/mimetype

@@ -1,4 +1,4 @@
-#suffix		generic type	specific type	encoding	safe?
+#suffix		generic type	specific type	encoding	safe? y=yes, m=maybe, n=no, p=previous.suffix, r=mailreject
 .C		text		plain		-		y # C++ program
 .Z		-		-		compress	m
 .a		application	octet-stream	-		y
@@ -8,6 +8,7 @@
 .aifc		audio		x-aiff		-		y
 .aiff		audio		x-aiff		-		y
 .asf		video		x-ms-asf	-		m # MS streaming
+.asc		application	text		-		y # sometimes application/pgp-signature
 .asx		video		x-ms-asf	-		m # MS streaming
 .au		audio		basic		-		y # sun audio
 .avi		video		x-msvideo	-		m
@@ -26,6 +27,7 @@
 .class		application	java		-		y # Java bytecodes
 .com		application	octet-stream	-		r # DOS executable
 .cpio		application	x-cpio		-		y
+.cpl		application	octet-stream	-		r # Windows Control Panel Applet
 .cpp		text		plain		-		y # DOS C++ program
 .crt		application	x-x509-ca-cert	-		y # DER X.509 CA certificate
 .css		text		css		-		m
@@ -45,17 +47,20 @@
 .f90		text		plain		-		y # fortran-90 program
 .flc		video		x-flc		-		m
 .fli		video		x-fli		-		m
+.gcd		text		x-pcs-gcd	-		y	# helper file for .qcp
 .gif		image		gif		-		y
 .gtar		application	x-gtar		-		m
 .gz		-		-		gzip		m # gzipped file
 .h		text		plain		-		y # C header file
 .hdf		application	x-hdf		-		y
+.hdml		text		x-hdml		-		y
 .hqx		application	octet-stream	-		m # Mac BinHex
 .htm		text		html		-		m
 .html		text		html		-		m
 .ico		image		x-icon		-		y
 .ief		image		ief		-		y
-.jar		application	java-archive -		y
+.jad		text		vnd.sun.j2me.app-descriptor	-	y
+.jar		application	java-archive	-		y
 .jfif		image		jpeg		-		y
 .jfif-tbnl	image		jpeg		-		y
 .jpe		image		jpeg		-		y
@@ -80,12 +85,14 @@
 .o		application	octet-stream	-		y
 .oda		application	oda		-		m
 .p		text		plain			-	y # Pascal program
+.p7m		application	x-pkcs7-mime		-	y # SMIME
 .p7s		application	x-pkcs7-signature	-	y # SMIME
 .pbm		image		x-portable-bitmap	-	y
 .pdf		application	pdf		-		y # Adobe Portable Document Format
 .pif		application	octet-stream	-		r # DOS executable
 .pgm		image		x-portable-graymap	-	y
 .pl		text		plain		-		y
+.png		image		png		-		y
 .pnm		image		x-portable-anymap	-	y
 .ppm		image		x-portable-pixmap	-	y
 .ppt		application	vnd.ms-powerpoint	-	n # Microsoft PowerPoint

+ 2 - 0
sys/src/cmd/auth/cron.c

@@ -106,6 +106,8 @@ main(int argc, char *argv[])
 	for(;;){
 		readalljobs();
 		now = time(0) / 60;
+		if ((now-last) > (60*60*24))		/* don't go mad */
+			last = now-(60*60*24);
 		for(; last <= now; last += 2){
 			tm = *localtime(last*60);
 			t.min = 1 << tm.min/2;

+ 13 - 22
sys/src/cmd/auth/factotum/chap.c

@@ -124,18 +124,6 @@ chapclose(Fsstate *fss)
 	free(s);
 }
 
-void
-dmpkey(char *s, void *v, int n)
-{
-	int i;
-	char *p = v;
-
-	print("%s", s);
-	for (i = 0; i < n; i++)
-		print("%02x ", *p++);
-	print("\n");
-}
-
 
 static int
 chapwrite(Fsstate *fss, void *va, uint n)
@@ -197,6 +185,7 @@ chapwrite(Fsstate *fss, void *va, uint n)
 			memmove(&cr, va, sizeof cr);
 			ocr.id = cr.id;
 			memmove(ocr.resp, cr.resp, sizeof ocr.resp);
+			memset(omcr.uid, 0, sizeof(omcr.uid));
 			strecpy(ocr.uid, ocr.uid+sizeof ocr.uid, s->user);
 			reply = &ocr;
 			nreply = sizeof ocr;
@@ -207,12 +196,10 @@ chapwrite(Fsstate *fss, void *va, uint n)
 			memmove(&mcr, va, sizeof mcr);
 			memmove(omcr.LMresp, mcr.LMresp, sizeof omcr.LMresp);
 			memmove(omcr.NTresp, mcr.NTresp, sizeof omcr.NTresp);
+			memset(omcr.uid, 0, sizeof(omcr.uid));
 			strecpy(omcr.uid, omcr.uid+sizeof omcr.uid, s->user);
 			reply = &omcr;
 			nreply = sizeof omcr;
-print("%s\n", omcr.uid);
-dmpkey("LM ", omcr.LMresp, 24);
-dmpkey("NT ", omcr.NTresp, 24);
 			break;
 		}
 		if(doreply(s, reply, nreply) < 0)
@@ -240,7 +227,8 @@ chapread(Fsstate *fss, void *va, uint *n)
 	case CHaveResp:
 		switch(s->astype){
 		default:
-			abort();
+			phaseerror(fss, "write");
+			break;
 		case AuthMSchap:
 			if(*n > sizeof(MSchapreply))
 				*n = sizeof(MSchapreply);
@@ -388,17 +376,15 @@ hash(uchar pass[16], uchar c8[ChapChallen], uchar p24[MSchapResplen])
 static void
 doNTchap(char *pass, uchar chal[ChapChallen], uchar reply[MSchapResplen])
 {
+	Rune r;
 	int i, n;
-	uchar *w, unipass[256];
 	uchar digest[MD4dlen];
-
-	Rune r;
+	uchar *w, unipass[256];
 
 	// Standard says unlimited length, experience says 128 max
 	if ((n = strlen(pass)) > 128)
 		n = 128;
 
-	memset(unipass, 0, sizeof unipass);
 	for(i=0, w=unipass; i < n; i++) {
 		pass += chartorune(&r, pass);
 		*w++ = r & 0xff;
@@ -406,7 +392,8 @@ doNTchap(char *pass, uchar chal[ChapChallen], uchar reply[MSchapResplen])
 	}
 
 	memset(digest, 0, sizeof digest);
-	md4(unipass, w - unipass, digest, nil);
+	md4(unipass, w-unipass, digest, nil);
+	memset(unipass, 0, sizeof unipass);
 	hash(digest, chal, reply);
 }
 
@@ -432,6 +419,7 @@ doLMchap(char *pass, uchar chal[ChapChallen], uchar reply[MSchapResplen])
 		block_cipher(schedule, p16+i*8, 0);
 	}
 
+	memset(p14, 0, sizeof p14);
 	hash(p16, chal, reply);
 }
 
@@ -442,7 +430,10 @@ dochap(char *pass, int id, char chal[ChapChallen], uchar resp[ChapResplen])
 	int n = strlen(pass);
 
 	*buf = id;
-	strcpy(buf+1, pass);
+	if (n > MAXNAMELEN)
+		n = MAXNAMELEN-1;
+	memset(buf, 0, sizeof buf);
+	strncpy(buf+1, pass, n);
 	memmove(buf+1+n, chal, ChapChallen);
 	md5((uchar*)buf, 1+n+ChapChallen, resp, nil);
 }