New function ipv4_prefix_to_netmask()
[tridge/autocluster.git] / autocluster
index 62cbdfd042bbbda97e596bf9d4b68061c7019ef1..3e9d88e99782313244614645497b4f0942e0def3 100755 (executable)
@@ -951,6 +951,31 @@ setup_base()
     run_hooks setup_base_hooks
 }
 
+ipv4_prefix_to_netmask ()
+{
+    local prefix="$1"
+
+    local div=$(($prefix / 8))
+    local mod=$(($prefix % 8))
+
+    local octet
+    for octet in 1 2 3 4 ; do
+       if [ $octet -le $div ] ; then
+           echo -n "255"
+       elif [ $mod -ne 0 -a $octet -eq $(($div + 1)) ] ; then
+           local shift=$((8 - $mod))
+           echo -n $(( (255 >> $shift << $shift) ))
+       else
+           echo -n 0
+       fi
+       if [ $octet -lt 4 ] ; then
+           echo -n '.'
+       fi
+    done
+
+    echo
+}
+
 # setup various networking components
 setup_network()
 {