Browse Source

Plan 9 from Bell Labs 2004-03-20

David du Colombier 20 years ago
parent
commit
55eadebaed

+ 6 - 6
dist/replica/plan9.db

@@ -5085,7 +5085,7 @@ sys/man/8/ping - 664 sys sys 1063855805 3309
 sys/man/8/plan9.ini - 664 sys sys 1063855903 20744
 sys/man/8/pop3 - 664 sys sys 1063854676 2720
 sys/man/8/ppp - 664 sys sys 1050361032 4424
-sys/man/8/prep - 664 sys sys 1079576131 13820
+sys/man/8/prep - 664 sys sys 1079705872 13820
 sys/man/8/qer - 664 sys sys 1067723129 4909
 sys/man/8/reboot - 664 sys sys 969499895 414
 sys/man/8/replica - 664 sys sys 1021579979 6239
@@ -9763,13 +9763,13 @@ sys/src/cmd/ndb/cs.c - 664 sys sys 1079357413 33069
 sys/src/cmd/ndb/csgetval.c - 664 sys sys 957402051 1051
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1014926159 1062
 sys/src/cmd/ndb/dblookup.c - 664 sys sys 1078927860 18090
-sys/src/cmd/ndb/dn.c - 664 sys sys 1078928034 26771
+sys/src/cmd/ndb/dn.c - 664 sys sys 1079747687 26999
 sys/src/cmd/ndb/dnarea.c - 664 sys sys 1055701929 2126
 sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1055701929 3062
-sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1055701926 15331
-sys/src/cmd/ndb/dns.c - 664 sys sys 1063855017 15261
-sys/src/cmd/ndb/dns.h - 664 sys sys 1063855018 8983
-sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1063861697 8449
+sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1079747687 15363
+sys/src/cmd/ndb/dns.c - 664 sys sys 1079747686 15333
+sys/src/cmd/ndb/dns.h - 664 sys sys 1079747686 8980
+sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1079747685 8488
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1021579994 3687
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1014926160 2108
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1063861697 7085

+ 6 - 0
dist/replica/plan9.log

@@ -14705,3 +14705,9 @@
 1079618508 1 c sys/src/9/pc/kbd.c - 664 sys sys 1079617269 11655
 1079634710 0 c sys/src/9/port/edf.c - 664 sys sys 1079634533 12358
 1079634710 1 c sys/src/9/port/edf.h - 664 sys sys 1079634533 1153
+1079706723 0 c sys/man/8/prep - 664 sys sys 1079705872 13820
+1079748010 0 c sys/src/cmd/ndb/dn.c - 664 sys sys 1079747687 26999
+1079748010 1 c sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1079747687 15363
+1079748010 2 c sys/src/cmd/ndb/dns.c - 664 sys sys 1079747686 15333
+1079748010 3 c sys/src/cmd/ndb/dns.h - 664 sys sys 1079747686 8980
+1079748010 4 c sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1079747685 8488

+ 1 - 1
sys/man/8/prep

@@ -678,7 +678,7 @@ Initialize the blank hard disk
 disk/mbr -m /386/mbr /dev/sdC0/data
 disk/fdisk -baw /dev/sdC0/data
 disk/prep -bw -a^(9fat fs cache swap) /dev/sdC0/plan9
-disk/format -b /386/pbslda -d -r 2 /dev/sdC0/9fat 9load 9pcdisk plan9.ini
+disk/format -b /386/pbslba -d -r 2 /dev/sdC0/9fat 9load 9pcdisk plan9.ini
 .EE
 .PP
 .SH SOURCE

+ 7 - 0
sys/src/cmd/ndb/dn.c

@@ -320,9 +320,12 @@ dnageall(int doit)
 		l = &ht[i];
 		for(dp = *l; dp; dp = *l){
 			if(dp->rr == 0 && dp->refs == 0){
+				assert(dp->magic == DNmagic);
 				*l = dp->next;
 				if(dp->name)
 					free(dp->name);
+				dp->magic = ~dp->magic;
+syslog(0, "dns", "freeing %p\n", dp);
 				dnvars.names--;
 				free(dp);
 				continue;
@@ -612,6 +615,7 @@ rrfree(RR *rp)
 	RR *nrp;
 	Txt *t;
 
+	assert(rp->magic = RRmagic);
 	assert(!rp->cached);
 
 	dp = rp->owner;
@@ -652,6 +656,7 @@ rrfree(RR *rp)
 		break;
 	}
 
+	rp->magic = ~rp->magic;
 	free(rp);
 }
 
