Browse Source

Plan 9 from Bell Labs 2003-07-18

David du Colombier 21 years ago
parent
commit
3ac7df5ed4

+ 1 - 1
acme/mail/src/html.c

@@ -69,7 +69,7 @@ readbody(char *type, char *dir, int *np)
 	char *body;
 	
 	body = readfile(dir, "body", np);
-	if(strcmp(type, "text/html") == 0)
+	if(body != nil && strcmp(type, "text/html") == 0)
 		return formathtml(body, np);
 	return body;
 }

+ 6 - 6
dist/replica/plan9.db

@@ -142,7 +142,7 @@
 386/bin/aux/stub - 775 sys sys 1056364215 136382
 386/bin/aux/tcpostio - 775 sys sys 1048745028 196997
 386/bin/aux/text2post - 775 sys sys 1056364215 77273
-386/bin/aux/timesync - 775 sys sys 1056364216 128107
+386/bin/aux/timesync - 775 sys sys 1058474978 128023
 386/bin/aux/tr2post - 775 sys sys 1056364217 176207
 386/bin/aux/trampoline - 775 sys sys 1056364218 81185
 386/bin/aux/typepasswd - 775 sys sys 1056364218 68176
@@ -640,7 +640,7 @@ acme/bin/unind - 755 sys sys 1015011256 27
 acme/bin/wnew - 775 sys sys 1046184422 84
 acme/mail - 20000000775 sys sys 1015011265 0
 acme/mail/386 - 20000000775 sys sys 1015011538 0
-acme/mail/386/Mail - 775 sys sys 1056364448 177497
+acme/mail/386/Mail - 775 sys sys 1058463666 177480
 acme/mail/Mail - 775 sys sys 1015011264 202
 acme/mail/alpha - 20000000775 sys sys 1015011521 0
 acme/mail/arm - 20000000775 sys sys 1015011525 0
@@ -652,7 +652,7 @@ acme/mail/power - 20000000775 sys sys 1015011527 0
 acme/mail/readme - 664 sys sys 1017166342 2725
 acme/mail/src - 20000000775 sys sys 1015364010 0
 acme/mail/src/dat.h - 664 sys sys 1033936953 3857
-acme/mail/src/html.c - 664 sys sys 1034016085 1333
+acme/mail/src/html.c - 664 sys sys 1058463659 1348
 acme/mail/src/mail.c - 664 sys sys 1041481453 10994
 acme/mail/src/mesg.c - 664 sys sys 1043463888 26266
 acme/mail/src/mkfile - 664 sys sys 1037034918 364
@@ -6522,13 +6522,13 @@ sys/src/cmd/acme/disk.c - 664 sys sys 1014926093 2151
 sys/src/cmd/acme/ecmd.c - 664 sys sys 1050686429 23681
 sys/src/cmd/acme/edit.c - 664 sys sys 1015701171 12055
 sys/src/cmd/acme/edit.h - 664 sys sys 969500816 2466
-sys/src/cmd/acme/elog.c - 664 sys sys 1045504839 6830
+sys/src/cmd/acme/elog.c - 664 sys sys 1058463684 6777
 sys/src/cmd/acme/exec.c - 664 sys sys 1046620931 27023
 sys/src/cmd/acme/file.c - 664 sys sys 1044626079 5717
 sys/src/cmd/acme/fns.h - 664 sys sys 1044626080 2920
 sys/src/cmd/acme/fsys.c - 664 sys sys 1022512648 12727
 sys/src/cmd/acme/look.c - 664 sys sys 1041137125 14840
-sys/src/cmd/acme/mkfile - 664 sys sys 1044626081 566
+sys/src/cmd/acme/mkfile - 664 sys sys 1058463682 543
 sys/src/cmd/acme/regx.c - 664 sys sys 1014926094 16057
 sys/src/cmd/acme/rows.c - 664 sys sys 1016833877 14726
 sys/src/cmd/acme/scrl.c - 664 sys sys 1014926095 3072
@@ -6720,7 +6720,7 @@ sys/src/cmd/aux/rdwr.c - 664 sys sys 1016833876 811
 sys/src/cmd/aux/reboot.c - 664 sys sys 1014925091 1411
 sys/src/cmd/aux/searchfs.c - 664 sys sys 1014925091 18176
 sys/src/cmd/aux/stub.c - 664 sys sys 1032468954 2637
-sys/src/cmd/aux/timesync.c - 664 sys sys 1053201572 24309
+sys/src/cmd/aux/timesync.c - 664 sys sys 1058474964 24413
 sys/src/cmd/aux/trampoline.c - 664 sys sys 1034780422 3571
 sys/src/cmd/aux/typepasswd.c - 664 sys sys 1014925091 1761
 sys/src/cmd/aux/unlock - 664 sys sys 944960793 0

+ 6 - 0
dist/replica/plan9.log

@@ -12838,3 +12838,9 @@
 1058130077 2 c sys/src/libregexp/rregexec.c - 664 sys sys 1058129062 4671
 1058223723 0 c lib/face/48x48x4/.dict - 664 sys sys 1058223097 2005
 1058223723 1 a lib/face/48x48x4/p/plan9.1 - 664 sys sys 1058223140 993
