Browse Source

Plan 9 from Bell Labs 2003-10-19

David du Colombier 20 years ago
parent
commit
998f0e8ef5

+ 14 - 13
dist/replica/plan9.db

@@ -276,13 +276,13 @@
 386/bin/ip/httpd/webls - 775 sys sys 1065646626 129996
 386/bin/ip/httpd/wikipost - 775 sys sys 1064598232 111102
 386/bin/ip/imap4d - 775 sys sys 1066317082 237216
-386/bin/ip/ipconfig - 775 sys sys 1064598234 128285
+386/bin/ip/ipconfig - 775 sys sys 1066515194 128650
 386/bin/ip/ping - 775 sys sys 1064598234 74889
 386/bin/ip/ppp - 775 sys sys 1064598236 216026
 386/bin/ip/pppoe - 775 sys sys 1064598236 75233
 386/bin/ip/pptp - 775 sys sys 1064598237 123773
 386/bin/ip/pptpd - 775 sys sys 1064598238 124288
-386/bin/ip/rarpd - 775 sys sys 1064598239 107279
+386/bin/ip/rarpd - 775 sys sys 1066515202 107640
 386/bin/ip/rexexec - 775 sys sys 1064598240 87398
 386/bin/ip/rip - 775 sys sys 1064598241 89573
 386/bin/ip/rlogind - 775 sys sys 1064598241 66139
@@ -311,7 +311,7 @@
 386/bin/mtime - 775 sys sys 1064598257 57628
 386/bin/mv - 775 sys sys 1064598258 64748
 386/bin/ndb - 20000000775 sys sys 985743147 0
-386/bin/ndb/cs - 775 sys sys 1064598259 144032
+386/bin/ndb/cs - 775 sys sys 1066515212 144290
 386/bin/ndb/csquery - 775 sys sys 1064598259 59890
 386/bin/ndb/dns - 775 sys sys 1064598261 218271
 386/bin/ndb/dnsdebug - 775 sys sys 1064598262 190622
@@ -387,9 +387,9 @@
 386/bin/srv - 775 sys sys 1065915883 80817
 386/bin/srvfs - 775 sys sys 1064598315 39646
 386/bin/srvold9p - 775 sys sys 1064598316 130962
-386/bin/ssh - 775 sys sys 1064598317 209762
+386/bin/ssh - 775 sys sys 1066515694 210438
 386/bin/sshnet - 775 sys sys 1064598319 283974
-386/bin/stats - 775 sys sys 1064598320 188219
+386/bin/stats - 775 sys sys 1066515228 188651
 386/bin/strings - 775 sys sys 1064598320 60633
 386/bin/strip - 775 sys sys 1064598321 60583
 386/bin/sum - 775 sys sys 1064598321 40087
@@ -522,7 +522,7 @@
 386/lib/libgeometry.a - 664 sys sys 1056364452 50806
 386/lib/libhtml.a - 664 sys sys 1045538120 220944
 386/lib/libhttpd.a - 664 sys sys 1048622926 98914
-386/lib/libip.a - 664 sys sys 1065576349 33976
+386/lib/libip.a - 664 sys sys 1066515140 34340
 386/lib/libl.a - 664 sys sys 1056364452 5412
 386/lib/libmach.a - 664 sys sys 1045538123 743792
 386/lib/libmemdraw.a - 664 sys sys 1051110557 292604
@@ -5123,6 +5123,7 @@ sys/src/9/boot/bootmkfile - 664 sys sys 1032053196 390
 sys/src/9/boot/doauthenticate.c - 664 sys sys 1015012529 2300
 sys/src/9/boot/embed.c - 664 sys sys 1039763720 1191
 sys/src/9/boot/getpasswd.c - 664 sys sys 957373373 654
+sys/src/9/boot/libboot.a8 - 664 sys sys 1066515074 62658
 sys/src/9/boot/local.c - 664 sys sys 1063857543 5325
 sys/src/9/boot/mkboot - 775 sys sys 1045504382 1935
 sys/src/9/boot/nopsession.c - 664 sys sys 957373374 843
@@ -5136,7 +5137,7 @@ sys/src/9/ip/chandial.c - 664 sys sys 1022588098 2276
 sys/src/9/ip/devip.c - 664 sys sys 1054391399 24207
 sys/src/9/ip/eipconvtest.c - 664 sys sys 1022588098 3135
 sys/src/9/ip/esp.c - 664 sys sys 1047260561 17084
