Browse Source

Plan 9 from Bell Labs 2007-06-23

David du Colombier 17 years ago
parent
commit
95d3710a7e

+ 10 - 8
dist/replica/_plan9.db

@@ -150,7 +150,7 @@
 386/bin/aux/trampoline - 775 sys sys 1178568259 82677
 386/bin/aux/typepasswd - 775 sys sys 1168402288 69738
 386/bin/aux/usage - 775 sys sys 1168402288 59809
-386/bin/aux/vga - 775 sys sys 1178568260 334772
+386/bin/aux/vga - 775 sys sys 1182482483 334774
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
@@ -400,7 +400,7 @@
 386/bin/scat - 775 sys sys 1182223286 284918
 386/bin/scp - 775 sys sys 1178568301 152318
 386/bin/scuzz - 775 sys sys 1181507269 115314
-386/bin/sed - 775 sys sys 1181507269 89946
+386/bin/sed - 775 sys sys 1182482483 90481
 386/bin/seq - 775 sys sys 1162241047 38441
 386/bin/sha1sum - 775 sys sys 1168402348 61366
 386/bin/size - 775 sys sys 1178939753 79772
@@ -5821,7 +5821,7 @@ sys/games - 20000000775 sys sys 1117225532 0
 sys/games/lib - 20000000775 sys sys 1165337608 0
 sys/games/lib/4scores - 10000000666 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000666 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1181172615 265729
+sys/games/lib/fortunes - 664 sys sys 1182530451 265776
 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
@@ -12819,8 +12819,8 @@ sys/src/cmd/mtime.c - 664 sys sys 1036172302 450
 sys/src/cmd/mug.c - 664 sys sys 1157143847 24888
 sys/src/cmd/mv.c - 664 sys sys 1163029439 4682
 sys/src/cmd/ndb - 20000000775 sys sys 1080135004 0
-sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1175901489 6927
-sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1175901582 11659
+sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1182554015 7035
+sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1182554038 11730
 sys/src/cmd/ndb/cs.c - 664 sys sys 1182275681 33213
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
 sys/src/cmd/ndb/dblookup.c - 664 sys sys 1175901604 21010
@@ -12829,7 +12829,7 @@ sys/src/cmd/ndb/dnarea.c - 664 sys sys 1175664421 2519
 sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1178508075 3140
 sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1178508075 30139
 sys/src/cmd/ndb/dns.c - 664 sys sys 1177811831 16021
-sys/src/cmd/ndb/dns.h - 664 sys sys 1175901645 10640
+sys/src/cmd/ndb/dns.h - 664 sys sys 1182554108 11171
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1176746985 8741
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1175901160 4392
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1174626126 2435
@@ -15844,5 +15844,7 @@ 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/sed - 775 sys sys 1182482483 90481
-386/bin/aux/vga - 775 sys sys 1182482483 334774
+386/bin/snoopy - 775 sys sys 1182569336 189951
+386/bin/ndb/dns - 775 sys sys 1182569334 285743
+386/bin/ndb/dnsdebug - 775 sys sys 1182569335 260686
+386/bin/ndb/dnstcp - 775 sys sys 1182569335 259148

+ 8 - 8
dist/replica/plan9.db

@@ -343,10 +343,10 @@
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1182283129 149052
 386/bin/ndb/csquery - 775 sys sys 1176488418 61652
-386/bin/ndb/dns - 775 sys sys 1178568294 285534
-386/bin/ndb/dnsdebug - 775 sys sys 1178568295 260477
+386/bin/ndb/dns - 775 sys sys 1182569334 285743
+386/bin/ndb/dnsdebug - 775 sys sys 1182569335 260686
 386/bin/ndb/dnsquery - 775 sys sys 1174704818 64417
-386/bin/ndb/dnstcp - 775 sys sys 1178568295 258939
+386/bin/ndb/dnstcp - 775 sys sys 1182569335 259148
 386/bin/ndb/ipquery - 775 sys sys 1178568296 95524
 386/bin/ndb/mkdb - 775 sys sys 1168402340 64211
 386/bin/ndb/mkhash - 775 sys sys 1178568296 83312
@@ -408,7 +408,7 @@
 386/bin/snap - 775 sys sys 1178939753 316147
 386/bin/snapfs - 775 sys sys 1179372105 390366
 386/bin/sniffer - 775 sys sys 1038443185 99028
