mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-18 10:46:41 +00:00
base-files: ipcalc.sh: correctly set limit for prefix > 30
For /31 and /32 prefixes, there are only host addresses - no network and broadcast address with all-zero and all-one bits. Reflect this when setting the limit. Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
This commit is contained in:
parent
9e8bbd4265
commit
9b2f8a33b6
@ -64,13 +64,21 @@ BEGIN {
|
||||
if (ARGC <= 3)
|
||||
exit(0)
|
||||
|
||||
if (prefix<=30)
|
||||
limit=network+1
|
||||
else
|
||||
limit=network
|
||||
|
||||
start=or(network,and(ip2int(ARGV[3]),compl32(netmask)))
|
||||
limit=network+1
|
||||
if (start<limit) start=limit
|
||||
if (start==ipaddr) start=ipaddr+1
|
||||
|
||||
if (prefix<=30)
|
||||
limit=or(network,compl32(netmask))-1
|
||||
else
|
||||
limit=or(network,compl32(netmask))
|
||||
|
||||
end=start+ARGV[4]-1
|
||||
limit=or(network,compl32(netmask))-1
|
||||
if (end>limit) end=limit
|
||||
if (end==ipaddr) end=ipaddr-1
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user