Browse Source

Plan 9 from Bell Labs 2007-08-05

David du Colombier 16 years ago
parent
commit
64a8b40323
5 changed files with 25 additions and 18 deletions
  1. 4 5
      dist/replica/_plan9.db
  2. 4 4
      dist/replica/plan9.db
  3. 4 0
      dist/replica/plan9.log
  4. 0 2
      sys/src/cmd/ip/6in4.c
  5. 13 7
      sys/src/cmd/ip/ping.c

+ 4 - 5
dist/replica/_plan9.db

@@ -285,7 +285,7 @@
 386/bin/import - 775 sys sys 1179777651 102499
 386/bin/iostats - 775 sys sys 1178568280 98906
 386/bin/ip - 20000000775 sys sys 1016920851 0
-386/bin/ip/6in4 - 775 sys sys 1186112227 89929
+386/bin/ip/6in4 - 775 sys sys 1186257752 90935
 386/bin/ip/dhcpclient - 775 sys sys 1178568281 92992
 386/bin/ip/dhcpd - 775 sys sys 1186112227 151324
 386/bin/ip/dhcpleases - 775 sys sys 1186112228 85106
@@ -305,7 +305,7 @@
 386/bin/ip/imap4d - 775 sys sys 1179372095 236829
 386/bin/ip/ipconfig - 775 sys sys 1186112228 159700
 386/bin/ip/linklocal - 775 sys sys 1177530964 42790
-386/bin/ip/ping - 775 sys sys 1184901770 82522
+386/bin/ip/ping - 775 sys sys 1186257752 93159
 386/bin/ip/ppp - 775 sys sys 1179372096 219103
 386/bin/ip/pppoe - 775 sys sys 1168402326 77787
 386/bin/ip/pptp - 775 sys sys 1184731239 127160
@@ -12465,7 +12465,7 @@ sys/src/cmd/iostats/mkfile - 664 sys sys 1014925727 122
 sys/src/cmd/iostats/statfs.h - 664 sys sys 1140099908 2626
 sys/src/cmd/iostats/statsrv.c - 664 sys sys 1166824341 10773
 sys/src/cmd/ip - 20000000775 sys sys 1128605981 0
-sys/src/cmd/ip/6in4.c - 664 sys sys 1186180319 8844
+sys/src/cmd/ip/6in4.c - 664 sys sys 1186210033 8811
 sys/src/cmd/ip/arp.h - 664 sys sys 944961005 751
 sys/src/cmd/ip/dhcp.h - 664 sys sys 1184696111 3764
 sys/src/cmd/ip/dhcpclient.c - 664 sys sys 1178482836 11969
@@ -12544,7 +12544,7 @@ sys/src/cmd/ip/ipconfig/ppp.c - 664 sys sys 1184880751 1046
 sys/src/cmd/ip/linklocal.c - 664 sys sys 1177099730 867
 sys/src/cmd/ip/measure.c - 664 sys sys 944961011 3733
 sys/src/cmd/ip/mkfile - 664 sys sys 1185920805 1267
-sys/src/cmd/ip/ping.c - 664 sys sys 1184900703 10237
+sys/src/cmd/ip/ping.c - 664 sys sys 1186208356 10518
 sys/src/cmd/ip/ppp - 20000000775 sys sys 1065963823 0
 sys/src/cmd/ip/ppp/block.c - 664 sys sys 1015090266 5353
 sys/src/cmd/ip/ppp/compress.c - 664 sys sys 1072729513 11774
@@ -15844,4 +15844,3 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
-386/bin/ip/6in4 - 775 sys sys 1186198157 90962

+ 4 - 4
dist/replica/plan9.db

@@ -285,7 +285,7 @@
 386/bin/import - 775 sys sys 1179777651 102499
 386/bin/iostats - 775 sys sys 1178568280 98906
 386/bin/ip - 20000000775 sys sys 1016920851 0
-386/bin/ip/6in4 - 775 sys sys 1186198157 90962
+386/bin/ip/6in4 - 775 sys sys 1186257752 90935
 386/bin/ip/dhcpclient - 775 sys sys 1178568281 92992
 386/bin/ip/dhcpd - 775 sys sys 1186112227 151324
 386/bin/ip/dhcpleases - 775 sys sys 1186112228 85106
@@ -305,7 +305,7 @@
 386/bin/ip/imap4d - 775 sys sys 1179372095 236829
 386/bin/ip/ipconfig - 775 sys sys 1186112228 159700
 386/bin/ip/linklocal - 775 sys sys 1177530964 42790
-386/bin/ip/ping - 775 sys sys 1184901770 82522
+386/bin/ip/ping - 775 sys sys 1186257752 93159
 386/bin/ip/ppp - 775 sys sys 1179372096 219103
 386/bin/ip/pppoe - 775 sys sys 1168402326 77787
 386/bin/ip/pptp - 775 sys sys 1184731239 127160
