Browse Source

Plan 9 from Bell Labs 2009-01-31

David du Colombier 15 years ago
parent
commit
a7ab8e8964
5 changed files with 20 additions and 45 deletions
  1. 4 4
      sys/lib/dist/mkfile
  2. 6 16
      sys/src/boot/pc/bootp.c
  3. 7 21
      sys/src/cmd/dc.c
  4. 1 1
      sys/src/cmd/upas/send/rewrite.c
  5. 2 3
      sys/src/libregexp/regsub.c

+ 4 - 4
sys/lib/dist/mkfile

@@ -76,10 +76,10 @@ odump:V:
 		-p /sys/lib/sysconfig/proto/allproto /n/other/dist/distdump.iso
 
 cd.install:V:
-	if(~ $sysname achille){
-		echo; echo; echo '*** run this on a real machine, like olive.'
-		exit bad
-	}
+#	if(~ $sysname achille){
+#		echo; echo; echo '*** run this on a real machine, like ethel.'
+#		exit bad
+#	}
 	bzip2 -9 < /n/other/dist/plan9.iso >web.protect/nplan9.iso.bz2
 
 D.install:V:

+ 6 - 16
sys/src/boot/pc/bootp.c

@@ -139,30 +139,14 @@ ip_csum(uchar *addr)
 	return (sum^0xffff);
 }
 
-enum {
-	/* this is only true of IPv4, but we're not doing v6 yet */
-	Min_udp_payload = ETHERMINTU - ETHERHDRSIZE - UDP_HDRSIZE,
-};
-
 static void
 udpsend(int ctlrno, Netaddr *a, void *data, int dlen)
 {
-	char payload[ETHERMAXTU];
 	Udphdr *uh;
 	Etherhdr *ip;
 	Etherpkt pkt;
 	int len, ptcllen;
 
-	/*
-	 * if packet is too short, make it longer rather than relying
-	 * on ethernet interface or lower layers to pad it.
-	 */
-	if (dlen < Min_udp_payload) {
-		memmove(payload, data, dlen);
-		data = payload;
-		dlen = Min_udp_payload;
-	}
-
 	uh = (Udphdr*)&pkt;
 
 	memset(uh, 0, sizeof(Etherpkt));
@@ -212,6 +196,12 @@ udpsend(int ctlrno, Netaddr *a, void *data, int dlen)
 if(debug) {
 	print("udpsend ");
 }
+	/*
+	 * if packet is too short, make it longer rather than relying
+	 * on ethernet interface or lower layers to pad it.
+	 */
+	if (len < ETHERMINTU)
+		len = ETHERMINTU;
 	ethertxpkt(ctlrno, &pkt, len, Timeout);
 }
 

+ 7 - 21
sys/src/cmd/dc.c

@@ -166,7 +166,6 @@ void	release(Blk *p);
 Blk*	dcgetwd(Blk *p);
 void	putwd(Blk *p, Blk *c);
 Blk*	lookwd(Blk *p);
-char*	nalloc(char *p, unsigned nbytes);
 int	getstk(void);
 
 /********debug only**/
@@ -1223,7 +1222,7 @@ init(int argc, char *argv[])
 	readptr = &readstk[0];
 	k=0;
 	sp = sptr = &symlst[0];
-	while(sptr < &symlst[TBLSZ]) {
+	while(sptr < &symlst[TBLSZ-1]) {
 		sptr->next = ++sp;
 		sptr++;
 	}
@@ -2104,14 +2103,14 @@ copy(Blk *hptr, int size)
 	if(size > maxsize)
 		maxsize = size;
 	sz = length(hptr);
-	ptr = nalloc(hptr->beg, size);
+	ptr = malloc(size);
 	if(ptr == 0) {
-		garbage("copy");
-		if((ptr = nalloc(hptr->beg, size)) == 0) {
-			Bprint(&bout,"copy size %d\n",size);
-			ospace("copy");
-		}
+		Bprint(&bout,"copy size %d\n",size);
+		ospace("copy");
 	}
+	memmove(ptr, hptr->beg, sz);
+	if (size-sz > 0)
+		memset(ptr+sz, 0, size-sz);
 	if((hdr = hfree) == 0)
 		hdr = morehd();
 	hfree = (Blk *)hdr->rd;
@@ -2274,19 +2273,6 @@ lookwd(Blk *p)
 	return(*wp->rdw);
 }
 
-char*
-nalloc(char *p, unsigned nbytes)
-{
-	char *q, *r;
-
-	q = r = malloc(nbytes);
-	if(q==0)
-		return(0);
-	while(nbytes--)
-		*q++ = *p++;
-	return(r);
-}
-
 int
 getstk(void)
 {

+ 1 - 1
sys/src/cmd/upas/send/rewrite.c

@@ -284,7 +284,7 @@ regerror(char* s)
 {
 	fprint(2, "rewrite: %s\n", s);
 	/* make sure the message is seen locally */
-	syslog(0, "mail", "error in rewrite: %s", s);
+	syslog(0, "mail", "regexp error in rewrite: %s", s);
 }
 
 extern void

+ 2 - 3
sys/src/libregexp/regsub.c

@@ -47,9 +47,8 @@ regsub(char *sp,	/* source string */
 					*dp++ = *sp;
 				break;
 			}
-		}else if(*sp == '&'){				
-			if(mp[0].sp != 0 && mp!=0 && ms>0)
-			if(mp[0].sp != 0)
+		}else if(*sp == '&'){
+			if(mp!=0 && mp[0].sp != 0 && ms>0)
 				for(ssp = mp[0].sp;
 				     ssp < mp[0].ep; ssp++)
 					if(dp < ep)