-sys/src/9/ip/ethermedium.c - 664 sys sys 1047260562 15120
+sys/src/9/ip/ethermedium.c - 664 sys sys 1066514880 15124
 sys/src/9/ip/gre.c - 664 sys sys 1047260562 4684
 sys/src/9/ip/icmp.c - 664 sys sys 1047260563 9437
 sys/src/9/ip/icmp6.c - 664 sys sys 1047260563 18098
@@ -5221,7 +5222,7 @@ sys/src/9/pc/ether79c970.c - 664 sys sys 1018386992 14056
 sys/src/9/pc/ether8003.c - 664 sys sys 1015014516 6665
 sys/src/9/pc/ether8139.c - 664 sys sys 1055689886 18012
 sys/src/9/pc/ether82543gc.c - 664 sys sys 1055689887 32296
-sys/src/9/pc/ether82557.c - 664 sys sys 1055689889 29634
+sys/src/9/pc/ether82557.c - 664 sys sys 1066514925 29683
 sys/src/9/pc/ether83815.c - 664 sys sys 1026847640 23050
 sys/src/9/pc/ether8390.c - 664 sys sys 1015014517 17548
 sys/src/9/pc/ether8390.h - 664 sys sys 1015014517 1511
@@ -5370,8 +5371,8 @@ sys/src/9/port/mkroot - 775 sys sys 1039753334 235
 sys/src/9/port/mkrootall - 775 sys sys 1055954696 386
 sys/src/9/port/mkrootc - 775 sys sys 1055954695 717
 sys/src/9/port/mksystab - 664 sys sys 1014931176 783
-sys/src/9/port/netif.c - 664 sys sys 1045063591 13188
-sys/src/9/port/netif.h - 664 sys sys 1045063591 2944
+sys/src/9/port/netif.c - 664 sys sys 1066514951 13421
+sys/src/9/port/netif.h - 664 sys sys 1066514947 2975
 sys/src/9/port/nulledf.c - 664 sys sys 1037669300 821
 sys/src/9/port/page.c - 664 sys sys 1055688510 8107
 sys/src/9/port/parse.c - 664 sys sys 1014931177 2026
@@ -10126,12 +10127,12 @@ sys/src/cmd/ssh/msg.c - 664 sys sys 1062091016 8023
 sys/src/cmd/ssh/pubkey.c - 664 sys sys 1019928902 3974
 sys/src/cmd/ssh/scp.c - 664 sys sys 1048644598 13757
 sys/src/cmd/ssh/smsg.c - 664 sys sys 1062091015 6135
-sys/src/cmd/ssh/ssh.c - 664 sys sys 1063858802 9635
+sys/src/cmd/ssh/ssh.c - 664 sys sys 1066515693 9667
 sys/src/cmd/ssh/ssh.h - 664 sys sys 1048179595 6054
 sys/src/cmd/ssh/sshnet.c - 664 sys sys 1062091019 17661
 sys/src/cmd/ssh/sshserve.c - 664 sys sys 1062091020 5786
 sys/src/cmd/ssh/util.c - 664 sys sys 1063858753 4478
-sys/src/cmd/stats.c - 664 sys sys 1056035464 27570
+sys/src/cmd/stats.c - 664 sys sys 1066515220 27952
 sys/src/cmd/strings.c - 664 sys sys 944961364 1216
 sys/src/cmd/strip.c - 664 sys sys 1014926661 3306
 sys/src/cmd/sum.c - 664 sys sys 1014926615 5548
@@ -11633,7 +11634,7 @@ sys/src/libip/equivip.c - 664 sys sys 944961726 146
 sys/src/libip/ip.h - 664 sys sys 944961727 1438
 sys/src/libip/ipaux.c - 664 sys sys 985038059 1515
 sys/src/libip/mkfile - 664 sys sys 1065576347 320
-sys/src/libip/myetheraddr.c - 664 sys sys 944961726 622
+sys/src/libip/myetheraddr.c - 664 sys sys 1066515138 837
 sys/src/libip/myipaddr.c - 664 sys sys 1063853830 942
 sys/src/libip/parseether.c - 664 sys sys 944961726 318
 sys/src/libip/parseip.c - 664 sys sys 950104689 2130

+ 14 - 0
dist/replica/plan9.log

