Browse Source

Plan 9 from Bell Labs 2008-01-20

David du Colombier 16 years ago
parent
commit
c6e42b8683

+ 12 - 12
dist/replica/_plan9.db

@@ -52,7 +52,7 @@
 386/bin/auth/debug - 775 sys sys 1192762780 102504
 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 1192762786 321861
+386/bin/auth/factotum - 775 sys sys 1200717245 321923
 386/bin/auth/fgui - 775 sys sys 1197732639 219095
 386/bin/auth/guard.srv - 775 sys sys 1188446841 144638
 386/bin/auth/keyfs - 775 sys sys 1191035876 116576
@@ -344,10 +344,10 @@
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1188530160 148982
 386/bin/ndb/csquery - 775 sys sys 1176488418 61652
-386/bin/ndb/dns - 775 sys sys 1199766036 296379
-386/bin/ndb/dnsdebug - 775 sys sys 1199766042 270540
+386/bin/ndb/dns - 775 sys sys 1200774206 296663
+386/bin/ndb/dnsdebug - 775 sys sys 1200774212 270683
 386/bin/ndb/dnsquery - 775 sys sys 1185334136 64350
-386/bin/ndb/dnstcp - 775 sys sys 1199766049 268421
+386/bin/ndb/dnstcp - 775 sys sys 1200774217 268564
 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
@@ -483,7 +483,7 @@
 386/bin/upas/unspam - 775 sys sys 1064598367 38
 386/bin/upas/vf - 775 sys sys 1181704900 97444
 386/bin/usb - 20000000775 sys sys 1019538890 0
-386/bin/usb/disk - 775 sys sys 1193197083 186944
+386/bin/usb/disk - 775 sys sys 1200717250 187004
 386/bin/usb/usbaudio - 775 sys sys 1184731243 188000
 386/bin/usb/usbd - 775 sys sys 1184731243 130757
 386/bin/usb/usbmouse - 775 sys sys 1184731244 109661
@@ -12817,18 +12817,18 @@ sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1194216289 7061
 sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1194216290 11959
 sys/src/cmd/ndb/cs.c - 664 sys sys 1188515063 32892
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
-sys/src/cmd/ndb/dblookup.c - 664 sys sys 1194216346 25229
-sys/src/cmd/ndb/dn.c - 664 sys sys 1199740043 37481
+sys/src/cmd/ndb/dblookup.c - 664 sys sys 1193284932 25375
+sys/src/cmd/ndb/dn.c - 664 sys sys 1200424507 37507
 sys/src/cmd/ndb/dnarea.c - 664 sys sys 1175664421 2519
-sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1194996355 3265
-sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1194996432 35393
-sys/src/cmd/ndb/dns.c - 664 sys sys 1194996490 17499
+sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1197930912 3278
+sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1200511964 35530
+sys/src/cmd/ndb/dns.c - 664 sys sys 1200429502 17583
 sys/src/cmd/ndb/dns.h - 664 sys sys 1194216527 11889
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1194216583 8790
-sys/src/cmd/ndb/dnserver.c - 664 sys sys 1184990866 4627
+sys/src/cmd/ndb/dnserver.c - 664 sys sys 1198183920 4630
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1185315254 2507
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1196688268 7513
-sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1194996502 5612
+sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1200463045 5727
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711423 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
 sys/src/cmd/ndb/mkfile - 664 sys sys 1174623575 1984

+ 12 - 12
dist/replica/plan9.db

@@ -52,7 +52,7 @@
 386/bin/auth/debug - 775 sys sys 1192762780 102504
 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 1192762786 321861
+386/bin/auth/factotum - 775 sys sys 1200717245 321923
 386/bin/auth/fgui - 775 sys sys 1197732639 219095
 386/bin/auth/guard.srv - 775 sys sys 1188446841 144638
 386/bin/auth/keyfs - 775 sys sys 1191035876 116576
