Changeset 357


Ignore:
Timestamp:
Sep 14, 2018, 11:58:01 AM (6 years ago)
Author:
g7moreau
Message:
  • Better control IP syntax
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ddt/ddt

    r356 r357  
    305305   my $ip = shift;
    306306
    307    if ($ip ne 'pool') {
    308       my @ip_split = split /\./, $ip;
    309 
    310       if ( scalar(@ip_split) != 4 ) {
    311          print {*STDERR} "Error: bad IP syntax: $ip\n";
    312          return 0;
    313          }
    314       }
     307   return 1 if $ip ne 'pool';
     308
     309   return 0 if $ip !~ m{^(\d+\.){3}\d+$};
     310   return 0 if not NetAddr::IP->new("$ip/32");
    315311   return 1;
    316312   }
     
    480476   control_syntax_mac_address($mac)                         or exit;
    481477   control_exist_mac($computer_db, $mac)                    or die "Error: physical MAC address already exists: $mac\n";
    482    control_syntax_ip($ip)                                   or exit;
     478   control_syntax_ip($ip)                                   or die "Error: bad IP syntax $ip\n";
    483479   control_exist_ip($computer_db, $ip)                      or die "Error: IP $ip address already exist in sector $sector\n";
    484480   control_ip_in_range($computer_db, $sector, $ip)          or die "Error: IP $ip is not in sector $sector IP range.\n";
     
    516512   control_syntax_mac_address($mac)                         or exit;
    517513   control_exist_mac($computer_db, $mac)                    or die "Error: physical MAC address already exists: $mac\n";
    518    control_syntax_ip($ip)                                   or exit;
     514   control_syntax_ip($ip)                                   or die "Error: bad IP syntax $ip\n";
    519515   control_exist_ip($computer_db, $ip)                      or die "Error: IP address already exist in sector $sector: $ip.\n";
    520516   control_ip_in_range($computer_db, $sector, $ip)          or die "Error: IP $ip is not in sector $sector IP range.\n";
     
    702698   control_exist_sector($computer_db, $sector)              or exit;
    703699   control_exist_hostname($computer_db, $sector, $hostname) or die "Error: host already exist in sector $sector: $hostname\n";
    704    control_syntax_ip($ip)                                   or exit;
     700   control_syntax_ip($ip)                                   or die "Error: bad IP syntax $ip\n";
    705701   control_exist_ip($computer_db, $ip)                      or die "Error: IP address already exist in sector $sector: $ip.\n";
    706702   control_ip_in_range($computer_db, $sector, $ip)          or die "Error: IP $ip is not in sector $sector IP range.\n";
     
    746742   control_exist_mac($computer_db, $mac)              or die "Error: physical MAC address already exists: $mac\n";
    747743   if ($ip ne '') {
    748       control_syntax_ip($ip) or exit;
     744      control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";
    749745      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    750746         print "Error: unkown IP address: $ip\n";
     
    805801      die "Error: unkown host: $hostname, in sector: $sector\n";
    806802      }
    807    control_syntax_ip($ip)                          or exit;
     803   control_syntax_ip($ip)                          or die "Error: bad IP syntax $ip\n";
    808804   control_exist_ip($computer_db, $ip)             or die "Error: IP $ip address already exist in sector $sector\n";
    809805   control_ip_in_range($computer_db, $sector, $ip) or die "Error: IP $ip is not in sector $sector IP range.\n";
     
    840836
    841837   control_exist_sector($computer_db, $sector) or exit;
    842    control_syntax_ip($ip)   or exit;
     838   control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";
    843839   if ( control_exist_ip($computer_db, $ip) == 1 ) {
    844840      die "Error: unkown IP address: $ip\n";
     
    10051001   my $computer_db = ipamdb_load($COMPUTER_YAML);
    10061002
    1007    control_exist_sector($computer_db, $sector)   or exit;
    1008    control_syntax_ip($ip)                             or exit;
    1009    control_syntax_mac_address($mac)                   or exit;
     1003   control_exist_sector($computer_db, $sector)  or exit;
     1004   control_syntax_ip($ip)                       or die "Error: bad IP syntax $ip\n";
     1005   control_syntax_mac_address($mac)             or exit;
    10101006
    10111007   LOOP_ON_SECTOR:
     
    11141110
    11151111   if ($ip ne '') { # disable by IP
    1116       control_syntax_ip($ip);
     1112      control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";;
    11171113      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    11181114         die "Error: unkown IP address: $ip [FAILED]\n";
     
    12421238
    12431239   if ($ip ne '') { # enable by IP
    1244       control_syntax_ip($ip);
     1240      control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";;
    12451241      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    12461242         print "Error: unkown IP address: $ip\n";
     
    17251721   #---control if address exist ---#
    17261722   if ($ipaddress_pool =~ /,/) {
     1723      LOOP_ON_IP:
    17271724      for my $ip (split /,/, $ipaddress_pool) {
    17281725         if ($ip =~ /-/) {
     
    17371734            }
    17381735         else {
    1739             control_syntax_ip($ip) or next;
     1736            control_syntax_ip($ip) or next LOOP_ON_IP;
    17401737            if ( control_exist_ip($computer_db, $ip) == 0 ) {
    17411738               print "L'adresse IP $ip existe déjà\n";
     
    19271924   control_exist_sector($computer_db, $sector) or exit;
    19281925   if ($ip ne '') {
    1929       control_syntax_ip($ip);
     1926      control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";;
    19301927      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    19311928         die "Error: unkown IP address: $ip\n";
     
    20032000   control_exist_sector($computer_db, $sector) or exit;
    20042001   if ($ip ne '') {
    2005       control_syntax_ip($ip);
     2002      control_syntax_ip($ip) or die "Error: bad IP syntax $ip\n";;
    20062003      if ( control_exist_ip($computer_db, $ip) == 1 ) {
    20072004         die "Error: unkown IP address: $ip\n";
     
    27772774   close(FILE);
    27782775
     2776   LINE:
    27792777   for my $ligne (@buffer) {
    27802778      #--
     
    28172815         if ( control_exist_hostname($computer_db, $sector, $hostname) == 0 ) {
    28182816            print "Error: host already exist in sector $sector: $hostname\n";
    2819             next;
    2820             }
    2821          control_syntax_mac_address($mac) or next;
     2817            next LINE;
     2818            }
     2819         control_syntax_mac_address($mac) or next LINE;
    28222820         if ( control_exist_mac($computer_db, $mac) == 0) {
    28232821            print "Error: physical MAC address already exists: $mac\n";
    2824             next;
    2825             }
    2826 
    2827          control_syntax_ip($ip) or next;
     2822            next LINE;
     2823            }
     2824
     2825         control_syntax_ip($ip) or next LINE;
    28282826         if ( control_exist_ip($computer_db, $ip) == 0 ) {
    28292827            print "Error: IP address already exists: $ip\n";
    2830             next;
     2828            next LINE;
    28312829            }
    28322830         my $timestamp = time;
Note: See TracChangeset for help on using the changeset viewer.