@@ -13893,3 +13893,17 @@
 1066318374 3 c sys/src/cmd/ip/imap4d/store.c - 664 sys sys 1066317059 1910
 1066327268 0 c sys/src/cmd/ip/imap4d/fetch.c - 664 sys sys 1066325855 11762
 1066327268 1 c sys/src/cmd/ip/imap4d/imap4d.c - 664 sys sys 1066325859 40675
+1066516291 0 c 386/bin/ssh - 775 sys sys 1066515694 210438
+1066516291 1 c 386/bin/stats - 775 sys sys 1066515228 188651
+1066516291 2 c 386/bin/ip/ipconfig - 775 sys sys 1066515194 128650
+1066516291 3 c 386/bin/ip/rarpd - 775 sys sys 1066515202 107640
+1066516291 4 c 386/bin/ndb/cs - 775 sys sys 1066515212 144290
+1066516291 5 c 386/lib/libip.a - 664 sys sys 1066515140 34340
+1066516291 6 a sys/src/9/boot/libboot.a8 - 664 sys sys 1066515074 62658
+1066516291 7 c sys/src/9/ip/ethermedium.c - 664 sys sys 1066514880 15124
+1066516291 8 c sys/src/9/pc/ether82557.c - 664 sys sys 1066514925 29683
+1066516291 9 c sys/src/9/port/netif.c - 664 sys sys 1066514951 13421
+1066516291 10 c sys/src/9/port/netif.h - 664 sys sys 1066514947 2975
+1066516291 11 c sys/src/cmd/ssh/ssh.c - 664 sys sys 1066515693 9667
+1066516291 12 c sys/src/cmd/stats.c - 664 sys sys 1066515220 27952
+1066516291 13 c sys/src/libip/myetheraddr.c - 664 sys sys 1066515138 837

+ 1 - 1
sys/src/9/ip/ethermedium.c

@@ -163,7 +163,7 @@ etherbind(Ipifc *ifc, int argc, char **argv)
 	/*
 	 *  get mac address and speed
 	 */
-	snprint(addr, sizeof(addr), "%s/stats", dir);
+	snprint(addr, sizeof(addr), "%s/stats", argv[2]);
 	buf = smalloc(512);
 	schan = namec(addr, Aopen, OREAD, 0);
 	if(waserror()){

+ 1 - 0
sys/src/9/pc/ether82557.c

@@ -36,6 +36,7 @@ enum {					/* CSR */
 	Fcr		= 0x0C,		/* Flash control register */
 	Ecr		= 0x0E,		/* EEPROM control register */
 	Mcr		= 0x10,		/* MDI control register */
+	Gstatus		= 0x1D,		/* General status register */
 };
 
 enum {					/* Status */

+ 10 - 1
sys/src/9/port/netif.c

@@ -79,8 +79,16 @@ netifgen(Chan *c, char*, Dirtab *vp, int, int i, Dir *dp)
 			q.path = Naddrqid;
 			devdir(c, q, "addr", 0, eve, 0666, dp);
 			break;
+		case 2:
+			q.path = Nstatqid;
+			devdir(c, q, "stats", 0, eve, 0444, dp);
+			break;
+		case 3:
+			q.path = Nifstatqid;
+			devdir(c, q, "ifstats", 0, eve, 0444, dp);
+			break;
 		default:
-			i -= 2;
+			i -= 4;
 			if(i >= nif->nfile)
 				return -1;
 			if(nif->f[i] == 0)
@@ -204,6 +212,7 @@ netifread(Netif *nif, Chan *c, void *a, long n, ulong offset)
 	case Nstatqid:
 		p = malloc(READSTR);
 		j = snprint(p, READSTR, "in: %d\n", nif->inpackets);
+		j += snprint(p+j, READSTR-j, "link: %d\n", nif->link);
 		j += snprint(p+j, READSTR-j, "out: %d\n", nif->outpackets);
 		j += snprint(p+j, READSTR-j, "crc errs: %d\n", nif->crcs);
 		j += snprint(p+j, READSTR-j, "overflows: %d\n", nif->overflows);

+ 1 - 0
sys/src/9/port/netif.h

@@ -75,6 +75,7 @@ struct Netif
 	int	limit;			/* flow control */
 	int	alen;			/* address length */
 	int	mbps;			/* megabits per sec */
+	int	link;			/* link status */
 	uchar	addr[Nmaxaddr];
 	uchar	bcast[Nmaxaddr];
 	Netaddr	*maddr;			/* known multicast addresses */

+ 8 - 6
sys/src/cmd/ssh/ssh.c

@@ -328,6 +328,10 @@ rawon(void)
 {
 	if(raw)
 		return;
+	if(cooked)
+		return;
+	if(consctl < 0)
+		consctl = open("/dev/consctl", OWRITE);
 	if(consctl < 0)
 		return;
 	if(write(consctl, "rawon", 5) != 5)
@@ -347,6 +351,8 @@ rawoff(void)
 		return;
 	if(write(consctl, "rawoff", 6) != 6)
 		return;
+	close(consctl);
+	consctl = -1;
 	raw = 0;
 }
 
@@ -521,12 +527,8 @@ fromstdin(Conn *c)
 	}
 
 	atexit(atexitkiller);
-	if(interactive){
-		consctl = open("/dev/consctl", OWRITE);
-		if(!cooked)
-			rawon();
-	}else
-		consctl = -1;
+	if(interactive)
+		rawon();
 
 	notify(cookedcatchint);
 

+ 13 - 3
sys/src/cmd/stats.c

@@ -43,7 +43,7 @@ enum
 	Load,
 	Idle,
 	InIntr,
-	/* /net/ether0/0/stats */
+	/* /net/ether0/stats */
 	In		= 0,
 	Out,
 	Err0,
@@ -625,13 +625,23 @@ initmach(Machine *m, char *name)
 	}else
 		m->nproc = 1;
 
