From: Denys Vlasenko Date: Tue, 5 Feb 2019 16:48:24 +0000 (+0100) Subject: dhcp service example: cater for servers hot giving subnet and/or router X-Git-Tag: 1_31_0~186 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2feaba1d8dc2893d9f1064673e500312eaa70777;p=oweals%2Fbusybox.git dhcp service example: cater for servers hot giving subnet and/or router Signed-off-by: Denys Vlasenko --- diff --git a/examples/var_service/dhcp_if/convert2ipconf b/examples/var_service/dhcp_if/convert2ipconf index 62a288ebf..038b1f7f1 100755 --- a/examples/var_service/dhcp_if/convert2ipconf +++ b/examples/var_service/dhcp_if/convert2ipconf @@ -26,6 +26,25 @@ exec 2>&1 test "$interface" || exit 1 test "$ip" || exit 1 +# some servers do not return subnet option. +# guess it for standard private networks. +if ! test "$mask"; then + if test "$ip" != "${ip#192.168.}"; then + mask=16 + elif test "$ip" != "${ip#172.16.}"; then + mask=12 + # repeat for each in 172.17. - 172.31. range? + elif test "$ip" != "${ip#10.}"; then + mask=8 + fi +fi + +# some servers do not return router option. +# assume DHCP server is the router. +if ! test "$router"; then + test "$serverid" && router="$serverid" +fi + { echo "let cfg=cfg+1" test "$interface" && echo "if[\$cfg]='$interface'"