Browse Source

Plan 9 from Bell Labs 2004-01-15

David du Colombier 20 years ago
parent
commit
7fdb70712c
4 changed files with 32 additions and 23 deletions
  1. 3 3
      dist/replica/plan9.db
  2. 3 0
      dist/replica/plan9.log
  3. 2 2
      sys/src/9/ip/devip.c
  4. 24 18
      sys/src/cmd/stats.c

+ 3 - 3
dist/replica/plan9.db

@@ -539,7 +539,7 @@
 386/lib/libmach.a - 664 sys sys 1073851272 746962
 386/lib/libmemdraw.a - 664 sys sys 1073851273 291288
 386/lib/libmemlayer.a - 664 sys sys 1073851273 47636
-386/lib/libmp.a - 664 sys sys 1073851273 77700
+386/lib/libmp.a - 664 sys sys 1074060976 78536
 386/lib/libndb.a - 664 sys sys 1073851273 54474
 386/lib/libplumb.a - 664 sys sys 1073851274 18876
 386/lib/libregexp.a - 664 sys sys 1073851274 37502
@@ -5208,7 +5208,7 @@ sys/src/9/boot/testboot.c - 664 sys sys 1039763734 496
 sys/src/9/ip - 20000000775 sys sys 1015278450 0
 sys/src/9/ip/arp.c - 664 sys sys 1047951324 10671
 sys/src/9/ip/chandial.c - 664 sys sys 1022588098 2276
-sys/src/9/ip/devip.c - 664 sys sys 1067722615 24186
+sys/src/9/ip/devip.c - 664 sys sys 1074086743 24188
 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 1066514880 15124
@@ -10380,7 +10380,7 @@ 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 1067278458 28129
+sys/src/cmd/stats.c - 664 sys sys 1074086705 28191
 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

+ 3 - 0
dist/replica/plan9.log

@@ -13404,3 +13404,6 @@
 1073889092 1 c 386/bin/fossil/flchk - 775 sys sys 1073888256 235503
 1073889092 2 c 386/bin/fossil/flfmt - 775 sys sys 1073888257 249314
 1073889092 3 c 386/bin/fossil/fossil - 775 sys sys 1073888258 348812
+1074061920 0 c 386/lib/libmp.a - 664 sys sys 1074060976 78536
+1074087124 0 c sys/src/9/ip/devip.c - 664 sys sys 1074086743 24188
+1074087124 1 c sys/src/cmd/stats.c - 664 sys sys 1074086705 28191

+ 2 - 2
sys/src/9/ip/devip.c

@@ -43,7 +43,7 @@ enum
 	Maskproto=	(1<<Logproto)-1,
 	Shiftproto=	Logtype + Logconv,
 
-	Nfs=		16,
+	Nfs=		128,
 };
 #define TYPE(x) 	( ((ulong)(x).path) & Masktype )
 #define CONV(x) 	( (((ulong)(x).path) >> Shiftconv) & Maskconv )
@@ -311,7 +311,7 @@ ipattach(char* spec)
 	int dev;
 
 	dev = atoi(spec);
-	if(dev >= 16)
+	if(dev >= Nfs)
 		error("bad specification");
 
 	ipgetfs(dev);

+ 24 - 18
sys/src/cmd/stats.c

@@ -575,7 +575,7 @@ connectexportfs(char *addr)
 	return fd;
 }
 
-void
+int
 initmach(Machine *m, char *name)
 {
 	int n, fd;
@@ -583,10 +583,9 @@ initmach(Machine *m, char *name)
 	char *p, mpt[256], buf[256];
 
 	p = strchr(name, '!');
-	if(p){
+	if(p)
 		p++;
-		m->name = estrdup(p+1);
-	}else
+	else
 		p = name;
 	m->name = estrdup(p);
 	m->remote = (strcmp(p, mysysname) != 0);
@@ -597,7 +596,7 @@ initmach(Machine *m, char *name)
 		fd = connectexportfs(name);
 		if(fd < 0){
 			fprint(2, "can't connect to %s: %r\n", name);
-			killall("connect");
+			return 0;
 		}
 		/* BUG? need to use amount() now? */
 		if(mount(fd, -1, mpt, MREPL, "") < 0){
@@ -605,7 +604,7 @@ initmach(Machine *m, char *name)
 			strcpy(mpt, "/n/sid");
 			if(mount(fd, -1, mpt, MREPL, "") < 0){
 				fprint(2, "stats: mount %s on %s failed: %r\n", name, mpt);
-				killall("mount");
+				return 0;
 			}
 		}
 	}
@@ -638,11 +637,6 @@ initmach(Machine *m, char *name)
 
 	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))
@@ -661,6 +655,7 @@ initmach(Machine *m, char *name)
 		if(loadbuf(m, &m->bitsybatfd) && readnums(m, 1, a, 0))
 			memmove(m->batterystats, a, sizeof(m->batterystats));
 	}
+	return 1;
 }
 
 jmp_buf catchalarm;
@@ -720,11 +715,19 @@ readmach(Machine *m, int init)
 			if(display != nil)	/* else we're still initializing */
 				eresized(0);
 		}
-		m->disable = 1;
+		if (m->disable++ >= 5)
+			m->disable = 0; /* give it another chance */
 		memmove(m->devsysstat, m->prevsysstat, sizeof m->devsysstat);
 		memmove(m->netetherstats, m->prevetherstats, sizeof m->netetherstats);
 		return;
 	}
+	snprint(buf, sizeof buf, "%s", m->name);
+	if (strcmp(m->name, buf) != 0){
+		free(m->name);
+		m->name = estrdup(buf);
+		if(display != nil)	/* else we're still initializing */
+			eresized(0);
+	}
 	if(m->remote){
 		notify(alarmed);
 		alarm(5000);
@@ -987,7 +990,7 @@ dropgraph(int which)
 	present[which] = 0;
 }
 
-void
+int
 addmachine(char *name)
 {
 	if(ngraph > 0){
@@ -998,8 +1001,11 @@ addmachine(char *name)
 		nmach = 0;	/* a little dance to get us started with local machine by default */
 	mach = erealloc(mach, (nmach+1)*sizeof(Machine));
 	memset(mach+nmach, 0, sizeof(Machine));
-	initmach(mach+nmach, name);
-	nmach++;
+	if (initmach(mach+nmach, name)){
+		nmach++;
+		return 1;
+	} else
+		return 0;
 }
 
 void
@@ -1259,9 +1265,9 @@ main(int argc, char *argv[])
 		initmach(&mach[0], mysysname);
 		readmach(&mach[0], 1);
 	}else{
-		for(i=0; i<argc; i++){
-			addmachine(argv[i]);
-			readmach(&mach[i], 1);
+		for(i=j=0; i<argc; i++){
+			if (addmachine(argv[i]))
+				readmach(&mach[j++], 1);
 		}
 	}