Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for scripts/shell/firewall/firewall.d/subnets/simplify-subnets.sh between version 1.6 and 1.7

version 1.6, 2018/05/08 00:51:39 version 1.7, 2018/05/08 00:55:07
Line 14 
Line 14 
 #              based on C-class subnets counting  #              based on C-class subnets counting
 #  #
   
 # $Platon: scripts/shell/firewall/firewall.d/subnets/simplify-subnets.sh,v 1.5 2018/05/08 00:20:40 nepto Exp $  # $Platon: scripts/shell/firewall/firewall.d/subnets/simplify-subnets.sh,v 1.6 2018/05/08 00:51:39 nepto Exp $
   
 # Minimum amount of C-classes to be merged into one B-class  # Minimum amount of C-classes to be merged into one B-class
 MIN_C_CLASS_MERGE=120;  MIN_C_CLASS_MERGE=120;
Line 43  c_class_subnets_count () # {{{
Line 43  c_class_subnets_count () # {{{
 prev_C='';  prev_C='';
 prev_B='';  prev_B='';
 cnt_CinB=1;  cnt_CinB=1;
   
 while IFS='' read -r line; do  while IFS='' read -r line; do
         if [ -z "$line" -o "${line#\#}"x != "${line}x" ]; then          if [ -z "$line" -o "${line#\#}"x != "${line}x" ]; then
                 echo "$line";                  echo "$line";
Line 69  while IFS='' read -r line; do
Line 70  while IFS='' read -r line; do
         fi          fi
   
         if [ "$subnet_B" = "$prev_B" ]; then          if [ "$subnet_B" = "$prev_B" ]; then
                 to_write="$to_write"$'\n';                  to_write="$to_write"$'\n'; # newline
                 to_write="$to_write$subnet_C/$mask";                  to_write="$to_write$subnet_C/$mask";
                 prev_C="$subnet_C";                  prev_C="$subnet_C";
                 # /24=1, /23=2, /22=4, /21=8, ...                  # /24=1, /23=2, /22=4, /21=8, ...
Line 78  while IFS='' read -r line; do
Line 79  while IFS='' read -r line; do
                 continue;                  continue;
         fi          fi
   
           # Output
         if [ "$cnt_CinB" -gt "$MIN_C_CLASS_MERGE" ]; then          if [ "$cnt_CinB" -gt "$MIN_C_CLASS_MERGE" ]; then
                 echo "# Merged $cnt_CinB C-classes into one B-class";                  echo "# Merged $cnt_CinB C-classes into one B-class";
                 echo "$prev_B/16";                  echo "$prev_B/16";
         else if [ "$cnt_CinB" -eq 1 ]; then          else
                 if [[ "$to_write" = */24 ]]; then                  if [ "$cnt_CinB" -gt 1 ]; then
                         echo "# Simplified to C-class";                          echo "# Found $cnt_CinB similar networks";
                         echo "$to_write";                          echo "$to_write";
                 else                  else
                         echo "# Unchanged network";                          if [[ "$to_write" = */24 ]]; then
                         echo "$to_write";                                  echo "# Simplified to C-class";
                                   echo "$to_write";
                           else
                                   echo "# Unchanged network";
                                   echo "$to_write";
                           fi
                 fi                  fi
         else          fi
                 echo "# Found $cnt_CinB similar networks";  
                 echo "$to_write";  
         fi fi  
   
         to_write="$subnet_C/$mask";          to_write="$subnet_C/$mask";
         prev_B="$subnet_B";          prev_B="$subnet_B";

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top