shithub: riscv

Download patch

ref: 665f0c8e3ee2b7e325a2142c284d363ff7c5aac3
parent: 17566b4dd30979777ce7f25429084818c0f924f4
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Dec 9 19:30:07 EST 2014

bootrc: handle multiple fs and auth addresses in netboot, always set auth= in /net/ndb

--- a/sys/src/9/boot/bootrc
+++ b/sys/src/9/boot/bootrc
@@ -4,6 +4,7 @@
 bind /root /mnt/broot
 unmount /root
 
+bind -q '#d' /fd
 bind -q '#p' /proc
 for(i in S f k æ t b m)
 	bind -qa '#'^$i /dev
--- a/sys/src/9/boot/net.rc
+++ b/sys/src/9/boot/net.rc
@@ -17,24 +17,33 @@
 
 	must ip/ipconfig -p $*
 	if(~ $#fs 0)
-		fs=`{awk -F'=' '/fs=/{print $2; exit}' /net/ndb}
+		fs=`{awk -F'=' '/^[ 	]*fs=/{print $2}' /net/ndb}
 	if(~ $#auth 0)
-		auth=`{awk -F'=' '/auth=/{print $2; exit}' /net/ndb}
+		auth=`{awk -F'=' '/^[ 	]*auth=/{print $2}' /net/ndb}
 	if(~ $#fs 0)
-		ask fs ' ip is? ' $auth
-	if(~ $#auth 0){
-		ask auth ' ip is? ' $fs
-		if(~ $#auth 1)
-			echo '	auth='^$auth >>/net/ndb
+		ask fs ' ip is? ' $auth(1)
+	if(~ $#auth 0)
+		ask auth ' ip is? ' $fs(1)
+
+	# set bootstrap authservers for factotum
+	if(! ~ $#auth 0){
+		grep -v '^[ 	]*auth=' /net/ndb >/env/x
+		cat /env/x <{echo '	auth='^$auth^'
+'} >/net/ndb
+		rm /env/x
 	}
 }
 
 fn connecttcp{
-	srv -q tcp!$fs!564 boot 
+	while(! ~ $#fs 0 && ! srv -q tcp!$fs(1)^!564 boot)
+		fs=$fs(2-);
+	fs=$fs(1)
 }
 
 fn connectil{
-	srv -q il!$fs!17008 boot 
+	while(! ~ $#fs 0 && ! srv -q il!$fs(1)^!17008 boot)
+		fs=$fs(2-);
+	fs=$fs(1)
 }
 
 mtcp=(confignet connecttcp)