@@ -1437,6 +1442,7 @@ emalloc(int size)
 	x = mallocz(size, 1);
 	if(x == nil)
 		abort();
+	setmalloctag(x, getcallerpc(&size));
 	return x;
 }
 
@@ -1451,6 +1457,7 @@ estrdup(char *s)
 	if(p == nil)
 		abort();
 	memmove(p, s, size);
+	setmalloctag(p, getcallerpc(&s));
 	return p;
 }
 

+ 1 - 0
sys/src/cmd/ndb/dnresolve.c

@@ -463,6 +463,7 @@ serveraddrs(RR *nsrp, Dest *dest, int nd, int depth, Request *reqp)
 	 */
 	arp = 0;
 	for(rp = nsrp; rp; rp = rp->next){
+		assert(rp->magic == RRmagic);
 		if(rp->marker)
 			continue;
 		arp = rrlookup(rp->host, Ta, NOneg);

+ 15 - 12
sys/src/cmd/ndb/dns.c

@@ -731,7 +731,6 @@ rwrite(Job *job, Mfile *mf, Request *req)
 		rrfreelist(neg);
 	}
 	if(rp == 0){
-		
 		switch(status){
 		case Rname:
 			err = "name does not exist";
@@ -744,18 +743,22 @@ rwrite(Job *job, Mfile *mf, Request *req)
 			break;
 		}
 	} else {
-		/* format data to be read later */
-		n = 0;
-		mf->nrr = 0;
-		for(tp = rp; mf->nrr < Maxrrr-1 && n < Maxreply && tp &&
-				tsame(mf->type, tp->type); tp = tp->next){
-			mf->rr[mf->nrr++] = n;
-			if(wantsav)
-				n += snprint(mf->reply+n, Maxreply-n, "%Q", tp);
-			else
-				n += snprint(mf->reply+n, Maxreply-n, "%R", tp);
+		lock(&joblock);
+		if(!job->flushed){
+			/* format data to be read later */
+			n = 0;
+			mf->nrr = 0;
+			for(tp = rp; mf->nrr < Maxrrr-1 && n < Maxreply && tp &&
+					tsame(mf->type, tp->type); tp = tp->next){
+				mf->rr[mf->nrr++] = n;
+				if(wantsav)
+					n += snprint(mf->reply+n, Maxreply-n, "%Q", tp);
+				else
+					n += snprint(mf->reply+n, Maxreply-n, "%R", tp);
+			}
+			mf->rr[mf->nrr] = n;
 		}
-		mf->rr[mf->nrr] = n;
+		unlock(&joblock);
 		rrfreelist(rp);
 	}
 

+ 3 - 3
sys/src/cmd/ndb/dns.h

@@ -81,7 +81,7 @@ enum
 	/* reserved time (can't be timed out earlier) */
 	Reserved=	5*Min,
 
-	/* packet header sizes */
+	/* packet sizes */
 	Maxudp=		512,	/* maximum bytes per udp message */
 	Maxudpin=	2048,	/* maximum bytes per udp message */
 
@@ -124,8 +124,8 @@ struct Request
  */
 struct DN
 {
-	int	magic;
 	DN	*next;		/* hash collision list */
+	ulong	magic;
 	char	*name;		/* owner */
 	RR	*rr;		/* resource records off this name */
 	ulong	referenced;	/* time last referenced */
@@ -188,8 +188,8 @@ struct Txt
  */
 struct RR
 {
-	int	magic;
 	RR	*next;
+	ulong	magic;
 	DN	*owner;		/* domain that owns this resource record */
 	uchar	negative;	/* this is a cached negative response */
 	ulong	pc;

+ 3 - 0
sys/src/cmd/ndb/dnsdebug.c

@@ -59,6 +59,9 @@ main(int argc, char *argv[])
 		dbfile = "/lib/ndb/external";
 		strcpy(mntpt, "/net.alt");
 		break;
+	case 'f':
+		dbfile = ARGF();
+		break;
 	}ARGEND
 
 	now = time(0);