-	snprint(buf, sizeof buf, "%s/net/ether0/0/stats", mpt);
+	snprint(buf, sizeof buf, "%s/net/ether0/stats", mpt);
 	m->etherfd = open(buf, OREAD);
+	if(m->etherfd < 0){
+		/* try the old place - this code will disappear on Nov 18th - presotto */
+		snprint(buf, sizeof buf, "%s/net/ether0/0/stats", mpt);
+		m->etherfd = open(buf, OREAD);
+	}
 	if(loadbuf(m, &m->etherfd) && readnums(m, nelem(m->netetherstats), a, 1))
 		memmove(m->netetherstats, a, sizeof m->netetherstats);
 
-	snprint(buf, sizeof buf, "%s/net/ether0/0/ifstats", mpt);
+	snprint(buf, sizeof buf, "%s/net/ether0/ifstats", mpt);
 	m->ifstatsfd = open(buf, OREAD);
+	if(m->ifstatsfd < 0){
+		/* try the old place - this code will disappear on Nov 18th - presotto */
+		snprint(buf, sizeof buf, "%s/net/ether0/0/ifstats", mpt);
+		m->ifstatsfd = open(buf, OREAD);
+	}
 	if(loadbuf(m, &m->ifstatsfd)){
 		/* need to check that this is a wavelan interface */
 		if(strncmp(m->buf, "Signal: ", 8) == 0 && readnums(m, nelem(m->netetherifstats), a, 1))

+ 21 - 12
sys/src/libip/myetheraddr.c

@@ -8,22 +8,31 @@ myetheraddr(uchar *to, char *dev)
 	int n, fd;
 	char buf[256], *ptr;
 
-	/* Make one exist */
 	if(*dev == '/')
-		sprint(buf, "%s/clone", dev);
+		sprint(buf, "%s/stats", dev);
 	else
-		sprint(buf, "/net/%s/clone", dev);
-	fd = open(buf, ORDWR);
-	if(fd >= 0)
-		close(fd);
+		sprint(buf, "/net/%s/stats", dev);
 
-	if(*dev == '/')
-		sprint(buf, "%s/0/stats", dev);
-	else
-		sprint(buf, "/net/%s/0/stats", dev);
 	fd = open(buf, OREAD);
-	if(fd < 0)
-		return -1;
+	if(fd < 0) {
+		/* try the old place - this code will disappear on Nov 18th */
+		/* Make one exist */
+		if(*dev == '/')
+			sprint(buf, "%s/clone", dev);
+		else
+			sprint(buf, "/net/%s/clone", dev);
+		fd = open(buf, ORDWR);
+		if(fd >= 0)
+			close(fd);
+	
+		if(*dev == '/')
+			sprint(buf, "%s/0/stats", dev);
+		else
+			sprint(buf, "/net/%s/0/stats", dev);
+		fd = open(buf, OREAD);
+		if(fd < 0)
+			return -1;
+	}
 
 	n = read(fd, buf, sizeof(buf)-1);
 	close(fd);