-386/bin/snoopy - 775 sys sys 1181507270 189844
+386/bin/snoopy - 775 sys sys 1182569336 189951
 386/bin/sort - 775 sys sys 1178568303 81057
 386/bin/spin - 775 sys sys 1176520498 760856
 386/bin/split - 775 sys sys 1181507270 75811
@@ -5821,7 +5821,7 @@ sys/games - 20000000775 sys sys 1117225532 0
 sys/games/lib - 20000000775 sys sys 1165337608 0
 sys/games/lib/4scores - 10000000666 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000666 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1181172615 265729
+sys/games/lib/fortunes - 664 sys sys 1182530451 265776
 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
@@ -12819,8 +12819,8 @@ sys/src/cmd/mtime.c - 664 sys sys 1036172302 450
 sys/src/cmd/mug.c - 664 sys sys 1157143847 24888
 sys/src/cmd/mv.c - 664 sys sys 1163029439 4682
 sys/src/cmd/ndb - 20000000775 sys sys 1080135004 0
-sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1175901489 6927
-sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1175901582 11659
+sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1182554015 7035
+sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1182554038 11730
 sys/src/cmd/ndb/cs.c - 664 sys sys 1182275681 33213
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
 sys/src/cmd/ndb/dblookup.c - 664 sys sys 1175901604 21010
@@ -12829,7 +12829,7 @@ sys/src/cmd/ndb/dnarea.c - 664 sys sys 1175664421 2519
 sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1178508075 3140
 sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1178508075 30139
 sys/src/cmd/ndb/dns.c - 664 sys sys 1177811831 16021
-sys/src/cmd/ndb/dns.h - 664 sys sys 1175901645 10640
+sys/src/cmd/ndb/dns.h - 664 sys sys 1182554108 11171
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1176746985 8741
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1175901160 4392
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1174626126 2435

+ 9 - 0
dist/replica/plan9.log

@@ -49285,3 +49285,12 @@
 1182466823 0 c sys/src/cmd/sed.c - 664 sys sys 1182465504 26844
 1182483004 0 c 386/bin/sed - 775 sys sys 1182482483 90481
 1182483004 1 c 386/bin/aux/vga - 775 sys sys 1182482483 334774
+1182499241 0 c sys/games/lib/fortunes - 664 sys sys 1182497785 265775
+1182531623 0 c sys/games/lib/fortunes - 664 sys sys 1182530451 265776
+1182555023 0 c sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1182554015 7035
+1182555023 1 c sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1182554038 11730
+1182555023 2 c sys/src/cmd/ndb/dns.h - 664 sys sys 1182554108 11171
+1182569422 0 c 386/bin/snoopy - 775 sys sys 1182569336 189951
+1182569422 1 c 386/bin/ndb/dns - 775 sys sys 1182569334 285743
+1182569422 2 c 386/bin/ndb/dnsdebug - 775 sys sys 1182569335 260686
+1182569422 3 c 386/bin/ndb/dnstcp - 775 sys sys 1182569335 259148

+ 2 - 0
sys/games/lib/fortunes

@@ -4184,3 +4184,5 @@ I expect to be quite wealthy once the dust from the Linux IPOs has settled.  - E
 A handful of characteristics of Unix are responsible for its resilience. First, Unix is simple: whereas some operating systems implement thousands of system calls and have unclear design goals, Unix systems typically implement only hundreds of system calls and have a very clear design. -- Linux Kernel Development, 2nd Ed. by Robert Love
 IF YOU CAN HEAR THUNDER...YOU ARE CLOSE ENOUGH TO BE STRUCK BY LIGHTNING.
 If you go and talk to our people and ask why they are doing something, they will give you a good reason why they are doing it.  - Ravi Sethi, President, Avaya Labs Research
+hi uriel!
+Gianfranco Luigi per tutti bezahlen.

+ 4 - 1
sys/src/cmd/ndb/convDNS2M.c

@@ -134,7 +134,10 @@ pname(uchar *p, uchar *ep, char *np, Dict *dp)
 			if(strcmp(np, dp->x[i].name) == 0){
 				if(ep - p < 2)
 					return ep+1;
-				*p++ = (dp->x[i].offset>>8) | 0xc0;
+				if ((dp->x[i].offset>>8) & 0xc0)
+					dnslog("convDNS2M: offset too big for "
+						"DNS packet format");
+				*p++ = dp->x[i].offset>>8 | 0xc0;
 				*p++ = dp->x[i].offset;
 				return p;
 			}