@@ -344,10 +344,10 @@
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1188530160 148982
 386/bin/ndb/csquery - 775 sys sys 1176488418 61652
-386/bin/ndb/dns - 775 sys sys 1199766036 296379
-386/bin/ndb/dnsdebug - 775 sys sys 1199766042 270540
+386/bin/ndb/dns - 775 sys sys 1200774206 296663
+386/bin/ndb/dnsdebug - 775 sys sys 1200774212 270683
 386/bin/ndb/dnsquery - 775 sys sys 1185334136 64350
-386/bin/ndb/dnstcp - 775 sys sys 1199766049 268421
+386/bin/ndb/dnstcp - 775 sys sys 1200774217 268564
 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
@@ -483,7 +483,7 @@
 386/bin/upas/unspam - 775 sys sys 1064598367 38
 386/bin/upas/vf - 775 sys sys 1181704900 97444
 386/bin/usb - 20000000775 sys sys 1019538890 0
-386/bin/usb/disk - 775 sys sys 1193197083 186944
+386/bin/usb/disk - 775 sys sys 1200717250 187004
 386/bin/usb/usbaudio - 775 sys sys 1184731243 188000
 386/bin/usb/usbd - 775 sys sys 1184731243 130757
 386/bin/usb/usbmouse - 775 sys sys 1184731244 109661
@@ -12817,18 +12817,18 @@ sys/src/cmd/ndb/convDNS2M.c - 664 sys sys 1194216289 7061
 sys/src/cmd/ndb/convM2DNS.c - 664 sys sys 1194216290 11959
 sys/src/cmd/ndb/cs.c - 664 sys sys 1188515063 32892
 sys/src/cmd/ndb/csquery.c - 664 sys sys 1174626119 1073
-sys/src/cmd/ndb/dblookup.c - 664 sys sys 1194216346 25229
-sys/src/cmd/ndb/dn.c - 664 sys sys 1199740043 37481
+sys/src/cmd/ndb/dblookup.c - 664 sys sys 1193284932 25375
+sys/src/cmd/ndb/dn.c - 664 sys sys 1200424507 37507
 sys/src/cmd/ndb/dnarea.c - 664 sys sys 1175664421 2519
-sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1194996355 3265
-sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1194996432 35393
-sys/src/cmd/ndb/dns.c - 664 sys sys 1194996490 17499
+sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1197930912 3278
+sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1200511964 35530
+sys/src/cmd/ndb/dns.c - 664 sys sys 1200429502 17583
 sys/src/cmd/ndb/dns.h - 664 sys sys 1194216527 11889
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1194216583 8790
-sys/src/cmd/ndb/dnserver.c - 664 sys sys 1184990866 4627
+sys/src/cmd/ndb/dnserver.c - 664 sys sys 1198183920 4630
 sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1185315254 2507
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1196688268 7513
-sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1194996502 5612
+sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1200463045 5727
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 1124711423 773
 sys/src/cmd/ndb/mkdb.c - 664 sys sys 957402054 2886
 sys/src/cmd/ndb/mkfile - 664 sys sys 1174623575 1984

+ 12 - 0
dist/replica/plan9.log

@@ -18331,3 +18331,15 @@
 1200691803 1 c sys/src/boot/pc/lib.h - 664 sys sys 1200690170 2891
 1200691803 2 c sys/src/boot/pc/part.c - 664 sys sys 1200690166 7158
 1200691803 3 c sys/src/boot/pc/sd.h - 664 sys sys 1200690169 2249
