Allow space separated configs to work for CIDR address styles
This commit is contained in:
		| @@ -40,21 +40,13 @@ | ||||
| # INTERFACE HANDLERS | ||||
|  | ||||
| # For a static configuration, use something like this | ||||
| # (They all do exactly the same thing btw) | ||||
| #config_eth0="192.168.0.2/24" | ||||
| #config_eth0="192.168.0.2 netmask 255.255.255.0" | ||||
|  | ||||
| # We can also specify a broadcast | ||||
| #config_eth0="192.168.0.2/24 brd 192.168.0.255" | ||||
| #config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" | ||||
|  | ||||
| # If you need more than one address, you can use something like this | ||||
| # NOTE: ifconfig creates an aliased device for each extra IPv4 address | ||||
| #       (eth0:1, eth0:2, etc) | ||||
| #       iproute2 does not do this as there is no need to | ||||
| #config_eth0="192.168.0.2/24 | ||||
| #192.168.0.3/24 | ||||
| #192.168.0.4/24'" | ||||
| #config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24" | ||||
| # Or you can use sequence expressions | ||||
| #config_eth0="192.168.0.{2..4}/24"  FIXME - may not work with baselayout2 | ||||
| # which does the same as above. Be careful though as if you use this and | ||||
| @@ -63,17 +55,14 @@ | ||||
|  | ||||
| # You can also use IPv6 addresses | ||||
| # (you should always specify a prefix length with IPv6 here) | ||||
| #config_eth0="192.168.0.2/24 | ||||
| #4321:0:1:2:3:4:567:89ab/64 | ||||
| #4321:0:1:2:3:4:567:89ac/64" | ||||
| #config_eth0="192.168.0.2/24 4321:0:1:2:3:4:567:89ab/64 4321:0:1:2:3:4:567:89ac/64" | ||||
|  | ||||
| # If you wish to keep existing addresses + routing and the interface is up, | ||||
| # you can specify a noop (no operation). If the interface is down or there | ||||
| # are no addresses assigned, then we move onto the next step (default dhcp) | ||||
| # This is useful when configuring your interface with a kernel command line | ||||
| # or similar | ||||
| #config_eth0="noop | ||||
| #192.168.0.2/24" | ||||
| #config_eth0="noop 192.168.0.2/24" | ||||
|  | ||||
| # If you don't want ANY address (only useful when calling for advanced stuff) | ||||
| #config_eth0="null" | ||||
| @@ -120,8 +109,7 @@ | ||||
| # Most users will just need to set the following options | ||||
| # key_SSID1="s:yourkeyhere enc open" # s: means a text key | ||||
| # key_SSID2="aaaa-bbbb-cccc-dd"      # no s: means a hex key | ||||
| # preferred_aps="SSID 1 | ||||
| #SSID 2" | ||||
| # preferred_aps="SSID1 SSID2" | ||||
| # | ||||
| # Clear? Good. Now configure your wireless network below | ||||
|  | ||||
|   | ||||
| @@ -18,25 +18,6 @@ | ||||
| # read through the rest of this file. | ||||
|  | ||||
|  | ||||
| ############################################################################## | ||||
| # VARIABLES | ||||
| # | ||||
| # We've changed from using arrays to evaluated strings. | ||||
| # This has the benefit of being slightly more readable but more importantly it | ||||
| # works across all shells. | ||||
| # OLD | ||||
| # config_eth0=( "192.168.0.24 netmask 255.255.255.0" "192.168.0.25/24" ) | ||||
| # NEW | ||||
| # config_eth0="192.168.0.24 netmask 255.255.255.0 | ||||
| # 192.168.0.25/24" | ||||
| # INVALID | ||||
| # config_eth0="192.168.0.24 netmask 255.255.255.0 192.168.0.25/24" | ||||
| # INVALID | ||||
| # config_eth0="192.168.0.24 netmask 255.255.255.0 \n 192.168.0.25/24" | ||||
| # | ||||
| # Basically if array elements may need spaces in their values then we separate | ||||
| # on a hard coded new line. | ||||
|  | ||||
| ############################################################################## | ||||
| # MODULES | ||||
| # | ||||
| @@ -83,17 +64,12 @@ | ||||
| #config_eth0="192.168.0.2/24" | ||||
| #config_eth0="192.168.0.2 netmask 255.255.255.0" | ||||
|  | ||||
| # We can also specify a broadcast | ||||
| #config_eth0="192.168.0.2/24 brd 192.168.0.255" | ||||
| #config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" | ||||
|  | ||||
| # If you need more than one address, you can use something like this | ||||
| # NOTE: ifconfig creates an aliased device for each extra IPv4 address | ||||
| #       (eth0:1, eth0:2, etc) | ||||
| #       iproute2 does not do this as there is no need to | ||||
| #config_eth0="192.168.0.2/24 | ||||
| #192.168.0.3/24 | ||||
| #192.168.0.4/24" | ||||
| #config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24" | ||||
| # However, that only works with CIDR addresses, so you can't use netmask. | ||||
| # Or you can use sequence expressions | ||||
| #config_eth0="192.168.0.{2..4}/24" | ||||
| # which does the same as above. Be careful though as if you use this and | ||||
| @@ -102,18 +78,14 @@ | ||||
|  | ||||
| # You can also use IPv6 addresses | ||||
| # (you should always specify a prefix length with IPv6 here) | ||||
| #config_eth0="192.168.0.2/24 | ||||
| #4321:0:1:2:3:4:567:89ab/64 | ||||
| #4321:0:1:2:3:4:567:89ac/64" | ||||
| #) | ||||
| #config_eth0="192.168.0.2/24 4321:0:1:2:3:4:567:89ab/64 4321:0:1:2:3:4:567:89ac/64" | ||||
|  | ||||
| # If you wish to keep existing addresses + routing and the interface is up, | ||||
| # you can specify a noop (no operation). If the interface is down or there | ||||
| # are no addresses assigned, then we move onto the next step (default dhcp) | ||||
| # This is useful when configuring your interface with a kernel command line | ||||
| # or similar | ||||
| #config_eth0="noop | ||||
| #192.168.0.2/24" | ||||
| #config_eth0="noop 192.168.0.2/24" | ||||
|  | ||||
| # If you don't want ANY address (only useful when calling for advanced stuff) | ||||
| #config_eth0="null" | ||||
| @@ -126,7 +98,7 @@ | ||||
|  | ||||
| # If a specified module fails (like dhcp - see below), you can specify a | ||||
| # fallback like so | ||||
| #fallback_eth0="192.168.0.2 netmask 255.255.255.0" | ||||
| #fallback_eth0="192.168.0.2/24" | ||||
| #fallback_route_eth0="default via 192.168.0.1" | ||||
|  | ||||
| # NOTE: fallback entry must match the entry location in config_eth0 | ||||
| @@ -570,8 +542,8 @@ | ||||
| #vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD" | ||||
| #vconfig_vlan1="set_flag 1 | ||||
| #set_egress_map 2 6" | ||||
| #config_vlan1="172.16.3.1 netmask 255.255.254.0" | ||||
| #config_vlan2="172.16.2.1 netmask 255.255.254.0" | ||||
| #config_vlan1="172.16.3.1/23" | ||||
| #config_vlan2="172.16.2.1/23" | ||||
|  | ||||
| # NOTE: Vlans can be configured with a . in their interface names | ||||
| # When configuring vlans with this name type, you need to replace . with a _ | ||||
|   | ||||
							
								
								
									
										20
									
								
								sh/net.sh
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								sh/net.sh
									
									
									
									
									
								
							| @@ -410,11 +410,27 @@ ${config}" | ||||
| 		fi | ||||
| 	fi | ||||
|  | ||||
| 	config_index=0 | ||||
| 	local IFS="$__IFS" | ||||
| 	set -- ${config} | ||||
| 	 | ||||
| 	# We should support a space separated array for cidr configs | ||||
| 	if [ $# = 1 ]; then | ||||
| 		unset IFS | ||||
| 		set -- ${config} | ||||
| 		# Of course, we may have a single address added old style. | ||||
| 		case "$2" in | ||||
| 			netmask|broadcast|brd|brd+) | ||||
| 				local IFS="$__IFS" | ||||
| 				set -- ${config} | ||||
| 				;; | ||||
| 		esac | ||||
| 	fi | ||||
|  | ||||
| 	# We store our config in an array like vars | ||||
| 	# so modules can influence it | ||||
| 	config_index=0 | ||||
| 	local IFS="$__IFS" | ||||
| 	for cmd in ${config}; do | ||||
| 	for cmd; do | ||||
| 		eval config_${config_index}="'${cmd}'" | ||||
| 		config_index=$((${config_index} + 1)) | ||||
| 	done | ||||
|   | ||||
		Reference in New Issue
	
	Block a user