+ 5 - 4
sys/src/cmd/ndb/convM2DNS.c

@@ -266,10 +266,9 @@ gname(char *to, RR *rp, Scan *sp)
 			 * the end of a long tcp reply.
 			 */
 			// sp->err = "edns extended label present";
-			dnslog("edns label first byte 0%o = '%c'", *p, *p);
+			dnslog("edns label; first byte 0%o = '%c'", *p, *p);
 			sp->stop = 1;
 			goto err;
-			break;
 		case 0200:		/* reserved */
 			sp->err = "reserved-use label present";
 			goto err;
@@ -278,7 +277,7 @@ gname(char *to, RR *rp, Scan *sp)
 				sp->err = "pointer loop";
 				goto err;
 			}
-			off = (p[0]<<8 | p[1]) & 0x3ff;
+			off = (p[0] & 077)<<8 | p[1];
 			p = sp->base + off;
 			if(p >= sp->ep){
 				sp->err = "bad pointer";
@@ -354,7 +353,7 @@ retry:
 		errtoolong(rp, sp, sp->ep - sp->p, len, "convM2RR");
 	if(sp->err || sp->rcode || sp->stop){
 		rrfree(rp);
-		return 0;
+		return nil;
 	}
 
 	switch(type){
@@ -513,6 +512,7 @@ rrloop(Scan *sp, char *what, int count, int quest)
 		rp = quest? convM2Q(sp): convM2RR(sp, what);
 		if(rp == nil)
 			break;
+		setmalloctag(rp, getcallerpc(&sp));
 		if(sp->err || sp->rcode || sp->stop){
 			rrfree(rp);
 			break;
@@ -520,6 +520,7 @@ rrloop(Scan *sp, char *what, int count, int quest)
 		*l = rp;
 		l = &rp->next;
 	}
+//	setmalloctag(first, getcallerpc(&sp));
 	return first;
 }
 

+ 28 - 6
sys/src/cmd/ndb/dns.h

@@ -141,11 +141,11 @@ enum
 	RRmagic=	0xdeadbabe,
 	DNmagic=	0xa110a110,
 
-	/* parallelism: tune; was 32 */
-	Maxactive=	64,
+	/* parallelism: tune; was 32; allow lots*/
+	Maxactive=	250,
 
-	/* tune; was 60 */
-	Maxreqtm=	30,	/* max. seconds to process a request */
+	/* tune; was 60; keep short */
+	Maxreqtm=	20,	/* max. seconds to process a request */
 };
 
 typedef struct Area	Area;
@@ -187,10 +187,11 @@ struct DN
 	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 */
+	ulong	ordinal;
 	ushort	class;		/* RR class */
+	uchar	keep;		/* flag: never age this name */
 	uchar	respcode;	/* response code */
 /* was:	char	nonexistent; /* true if we get an authoritative nx for this domain */
-	ulong	ordinal;
 	QLock	querylck;	/* permit only 1 query per domain name at a time */
 };
 
@@ -362,11 +363,30 @@ typedef struct Cfg Cfg;
 struct Cfg {
 	int	cachedb;
 	int	resolver;
-	int	serve;
+	int	justforw;	/* flag: pure resolver, just forward queries */
+	int	serve;		/* flag: serve udp queries */
 	int	inside;
 	int	straddle;
 };
 
+/* (udp) query stats */
+typedef struct {
+	QLock;
+	ulong	slavehiwat;	/* procs */
+	ulong	qrecvd;		/* query counts */
+	ulong	qsent;
+	/* reply times by count */
+	ulong	under1s;
+	ulong	under5s;
+	ulong	tmout;
+	ulong	tmoutcname;
+	ulong	tmoutv6;
+
+	ulong	answinmem;	/* count: answer in memory */
+} Stats;
+
+Stats stats;
+
 enum
 {
 	Recurse,
@@ -410,6 +430,7 @@ void	db2cache(int);
 void	dnage(DN*);
 void	dnageall(int);
 void	dnagedb(void);
+void	dnagenever(void);
 void	dnauthdb(void);
 void	dncheck(void*, int);
 void	dndump(char*);
@@ -422,6 +443,7 @@ void	dnput(void);
 void	dnslog(char*, ...);
 void*	emalloc(int);
 char*	estrdup(char*);
+// void	freeanswers(DNSmsg *mp);
 void	freeserverlist(Server*);
 int	getactivity(Request*, int);
 Area*	inmyarea(char*);