+1200718805 0 c 386/bin/usb/disk - 775 sys sys 1200717250 187004
+1200718805 1 c 386/bin/auth/factotum - 775 sys sys 1200717245 321923
+1200718805 2 c sys/src/cmd/ndb/dblookup.c - 664 sys sys 1193284932 25375
+1200718805 3 c sys/src/cmd/ndb/dn.c - 664 sys sys 1200424507 37507
+1200718805 4 c sys/src/cmd/ndb/dnnotify.c - 664 sys sys 1197930912 3278
+1200718805 5 c sys/src/cmd/ndb/dnresolve.c - 664 sys sys 1200511964 35530
+1200718805 6 c sys/src/cmd/ndb/dns.c - 664 sys sys 1200429502 17583
+1200718805 7 c sys/src/cmd/ndb/dnserver.c - 664 sys sys 1198183920 4630
+1200718805 8 c sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1200463045 5727
+1200774603 0 c 386/bin/ndb/dns - 775 sys sys 1200774206 296663
+1200774603 1 c 386/bin/ndb/dnsdebug - 775 sys sys 1200774212 270683
+1200774603 2 c 386/bin/ndb/dnstcp - 775 sys sys 1200774217 268564

+ 6 - 0
sys/src/cmd/ndb/dblookup.c

@@ -793,6 +793,7 @@ int
 baddelegation(RR *rp, RR *nsrp, uchar *addr)
 {
 	Ndbtuple *nt;
+	static int whined;
 	static Ndbtuple *t;
 
 	if(t == nil)
@@ -819,6 +820,11 @@ baddelegation(RR *rp, RR *nsrp, uchar *addr)
 			if(rp->host && cistrcmp(rp->host->name, nt->val) == 0)
 				break;
 		if(nt != nil && !inmyarea(rp->owner->name)){
+			if (!whined) {
+				whined = 1;
+				dnslog("bad delegation %R from %I; "
+					"no further logging of them", rp, addr);
+			}
 			return 1;
 		}
 	}

+ 2 - 1
sys/src/cmd/ndb/dn.c

@@ -1543,7 +1543,8 @@ randomize(RR *rp)
 
 	/* just randomize addresses, mx's and ns's */
 	for(x = rp; x; x = x->next)
-		if(x->type != Ta && x->type != Tmx && x->type != Tns)
+		if(x->type != Ta && x->type != Taaaa &&
+		    x->type != Tmx && x->type != Tns)
 			return rp;
 
 	base = rp;

+ 2 - 1
sys/src/cmd/ndb/dnnotify.c

@@ -106,7 +106,8 @@ send_notify(char *slave, RR *soa, Request *req)
 		if(repmsg.id == reqno && (repmsg.flags & Omask) == Onotify)
 			break;
 	}
-	freeanswers(&repmsg);
+	if (i < 3)
+		freeanswers(&repmsg);
 	close(fd);
 }
 

+ 8 - 3
sys/src/cmd/ndb/dnresolve.c