@@ -12465,7 +12465,7 @@ sys/src/cmd/iostats/mkfile - 664 sys sys 1014925727 122
 sys/src/cmd/iostats/statfs.h - 664 sys sys 1140099908 2626
 sys/src/cmd/iostats/statsrv.c - 664 sys sys 1166824341 10773
 sys/src/cmd/ip - 20000000775 sys sys 1128605981 0
-sys/src/cmd/ip/6in4.c - 664 sys sys 1186180319 8844
+sys/src/cmd/ip/6in4.c - 664 sys sys 1186210033 8811
 sys/src/cmd/ip/arp.h - 664 sys sys 944961005 751
 sys/src/cmd/ip/dhcp.h - 664 sys sys 1184696111 3764
 sys/src/cmd/ip/dhcpclient.c - 664 sys sys 1178482836 11969
@@ -12544,7 +12544,7 @@ sys/src/cmd/ip/ipconfig/ppp.c - 664 sys sys 1184880751 1046
 sys/src/cmd/ip/linklocal.c - 664 sys sys 1177099730 867
 sys/src/cmd/ip/measure.c - 664 sys sys 944961011 3733
 sys/src/cmd/ip/mkfile - 664 sys sys 1185920805 1267
-sys/src/cmd/ip/ping.c - 664 sys sys 1184900703 10237
+sys/src/cmd/ip/ping.c - 664 sys sys 1186208356 10518
 sys/src/cmd/ip/ppp - 20000000775 sys sys 1065963823 0
 sys/src/cmd/ip/ppp/block.c - 664 sys sys 1015090266 5353
 sys/src/cmd/ip/ppp/compress.c - 664 sys sys 1072729513 11774

+ 4 - 0
dist/replica/plan9.log

@@ -49847,3 +49847,7 @@
 1186182004 0 c sys/src/cmd/ip/6in4.c - 664 sys sys 1186180319 8844
 1186183805 0 c sys/man/8/6in4 - 664 sys sys 1186182195 2330
 1186198203 0 c 386/bin/ip/6in4 - 775 sys sys 1186198157 90962
+1186209007 0 c sys/src/cmd/ip/ping.c - 664 sys sys 1186208356 10518
+1186210804 0 c sys/src/cmd/ip/6in4.c - 664 sys sys 1186210033 8811
+1186259407 0 c 386/bin/ip/6in4 - 775 sys sys 1186257752 90935
+1186259407 1 c 386/bin/ip/ping - 775 sys sys 1186257752 93159

+ 0 - 2
sys/src/cmd/ip/6in4.c

@@ -118,8 +118,6 @@ procargs(int argc, char **argv)
 	if (argc >= 1) {
 		parseip(remote6, *argv++);
 		argc--;
-		if (isv4(remote4))
-			usage();
 	} else {
 		remote6[0] = 0xFE;		/* link local */
 		remote6[1] = 0x80;

+ 13 - 7
sys/src/cmd/ip/ping.c

@@ -194,8 +194,8 @@ static uchar loopbackmask[IPaddrlen] = {
 
 /*
  * find first ip addr suitable for proto and
- * that isn't the friggin loopback address
- * unless there are no others.
+ * that isn't the friggin loopback address.
+ * deprecate link-local and multicast addresses.
  */
 static int
 myipvnaddr(uchar *ip, Proto *proto, char *net)
@@ -203,9 +203,10 @@ myipvnaddr(uchar *ip, Proto *proto, char *net)
 	int ipisv4, wantv4;
 	Ipifc *nifc;
 	Iplifc *lifc;
-	uchar mynet[IPaddrlen];
+	uchar mynet[IPaddrlen], linklocal[IPaddrlen];
 	static Ipifc *ifc;
-	
+
+	ipmove(linklocal, IPnoaddr);
 	wantv4 = proto->version == 4;
 	ifc = readipifc(net, ifc, -1);
 	for(nifc = ifc; nifc; nifc = nifc->next)
@@ -213,14 +214,19 @@ myipvnaddr(uchar *ip, Proto *proto, char *net)
 			maskip(lifc->ip, loopbackmask, mynet);
 			if(ipcmp(mynet, loopbacknet) == 0)
 				continue;
+			if(ISIPV6MCAST(lifc->ip) || ISIPV6LINKLOCAL(lifc->ip)) {
+				ipmove(linklocal, lifc->ip);
+				continue;
+			}
 			ipisv4 = isv4(lifc->ip) != 0;
 			if(ipcmp(lifc->ip, IPnoaddr) != 0 && wantv4 == ipisv4){
 				ipmove(ip, lifc->ip);
 				return 0;
 			}
 		}
-	ipmove(ip, IPnoaddr);
-	return -1;
+	/* no global unicast addrs found, fall back to link-local, if any */
+	ipmove(ip, linklocal);
+	return ipcmp(ip, IPnoaddr) == 0? -1: 0;
 }
 
 void
@@ -542,7 +548,7 @@ main(int argc, char **argv)
 		exits("dialing");
 	}
 
-	if (!quiet)	
+	if (!quiet)
 		print("sending %d %d byte messages %d ms apart to %s\n",
 			nmsg, msglen, interval, ds);