massage netmask to cidr for buggy shells.
This commit is contained in:
		
							
								
								
									
										16
									
								
								sh/net.sh
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								sh/net.sh
									
									
									
									
									
								
							| @@ -134,8 +134,22 @@ _wait_for_carrier() { | ||||
| } | ||||
|  | ||||
| _netmask2cidr() { | ||||
| 	local i= len=0 | ||||
| 	# Some shells cannot handle hex arithmetic, so we massage it slightly | ||||
| 	# Buggy shells include FreeBSD sh, dash and busybox. | ||||
| 	# bash and NetBSD sh don't need this. | ||||
| 	case $1 in | ||||
| 		0x*) | ||||
| 		local hex=${1#0x*} quad= | ||||
| 		while [ -n "${hex}" ]; do | ||||
| 			local lastbut2=${hex#??*} | ||||
| 			quad=${quad}${quad:+.}0x${hex%${lastbut2}*} | ||||
| 			hex=${lastbut2} | ||||
| 		done | ||||
| 		set -- ${quad} | ||||
| 		;; | ||||
| 	esac | ||||
|  | ||||
| 	local i= len= | ||||
| 	local IFS=. | ||||
| 	for i in $1; do | ||||
| 		while [ ${i} != "0" ]; do | ||||
|   | ||||
		Reference in New Issue
	
	Block a user