+1058464876 0 c acme/mail/386/Mail - 775 sys sys 1058463666 177480
+1058464876 1 c acme/mail/src/html.c - 664 sys sys 1058463659 1348
+1058464876 2 c sys/src/cmd/acme/elog.c - 664 sys sys 1058463684 6777
+1058464876 3 c sys/src/cmd/acme/mkfile - 664 sys sys 1058463682 543
+1058475686 0 c 386/bin/aux/timesync - 775 sys sys 1058474978 128023
+1058475686 1 c sys/src/cmd/aux/timesync.c - 664 sys sys 1058474964 24413

+ 0 - 1
sys/src/cmd/acme/elog.c

@@ -171,7 +171,6 @@ eloginsert(File *f, int q0, Rune *r, int nr)
 	}
 	/* try to merge with previous */
 	if(f->elog.type==Insert && q0==f->elog.q0 && (q0+nr)-f->elog.q0<Maxstring){
-		f->elog.r = runerealloc(f->elog.r, f->elog.nr+nr);
 		runemove(f->elog.r+f->elog.nr, r, nr);
 		f->elog.nr += nr;
 		return;

+ 0 - 1
sys/src/cmd/acme/mkfile

@@ -33,7 +33,6 @@ UPDATE=\
 	mkfile\
 	$HFILES\
 	${OFILES:%.$O=%.c}\
-	${TARG:%=/386/bin/%}\
 
 </sys/src/cmd/mkone
 

+ 35 - 26
sys/src/cmd/aux/timesync.c

@@ -31,6 +31,7 @@ int impotent;
 int logging;
 int type;
 int gmtdelta;	// rtc+gmtdelta = gmt
+uvlong avgerr;
 
 // ntp server info
 int stratum = 14;
@@ -95,6 +96,7 @@ enum
 
 static void	addntpserver(char *name);
 static int	adjustperiod(vlong diff, vlong accuracy, int secs);
+static void	background(void);
 static int	caperror(vlong dhz, int tsecs, vlong taccuracy);
 static long	fstime(void);
 static int	gettime(vlong *nsec, uvlong *ticks, uvlong *hz); // returns time, ticks, hz
@@ -130,7 +132,7 @@ main(int argc, char **argv)
 	int t, fd;
 	Sample *s, *x, *first, **l;
 	vlong diff, accuracy, taccuracy;
-	uvlong hz, minhz, maxhz, avgerr, period, nhz;
+	uvlong hz, minhz, maxhz, period, nhz;
 	char *servenet[4];
 	int nservenet;
 	char *a;
@@ -235,6 +237,10 @@ main(int argc, char **argv)
 	fmtinstall('V', eipfmt);
 	sysid = getenv("sysname");
 
+	//  detach from the current namespace
+	if(debug)
+		rfork(RFNAMEG);
+
 	switch(type){
 	case Fs:
 		if(argc > 0)
@@ -254,23 +260,6 @@ main(int argc, char **argv)
 
 	setpriority();
 
-	//
-	//  detach from the current namespace
-	//
-	if(debug)
-		rfork(RFNAMEG);
-	else {
-		switch(rfork(RFPROC|RFFDG|RFNAMEG|RFNOTEG|RFNOWAIT)){
-		case -1:
-			sysfatal("forking: %r");
-			break;
-		case 0:
-			break;
-		default:
-			exits(0);
-		}
-	}
-
 	// figure out our time interface and initial frequency
 	inittime();
 	gettime(0, 0, &hz);
@@ -333,7 +322,7 @@ main(int argc, char **argv)
 	first = nil;
 	l = &first;
 	avgerr = accuracy>>1;
-	for(;; sleep(tsecs*(1000))){
+	for(;; background(),sleep(tsecs*(1000))){
 		s = mallocz(sizeof(*s), 1);
 		diff = 0;
 
@@ -988,7 +977,9 @@ ntpsample(void)
 			x = tns->stratum;
 		x *= SEC;
 		x += (vabs(tns->rootdelay+tns->rtt)>>1) + tns->rootdisp + tns->rtt;
-if(debug) fprint(2, "ntp %s rootdelay %lld rootdisp %lld metric %lld\n", tns->name, tns->rootdelay, tns->rootdisp, x);
+		if(debug)
+			fprint(2, "ntp %s rootdelay %lld rootdisp %lld metric %lld\n",
+				tns->name, tns->rootdelay, tns->rootdisp, x);
 		if(x < metric){
 			metric = x;
 			ns = tns;
@@ -1000,14 +991,10 @@ if(debug) fprint(2, "ntp %s rootdelay %lld rootdisp %lld metric %lld\n", tns->na
 
 	// save data for our server
 	rootdisp = ns->rootdisp;
-	rootdelay = ns->rootdelay;
+	rootdelay = ns->rootdelay+ns->rtt;
 	mydelay = ns->rtt;
 	x = vabs(ns->dt);
-	if(ns->disp == 0LL)
-		ns->disp = x;
-	else
-		ns->disp = (x+3LL*ns->disp)>>2;
-	mydisp = ns->disp;
+	mydisp = ns->disp+avgerr;
 	if(ns->stratum == 0)
 		stratum = 0;
 	else
@@ -1277,3 +1264,25 @@ vabs(vlong x)
 	else
 		return (uvlong)x;
 }
+
+static void
+background(void)
+{
+	static int inbackground;
+
+	if(inbackground)
+		return;
+
+	if(!debug) {
+		switch(rfork(RFPROC|RFFDG|RFNAMEG|RFNOTEG|RFNOWAIT)){
+		case -1:
+			sysfatal("forking: %r");
+			break;
+		case 0:
+			break;
+		default:
+			exits(0);
+		}
+	}
+	inbackground = 1;
+}