@@ -50,7 +50,7 @@ struct Dest
  */
 struct Query {
 	DN	*dp;		/* domain */
-	int	type;		/* and type to look up */
+	ushort	type;		/* and type to look up */
 	Request *req;
 	RR	*nsrp;		/* name servers to consult */
 
@@ -206,6 +206,8 @@ queryinit(Query *qp, DN *dp, int type, Request *req)
 	qp->udpfd = qp->tcpfd = qp->tcpctlfd = -1;
 	qp->dp = dp;
 	qp->type = type;
+	if (qp->type != type)
+		dnslog("queryinit: bogus type %d", type);
 	qp->req = req;
 	qp->nsrp = nil;
 	qp->dest = qp->curdest = nil;
@@ -420,6 +422,7 @@ dnresolve1(char *name, int class, int type, Request *req, int depth,
 					return rp;
 				}
 	rrfreelist(rp);
+	rp = nil;
 
 	/*
 	 * try the cache for a canonical name. if found punt
@@ -537,6 +540,8 @@ mkreq(DN *dp, int type, uchar *buf, int flags, ushort reqno)
 	m.qd = rralloc(type);
 	m.qd->owner = dp;
 	m.qd->type = type;
+	if (m.qd->type != type)
+		dnslog("mkreq: bogus type %d", type);
 	len = convDNS2M(&m, &buf[Udphdrsize], Maxudp);
 	rrfree(m.qd);
 	return len;
@@ -1198,7 +1203,7 @@ procansw(Query *qp, DNSmsg *mp, uchar *srcip, int depth, Dest *p)
 	rv = netquery(nqp, depth+1);
 
 //	qlock(&qp->dp->querylck[lcktype]);
-	rrfreelist(tp);
+	rrfreelist(nqp->nsrp);
 	querydestroy(nqp);
 	free(nqp);
 	return rv;
@@ -1440,7 +1445,7 @@ udpquery(Query *qp, char *mntpt, int depth, int patient, int inns)
 	 * make time-to-wait proportional to estimated probability of an
 	 * RR of that type existing.
 	 */
-	if (qp->type < 0 || qp->type >= nelem(likely))
+	if (qp->type >= nelem(likely))
 		pcntprob = 35;			/* unpopular query type */
 	else
 		pcntprob = likely[qp->type];

+ 6 - 3
sys/src/cmd/ndb/dns.c

@@ -26,7 +26,8 @@ typedef struct Job	Job;
 typedef struct Network	Network;
 
 int vers;		/* incremented each clone/attach */
-volatile int stop;
+
+static volatile int stop;
 
 struct Mfile
 {
@@ -411,13 +412,14 @@ io(void)
 	 */
 	if(setjmp(req.mret))
 		putactivity(0);
-	procsetname("main 9p reading loop");
+	procsetname("9p server");
 	req.isslave = 0;
 	stop = 0;
 	while(!stop){
 		n = read9pmsg(mfd[0], mdata, sizeof mdata);
 		if(n<=0){
-			dnslog("error reading mntpt: %r");
+			dnslog("error reading 9P from %s: %r", mntpt);
+			sleep(2000);		/* don't thrash */
 			exits(0);
 		}
 
@@ -463,6 +465,7 @@ io(void)
 			rread(job, mf);
 			break;
 		case Twrite:
+			/* &req is handed to dnresolve() */
 			rwrite(job, mf, &req);
 			break;
 		case Tclunk:

+ 1 - 1
sys/src/cmd/ndb/dnserver.c

@@ -165,7 +165,7 @@ dnserver(DNSmsg *reqp, DNSmsg *repp, Request *req, uchar *srcip, int rcode)
 static RR*
 doextquery(DNSmsg *mp, Request *req, int recurse)
 {
-	int type;
+	ushort type;
 	char *name;
 	RR *rp, *neg;
 

+ 5 - 2
sys/src/cmd/ndb/dnudpserver.c

@@ -25,7 +25,7 @@ struct Inprogress
 	int	inuse;
 	Udphdr	uh;
 	DN	*owner;
-	int	type;
+	ushort	type;
 	int	id;
 };
 Inprogress inprog[Maxactive+2];
@@ -60,6 +60,8 @@ clientrxmit(DNSmsg *req, uchar *buf)
 	empty->id = req->id;
 	empty->owner = req->qd->owner;
 	empty->type = req->qd->type;
+	if (empty->type != req->qd->type)
+		dnslog("clientrxmit: bogus req->qd->type %d", req->qd->type);
 	memmove(&empty->uh, uh, Udphdrsize);
 	empty->inuse = 1;
 	return empty;
@@ -102,7 +104,7 @@ restart:
 	while((fd = udpannounce(mntpt)) < 0)
 		sleep(5000);
 
-	procsetname("udp server loop");
+	procsetname("udp server");
 	memset(&req, 0, sizeof req);
 	if(setjmp(req.mret))
 		putactivity(0);
@@ -197,6 +199,7 @@ restart:
 		p->inuse = 0;
 freereq:
 		free(req.from);
+		req.from = nil;
 		freeanswers(&reqmsg);
 		if(req.isslave){
 			putactivity(0);