pf-tools commit: r460 [ccaillet-guest] - /trunk/lib/PFTools/Net.pm
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Wed Mar 7 17:21:32 CET 2007
Author: ccaillet-guest
Date: Wed Mar 7 16:21:32 2007
New Revision: 460
URL: http://svn.debian.org/wsvn/pf-tools/?sc=1&rev=460
Log:
Preventing bareword on hash key by quoting constant key name
Modified:
trunk/lib/PFTools/Net.pm
Modified: trunk/lib/PFTools/Net.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Net.pm?rev=460&op=diff
==============================================================================
--- trunk/lib/PFTools/Net.pm (original)
+++ trunk/lib/PFTools/Net.pm Wed Mar 7 16:21:32 2007
@@ -179,21 +179,90 @@
my $hostshort = $1;
my $hostvlan = $3;
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
if ( !defined($M) ) {
Abort( $ERR_SYNTAX, "Get_If: " . $host . " not found" );
}
- return ( $M->{ifup}->{ $host . "." . $vlan } );
+ return ( $M->{'ifup'}->{ $host . "." . $vlan } );
}
# ($dhcpif, $dhcpaddr) Get_Dhcp_Infos ( $Zone, $host )
sub Get_Dhcp_Infos {
my ( $Z, $host ) = @_;
- my $dhcpvlanregex = '^(' . join ( '|', @{ $Z->{SOA}->{dhcpvlan} } ) . ')$';
+ my $dhcpvlanregex = '^(' . join ( '|', @{ $Z->{'SOA'}->{'dhcpvlan'} } ) . ')$';
+
+ my $host2 = $host;
+ $host2 =~ s/^(.+)\.$Z->{'SOA'}->{'name'}$/$1/;
+ $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
+ my $hostshort = $1;
+ my $hostvlan = $3;
+ my $hostclass = Host_class( $hostshort, $Z );
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
+
+ if ( !defined($M) ) {
+ Abort( $ERR_SYNTAX, "Get_Dhcp_Infos: " . $host . " not found" );
+ }
+
+ foreach my $nam ( sort { cmpif( $M->{'ifup'}->{$a}, $M->{'ifup'}->{$b} ) }
+ keys %{ $M->{'ifup'} } )
+ {
+ my $net = $nam;
+ $net =~ s/^[^\.]+\.//;
+ if ( $net =~ /$dhcpvlanregex/ ) {
+ if ( defined $M->{'zone'}->{$nam}->{'ether'} ) {
+ return ( $M->{'ifup'}->{$nam}, $M->{'zone'}->{$nam}->{'ether'} );
+ }
+ else {
+ return ( $M->{'ifup'}->{$nam}, $M->{'zone'}->{$nam}->{'vmether'} );
+ }
+ }
+
+ }
+ return undef;
+}
+
+sub Get_Ordered_Filtered_Hosts {
+ my ( $Z, @hostsfilter ) = @_;
+
+ my @list;
+
+ my $class;
+ foreach $class ( sort {
+ my $i = $Z->{'SERVERS'}->{'BY_NAME'}->{$a}->{'order'};
+ my $j = $Z->{'SERVERS'}->{'BY_NAME'}->{$b}->{'order'};
+ if ( !defined $i ) { $i = 9999; }
+ if ( !defined $j ) { $j = 9999; }
+ if ( $i == $j ) { return ( $a cmp $b ); }
+ $i <=> $j;
+ } keys %{ $Z->{'SERVERS'}->{'BY_NAME'} }
+ )
+ {
+ my $hostfilter;
+ foreach $hostfilter (@hostsfilter) {
+ my $host;
+ foreach $host (
+ sort keys %{ $Z->{'SERVERS'}->{'BY_NAME'}->{$class}->{'SRVLIST'} } )
+ {
+ if ( $class =~ /$hostfilter/ || $host =~ /$hostfilter/ ) {
+ push @list, $host;
+ }
+ }
+ }
+ }
+
+ return @list;
+}
+
+# HASREF Get_UM_If ( $Zone, $host )
+sub Get_UM_If {
+ my ( $Z, $host ) = @_;
+
+ my $umif = {};
my $host2 = $host;
$host2 =~ s/^(.+)\.$Z->{SOA}->{name}$/$1/;
@@ -201,68 +270,68 @@
my $hostshort = $1;
my $hostvlan = $3;
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
if ( !defined($M) ) {
Abort( $ERR_SYNTAX, "Get_Dhcp_Infos: " . $host . " not found" );
}
- foreach my $nam ( sort { cmpif( $M->{ifup}->{$a}, $M->{ifup}->{$b} ) }
- keys %{ $M->{ifup} } )
+ foreach my $nam ( sort { cmpif( $M->{'ifup'}->{$a}, $M->{'ifup'}->{$b} ) }
+ keys %{ $M->{'ifup'} } )
{
my $net = $nam;
$net =~ s/^[^\.]+\.//;
- if ( $net =~ /$dhcpvlanregex/ ) {
- if ( defined $M->{zone}->{$nam}->{ether} ) {
- return ( $M->{ifup}->{$nam}, $M->{zone}->{$nam}->{ether} );
+ my $NET = $Z->{'NETWORK'}->{'BY_NAME'}->{$net};
+
+ if ( $M->{'ifup'}->{$nam} =~ m/([^:.\d]+)(\d+)?(\.(\d+))?(:(\d+))?/ ) {
+ my $ai;
+ my $an;
+ my $av;
+ my $aa;
+
+ $ai = $1;
+ if ( defined $2 ) { $an = $2 }
+ if ( defined $4 ) { $av = $4 }
+ if ( defined $6 ) { $aa = $6 }
+
+ my $vlan_raw_device = $ai . ( ( defined $an ) ? $an : '' );
+
+ if ( defined( $umif->{$vlan_raw_device} )
+ && ( $umif->{$vlan_raw_device} ne 'TRUNK' || !defined $av )
+ && $umif->{$vlan_raw_device} ne $NET->{'tag'} )
+ {
+ Abort( $ERR_SYNTAX,
+ "Get_UM_If[" . $host . "]: "
+ . $M->{'ifup'}->{$nam}
+ . " hasn't been remapped properly" );
+ }
+
+ if ( defined $av ) {
+ $umif->{$vlan_raw_device} = 'TRUNK';
}
else {
- return ( $M->{ifup}->{$nam}, $M->{zone}->{$nam}->{vmether} );
- }
- }
-
- }
- return undef;
-}
-
-sub Get_Ordered_Filtered_Hosts {
- my ( $Z, @hostsfilter ) = @_;
-
- my @list;
-
- my $class;
- foreach $class ( sort {
- my $i = $Z->{SERVERS}->{BY_NAME}->{$a}->{order};
- my $j = $Z->{SERVERS}->{BY_NAME}->{$b}->{order};
- if ( !defined $i ) { $i = 9999; }
- if ( !defined $j ) { $j = 9999; }
- if ( $i == $j ) { return ( $a cmp $b ); }
- $i <=> $j;
- } keys %{ $Z->{SERVERS}->{BY_NAME} }
- )
- {
- my $hostfilter;
- foreach $hostfilter (@hostsfilter) {
- my $host;
- foreach $host (
- sort keys %{ $Z->{SERVERS}->{BY_NAME}->{$class}->{SRVLIST} } )
- {
- if ( $class =~ /$hostfilter/ || $host =~ /$hostfilter/ ) {
- push @list, $host;
- }
- }
- }
- }
-
- return @list;
-}
-
-# HASREF Get_UM_If ( $Zone, $host )
-sub Get_UM_If {
+ $umif->{$vlan_raw_device} = $NET->{'tag'};
+ }
+ }
+ else {
+ $umif->{ $M->{'ifup'}->{$nam} } = $NET->{'tag'};
+ }
+ }
+ return $umif;
+}
+
+sub UMRemap_If {
my ( $Z, $host ) = @_;
- my $umif = {};
+ #Debug "UMRemap_If called for $host";
+
+ my %umif;
+ my %umvlan;
+ my %iforphan;
+ my %ifmap;
+ my $lastused = -1;
+ my %umtap;
my $host2 = $host;
$host2 =~ s/^(.+)\.$Z->{SOA}->{name}$/$1/;
@@ -270,21 +339,28 @@
my $hostshort = $1;
my $hostvlan = $3;
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
if ( !defined($M) ) {
- Abort( $ERR_SYNTAX, "Get_Dhcp_Infos: " . $host . " not found" );
- }
-
- foreach my $nam ( sort { cmpif( $M->{ifup}->{$a}, $M->{ifup}->{$b} ) }
- keys %{ $M->{ifup} } )
+ Abort( $ERR_SYNTAX, "UMRemap_If: " . $host . " not found" );
+ }
+
+ foreach my $nam ( sort { cmpif( $M->{'ifup'}->{$a}, $M->{'ifup'}->{$b} ) }
+ keys %{ $M->{'ifup'} } )
{
my $net = $nam;
$net =~ s/^[^\.]+\.//;
- my $NET = $Z->{NETWORK}->{BY_NAME}->{$net};
-
- if ( $M->{ifup}->{$nam} =~ m/([^:.\d]+)(\d+)?(\.(\d+))?(:(\d+))?/ ) {
+ my $NET = $Z->{'NETWORK'}->{'BY_NAME'}->{$net};
+
+ if ( !defined( $NET->{'tag'} ) ) {
+ Abort( $ERR_SYNTAX, "UMRemap_If[" . $host . "]: " . $net
+ . ": cannot wire, tag unknown" );
+ exit 1;
+ }
+
+#Debug "IF '$M->{ifup}->{$nam}' -> NET '$net' -> TAG '" . (defined $NET->{tag} ? $NET->{tag} : '?') . "'\n";
+ if ( $M->{'ifup'}->{$nam} =~ m/([^:.\d]+)(\d+)?(\.(\d+))?(:(\d+))?/ ) {
my $ai;
my $an;
my $av;
@@ -295,92 +371,16 @@
if ( defined $4 ) { $av = $4 }
if ( defined $6 ) { $aa = $6 }
- my $vlan_raw_device = $ai . ( ( defined $an ) ? $an : '' );
-
- if ( defined( $umif->{$vlan_raw_device} )
- && ( $umif->{$vlan_raw_device} ne 'TRUNK' || !defined $av )
- && $umif->{$vlan_raw_device} ne $NET->{tag} )
- {
- Abort( $ERR_SYNTAX,
- "Get_UM_If[" . $host . "]: "
- . $M->{ifup}->{$nam}
- . " hasn't been remapped properly" );
- }
-
- if ( defined $av ) {
- $umif->{$vlan_raw_device} = 'TRUNK';
- }
- else {
- $umif->{$vlan_raw_device} = $NET->{tag};
- }
- }
- else {
- $umif->{ $M->{ifup}->{$nam} } = $NET->{tag};
- }
- }
- return $umif;
-}
-
-sub UMRemap_If {
- my ( $Z, $host ) = @_;
-
- #Debug "UMRemap_If called for $host";
-
- my %umif;
- my %umvlan;
- my %iforphan;
- my %ifmap;
- my $lastused = -1;
- my %umtap;
-
- my $host2 = $host;
- $host2 =~ s/^(.+)\.$Z->{SOA}->{name}$/$1/;
- $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
- my $hostshort = $1;
- my $hostvlan = $3;
- my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
-
- if ( !defined($M) ) {
- Abort( $ERR_SYNTAX, "UMRemap_If: " . $host . " not found" );
- }
-
- foreach my $nam ( sort { cmpif( $M->{ifup}->{$a}, $M->{ifup}->{$b} ) }
- keys %{ $M->{ifup} } )
- {
- my $net = $nam;
- $net =~ s/^[^\.]+\.//;
- my $NET = $Z->{NETWORK}->{BY_NAME}->{$net};
-
- if ( !defined( $NET->{tag} ) ) {
- Abort( $ERR_SYNTAX, "UMRemap_If[" . $host . "]: " . $net
- . ": cannot wire, tag unknown" );
- exit 1;
- }
-
-#Debug "IF '$M->{ifup}->{$nam}' -> NET '$net' -> TAG '" . (defined $NET->{tag} ? $NET->{tag} : '?') . "'\n";
- if ( $M->{ifup}->{$nam} =~ m/([^:.\d]+)(\d+)?(\.(\d+))?(:(\d+))?/ ) {
- my $ai;
- my $an;
- my $av;
- my $aa;
-
- $ai = $1;
- if ( defined $2 ) { $an = $2 }
- if ( defined $4 ) { $av = $4 }
- if ( defined $6 ) { $aa = $6 }
-
if ( $ai eq 'eth' && $lastused < $an ) {
$lastused = $an;
}
- if ( defined $av && defined $NET->{tag} && $av != $NET->{tag} ) {
+ if ( defined $av && defined $NET->{'tag'} && $av != $NET->{'tag'} ) {
Abort( $ERR_SYNTAX,
"UMRemap_If[" . $host . "]: "
. "IF TAG " . $av
. " != NET TAG "
- . $NET->{tag} );
+ . $NET->{'tag'} );
exit 1;
}
@@ -407,23 +407,23 @@
else {
#Debug "$umvlan{'TRUNK'} is already connected to TRUNK, using it for $M->{ifup}->{$nam}\n";
- $ifmap{ $M->{ifup}->{$nam} } = $umvlan{'TRUNK'};
+ $ifmap{ $M->{'ifup'}->{$nam} } = $umvlan{'TRUNK'};
}
}
elsif ( $umif{$vlan_raw_device} ne 'TRUNK'
- && $umif{$vlan_raw_device} != $NET->{tag} )
+ && $umif{$vlan_raw_device} != $NET->{'tag'} )
{
#Debug "$vlan_raw_device already connected to UNTAGGED $umif{$vlan_raw_device}, new one needed for UNTAGGED $NET->{tag}\n";
- delete $umvlan{ $NET->{tag} };
- push @{ $iforphan{ $NET->{tag} } }, $M->{ifup}->{$nam};
+ delete $umvlan{ $NET->{'tag'} };
+ push @{ $iforphan{ $NET->{'tag'} } }, $M->{'ifup'}->{$nam};
}
}
else {
if ( !defined $av ) {
- $umif{$vlan_raw_device} = $NET->{tag};
- if ( !defined $umvlan{ $NET->{tag} } ) {
- $umvlan{ $NET->{tag} } = $vlan_raw_device;
+ $umif{$vlan_raw_device} = $NET->{'tag'};
+ if ( !defined $umvlan{ $NET->{'tag'} } ) {
+ $umvlan{ $NET->{'tag'} } = $vlan_raw_device;
}
}
else {
@@ -448,7 +448,7 @@
Warn( $ERR_SYNTAX,
"UMRemap_If[" . $host
. "]: Can't parse interface name "
- . $M->{ifup}->{$nam}
+ . $M->{'ifup'}->{$nam}
. ", skipped" );
}
}
@@ -507,45 +507,107 @@
}
}
- foreach my $nam ( sort { cmpif( $M->{ifup}->{$a}, $M->{ifup}->{$b} ) }
- keys %{ $M->{ifup} } )
+ foreach my $nam ( sort { cmpif( $M->{'ifup'}->{$a}, $M->{'ifup'}->{$b} ) }
+ keys %{ $M->{'ifup'} } )
{
if ( !defined $ifmap{ $M->{ifup}->{$nam} } ) {
- $M->{ifupremapped}->{$nam} = $M->{ifup}->{$nam};
- if ( defined $M->{route}->{ $M->{ifup}->{$nam} } ) {
- $M->{routeremapped}->{ $M->{ifup}->{$nam} } =
- $M->{route}->{ $M->{ifup}->{$nam} };
- }
- if ( defined $M->{delroute}->{ $M->{ifup}->{$nam} } ) {
- $M->{delrouteremapped}->{ $M->{ifup}->{$nam} } =
- $M->{delroute}->{ $M->{ifup}->{$nam} };
+ $M->{'ifupremapped'}->{$nam} = $M->{'ifup'}->{$nam};
+ if ( defined $M->{'route'}->{ $M->{'ifup'}->{$nam} } ) {
+ $M->{'routeremapped'}->{ $M->{'ifup'}->{$nam} } =
+ $M->{route}->{ $M->{'ifup'}->{$nam} };
+ }
+ if ( defined $M->{'delroute'}->{ $M->{'ifup'}->{$nam} } ) {
+ $M->{'delrouteremapped'}->{ $M->{'ifup'}->{$nam} } =
+ $M->{'delroute'}->{ $M->{'ifup'}->{$nam} };
}
}
else {
- $M->{ifupremapped}->{$nam} = $ifmap{ $M->{ifup}->{$nam} };
- if ( defined $M->{route}->{ $M->{ifup}->{$nam} } ) {
- $M->{routeremapped}->{ $ifmap{ $M->{ifup}->{$nam} } } =
- $M->{route}->{ $M->{ifup}->{$nam} };
- }
- if ( defined $M->{delroute}->{ $M->{ifup}->{$nam} } ) {
- $M->{delrouteremapped}->{ $ifmap{ $M->{ifup}->{$nam} } } =
- $M->{delroute}->{ $M->{ifup}->{$nam} };
- }
- }
- }
-
- delete $M->{ifup};
- delete $M->{route};
- delete $M->{delroute};
- $M->{ifup} = $M->{ifupremapped};
- $M->{route} = $M->{routeremapped};
- $M->{delroute} = $M->{delrouteremapped};
- delete $M->{ifupremapped};
- delete $M->{routeremapped};
- delete $M->{delrouteremapped};
+ $M->{'ifupremapped'}->{$nam} = $ifmap{ $M->{'ifup'}->{$nam} };
+ if ( defined $M->{'route'}->{ $M->{ifup}->{$nam} } ) {
+ $M->{'routeremapped'}->{ $ifmap{ $M->{'ifup'}->{$nam} } } =
+ $M->{'route'}->{ $M->{'ifup'}->{$nam} };
+ }
+ if ( defined $M->{'delroute'}->{ $M->{'ifup'}->{$nam} } ) {
+ $M->{'delrouteremapped'}->{ $ifmap{ $M->{'ifup'}->{$nam} } } =
+ $M->{'delroute'}->{ $M->{'ifup'}->{$nam} };
+ }
+ }
+ }
+
+ delete $M->{'ifup'};
+ delete $M->{'route'};
+ delete $M->{'delroute'};
+ $M->{'ifup'} = $M->{'ifupremapped'};
+ $M->{'route'} = $M->{'routeremapped'};
+ $M->{'delroute'} = $M->{'delrouteremapped'};
+ delete $M->{'ifupremapped'};
+ delete $M->{'routeremapped'};
+ delete $M->{'delrouteremapped'};
}
sub Get_UM_Filename {
+ my ( $Z, $host ) = @_;
+
+ my $host2 = $host;
+ $host2 =~ s/^(.+)\.$Z->{'SOA'}->{'name'}$/$1/;
+ $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
+ my $hostshort = $1;
+ my $hostvlan = $3;
+
+ if ( !defined $hostshort ) {
+ return undef;
+ }
+
+ my $hostclass = Host_class( $hostshort, $Z );
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
+
+ if ( !defined($M) ) {
+ return undef;
+ }
+
+ return ( $M->{'umlfilename'} );
+
+}
+
+sub Get_Initrd_Filename ($$) {
+ my ( $Z, $host ) = @_;
+
+ my $host2 = $host;
+ $host2 =~ s/^(.+)\.$Z->{'SOA'}->{'name'}$/$1/;
+ $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
+ my $hostshort = $1;
+ my $hostvlan = $3;
+
+ if ( !defined $hostshort ) {
+ return undef;
+ }
+
+ my $hostclass = Host_class( $hostshort, $Z );
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
+
+ if ( !defined($M) ) {
+ return undef;
+ }
+
+ return ( $M->{'initrd'} );
+}
+
+sub Get_Ramdisk_size_from_Initrd ($) {
+ my ($initrd) = @_;
+ $initrd = "/distrib/tftpboot/$initrd";
+
+ # On ne peut pas utiliser File::stat sans perturber lib-update etc.
+ my @st_initrd = stat $initrd;
+ unless (@st_initrd and $st_initrd[2] & S_IFREG) {
+ Abort( $ERR_OPEN, "Impossible de stat($initrd): $!");
+ }
+
+ return $st_initrd[7] / 1024;
+}
+
+sub Get_Cmdline ($$) {
my ( $Z, $host ) = @_;
my $host2 = $host;
@@ -559,18 +621,17 @@
}
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
if ( !defined($M) ) {
return undef;
}
- return ( $M->{umlfilename} );
-
-}
-
-sub Get_Initrd_Filename ($$) {
+ return ( $M->{'cmdline'} );
+}
+
+sub Get_Active_Filename {
my ( $Z, $host ) = @_;
my $host2 = $host;
@@ -584,77 +645,16 @@
}
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
if ( !defined($M) ) {
return undef;
}
- return ( $M->{initrd} );
-}
-
-sub Get_Ramdisk_size_from_Initrd ($) {
- my ($initrd) = @_;
- $initrd = "/distrib/tftpboot/$initrd";
-
- # On ne peut pas utiliser File::stat sans perturber lib-update etc.
- my @st_initrd = stat $initrd;
- unless (@st_initrd and $st_initrd[2] & S_IFREG) {
- Abort( $ERR_OPEN, "Impossible de stat($initrd): $!");
- }
-
- return $st_initrd[7] / 1024;
-}
-
-sub Get_Cmdline ($$) {
- my ( $Z, $host ) = @_;
-
- my $host2 = $host;
- $host2 =~ s/^(.+)\.$Z->{SOA}->{name}$/$1/;
- $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
- my $hostshort = $1;
- my $hostvlan = $3;
-
- if ( !defined $hostshort ) {
- return undef;
- }
-
- my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
-
- if ( !defined($M) ) {
- return undef;
- }
-
- return ( $M->{cmdline} );
-}
-
-sub Get_Active_Filename {
- my ( $Z, $host ) = @_;
-
- my $host2 = $host;
- $host2 =~ s/^(.+)\.$Z->{SOA}->{name}$/$1/;
- $host2 =~ m/^([^.]+)(\.([^.]+))?$/;
- my $hostshort = $1;
- my $hostvlan = $3;
-
- if ( !defined $hostshort ) {
- return undef;
- }
-
- my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
-
- if ( !defined($M) ) {
- return undef;
- }
-
- return ( $M->{umlfilename} ) if ($UML);
- return ( $M->{vmwfilename} ) if ($VMWARE);
- return ( $M->{pxefilename} );
+ return ( $M->{'umlfilename'} ) if ($UML);
+ return ( $M->{'vmwfilename'} ) if ($VMWARE);
+ return ( $M->{'pxefilename'} );
}
@@ -678,8 +678,8 @@
}
my $hostclass = Host_class( $hostshort, $Z );
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
- my $M = $N->{SRVLIST}->{$hostshort};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+ my $M = $N->{'SRVLIST'}->{$hostshort};
return Get_dns_from_zone( $Z, $M, $hostnum );
}
@@ -692,11 +692,11 @@
}
my $rawdns;
- if ( defined $M->{dns} && $M->{dns} ne "" ) {
- $rawdns = $M->{dns};
+ if ( defined $M->{'dns'} && $M->{'dns'} ne "" ) {
+ $rawdns = $M->{'dns'};
}
else {
- $rawdns = join ( ", ", @{ $Z->{NS} } );
+ $rawdns = join ( ", ", @{ $Z->{'NS'} } );
}
my @dns;
@@ -729,12 +729,12 @@
# Initialisation de la structure de donnees
$Z = {};
- $Z->{NETWORK} = { { 'BY_ADDR', {} }, { 'BY_NAME', {} } };
- $Z->{SERVERS} = { { 'BY_ADDR', {} }, { 'BY_NAME', {} } };
- $Z->{SOA} = {};
- $Z->{NS} = [];
- $Z->{MX} = [];
- $Z->{ALIAS} = {};
+ $Z->{'NETWORK'} = { { 'BY_ADDR', {} }, { 'BY_NAME', {} } };
+ $Z->{'SERVERS'} = { { 'BY_ADDR', {} }, { 'BY_NAME', {} } };
+ $Z->{'SOA'} = {};
+ $Z->{'NS'} = [];
+ $Z->{'MX'} = [];
+ $Z->{'ALIAS'} = {};
# Chargement du fichier de configuration reseau
$C = Load_conf( $fic_conf, 0 );
@@ -778,18 +778,18 @@
# Calcul de la plage d'adresse alouee et du nombre de serveurs a definir
- if ( !defined( $S->{nodes} ) ) {
- $S->{nodes} = 1;
- }
- my $nodeslast = $S->{nodes} - 1;
+ if ( !defined( $S->{'nodes'} ) ) {
+ $S->{'nodes'} = 1;
+ }
+ my $nodeslast = $S->{'nodes'} - 1;
if ( $nodeslast < 0 ) {
$nodeslast = 0;
}
- if ( !defined( $S->{number} ) ) {
- $S->{number} = 1;
- }
- my $last = $S->{number} - 1;
+ if ( !defined( $S->{'number'} ) ) {
+ $S->{'number'} = 1;
+ }
+ my $last = $S->{'number'} - 1;
if ( $last < 0 ) {
$last = 0;
}
@@ -830,20 +830,20 @@
# Initialisation de la structure pour ces serveurs
my $N = {};
- $N->{comment} = $S->{comment};
- $N->{type} = $S->{type};
+ $N->{'comment'} = $S->{'comment'};
+ $N->{'type'} = $S->{'type'};
#$N->{range} = $S->{range};
- $N->{number} = $S->{number};
- $N->{nodes} = $S->{nodes};
-
- $N->{order} = $S->{order};
+ $N->{'number'} = $S->{'number'};
+ $N->{'nodes'} = $S->{'nodes'};
+
+ $N->{'order'} = $S->{'order'};
$N->{SRVLIST} = {};
my $ipincrement = 1;
- if ( defined $S->{ipincrement} ) {
- $ipincrement = $S->{ipincrement};
+ if ( defined $S->{'ipincrement'} ) {
+ $ipincrement = $S->{'ipincrement'};
}
# Traitement de chaque occurence
@@ -882,77 +882,77 @@
$mnamindexnum = "0";
}
- $M->{name} = $mnam;
- $M->{zone} = {};
- $M->{ifup} = {};
- $M->{route} = {};
- $M->{delroute} = {};
-
- if ( defined( $S->{filename}->{$mnamindexnum} ) ) {
- $M->{filename} = $S->{filename}->{$mnamindexnum};
- }
- elsif ( defined( $S->{filename}->{default} ) ) {
- $M->{filename} = $S->{filename}->{default};
- }
-
- if ( defined( $S->{pxefilename}->{$mnamindexnum} ) ) {
- $M->{pxefilename} = $S->{pxefilename}->{$mnamindexnum};
- }
- elsif ( defined( $S->{pxefilename}->{default} ) ) {
- $M->{pxefilename} = $S->{pxefilename}->{default};
- }
-
- if ( defined( $S->{umlfilename}->{$mnamindexnum} ) ) {
- $M->{umlfilename} = $S->{umlfilename}->{$mnamindexnum};
- }
- elsif ( defined( $S->{umlfilename}->{default} ) ) {
- $M->{umlfilename} = $S->{umlfilename}->{default};
- }
-
- if ( defined( $S->{vmwfilename}->{$mnamindexnum} ) ) {
- $M->{vmwfilename} = $S->{vmwfilename}->{$mnamindexnum};
- }
- elsif ( defined( $S->{vmwfilename}->{default} ) ) {
- $M->{vmwfilename} = $S->{vmwfilename}->{default};
- }
-
- if ( defined( $S->{pxelinuxconf}->{$mnamindexnum} ) ) {
- $M->{pxelinuxconf} = $S->{pxelinuxconf}->{$mnamindexnum};
- }
- elsif ( defined( $S->{pxelinuxconf}->{default} ) ) {
- $M->{pxelinuxconf} = $S->{pxelinuxconf}->{default};
- }
-
- if ( defined( $S->{dns}->{$mnamindexnum} ) ) {
- $M->{dns} = $S->{dns}->{$mnamindexnum};
- }
- elsif ( defined( $S->{dns}->{default} ) ) {
- $M->{dns} = $S->{dns}->{default};
- }
-
- if ( defined( $S->{initrd}->{$mnamindexnum} ) ) {
- $M->{initrd} = $S->{initrd}->{$mnamindexnum};
+ $M->{'name'} = $mnam;
+ $M->{'zone'} = {};
+ $M->{'ifup'} = {};
+ $M->{'route'} = {};
+ $M->{'delroute'} = {};
+
+ if ( defined( $S->{'filename'}->{$mnamindexnum} ) ) {
+ $M->{'filename'} = $S->{'filename'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'filename'}->{'default'} ) ) {
+ $M->{'filename'} = $S->{'filename'}->{'default'};
+ }
+
+ if ( defined( $S->{'pxefilename'}->{$mnamindexnum} ) ) {
+ $M->{'pxefilename'} = $S->{'pxefilename'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'pxefilename'}->{'default'} ) ) {
+ $M->{'pxefilename'} = $S->{'pxefilename'}->{'default'};
+ }
+
+ if ( defined( $S->{'umlfilename'}->{$mnamindexnum} ) ) {
+ $M->{'umlfilename'} = $S->{'umlfilename'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'umlfilename'}->{'default'} ) ) {
+ $M->{'umlfilename'} = $S->{'umlfilename'}->{'default'};
+ }
+
+ if ( defined( $S->{'vmwfilename'}->{$mnamindexnum} ) ) {
+ $M->{'vmwfilename'} = $S->{'vmwfilename'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'vmwfilename'}->{'default'} ) ) {
+ $M->{'vmwfilename'} = $S->{'vmwfilename'}->{'default'};
+ }
+
+ if ( defined( $S->{'pxelinuxconf'}->{$mnamindexnum} ) ) {
+ $M->{'pxelinuxconf'} = $S->{'pxelinuxconf'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'pxelinuxconf'}->{'default'} ) ) {
+ $M->{'pxelinuxconf'} = $S->{'pxelinuxconf'}->{'default'};
+ }
+
+ if ( defined( $S->{'dns'}->{$mnamindexnum} ) ) {
+ $M->{'dns'} = $S->{'dns'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'dns'}->{'default'} ) ) {
+ $M->{'dns'} = $S->{'dns'}->{'default'};
+ }
+
+ if ( defined( $S->{'initrd'}->{$mnamindexnum} ) ) {
+ $M->{'initrd'} = $S->{'initrd'}->{$mnamindexnum};
}
- elsif ( defined( $S->{initrd}->{default} ) ) {
- $M->{initrd} = $S->{initrd}->{default};
+ elsif ( defined( $S->{'initrd'}->{'default'} ) ) {
+ $M->{'initrd'} = $S->{'initrd'}->{'default'};
}
else {
# pour ne pas �re oblig�d'ajouter "initrd.default = initrd" � # toutes les d�larations de serveurs dans private-network
- $M->{initrd} = 'initrd';
+ $M->{'initrd'} = 'initrd';
}
- if ( defined( $S->{cmdline}->{$mnamindexnum} ) ) {
- $M->{cmdline} = $S->{cmdline}->{$mnamindexnum};
+ if ( defined( $S->{'cmdline'}->{$mnamindexnum} ) ) {
+ $M->{'cmdline'} = $S->{'cmdline'}->{$mnamindexnum};
}
- elsif ( defined( $S->{cmdline}->{default} ) ) {
- $M->{cmdline} = $S->{cmdline}->{default};
+ elsif ( defined( $S->{'cmdline'}->{'default'} ) ) {
+ $M->{'cmdline'} = $S->{'cmdline'}->{'default'};
}
# vrrp?
my $vrrp;
- foreach $j ( keys %{ $S->{vrrp} } ) {
- if ( $S->{vrrp}->{$j} eq $s
- || ( $S->{vrrp}->{$j} eq "last" && $s == $last ) )
+ foreach $j ( keys %{ $S->{'vrrp'} } ) {
+ if ( $S->{'vrrp'}->{$j} eq $s
+ || ( $S->{'vrrp'}->{$j} eq "last" && $s == $last ) )
{
$vrrp = $j;
$mnam = $j;
@@ -962,7 +962,7 @@
my $goteth1 = 0;
# Traitement de chaque interface (ou reseau)
- foreach $i ( sort { cmpif( $a, $b ) } keys %{ $S->{interface} } ) {
+ foreach $i ( sort { cmpif( $a, $b ) } keys %{ $S->{'interface'} } ) {
my $nam;
if ( $i eq 'eth1' ) {
@@ -980,42 +980,42 @@
}
# Definition de l'entree DNS pour cette interface
- my $lan = $S->{interface}->{$i};
+ my $lan = $S->{'interface'}->{$i};
$nam = $mnam . "." . $lan;
- my $addr = $Z->{NETWORK}->{BY_NAME}->{$lan}->{network};
-
- if ( defined $S->{ipstart}->{$lan} ) {
- $start = $S->{ipstart}->{$lan};
- }
- elsif ( defined $S->{ipstart}->{default} ) {
- $start = $S->{ipstart}->{default};
+ my $addr = $Z->{'NETWORK'}->{'BY_NAME'}->{$lan}->{'network'};
+
+ if ( defined $S->{'ipstart'}->{$lan} ) {
+ $start = $S->{'ipstart'}->{$lan};
+ }
+ elsif ( defined $S->{'ipstart'}->{'default'} ) {
+ $start = $S->{'ipstart'}->{'default'};
}
else {
- $start = $S->{ipstart}->{ $S->{shortname} };
+ $start = $S->{'ipstart'}->{ $S->{'shortname'} };
}
if ( !defined $start ) {
Abort( $ERR_SYNTAX, "No ipstart for " . $nam );
}
- $M->{zone}->{$nam} = {};
- $M->{zone}->{$nam}->{FIELD} =
+ $M->{'zone'}->{$nam} = {};
+ $M->{'zone'}->{$nam}->{'FIELD'} =
Address( $addr, $start, $ipindex );
- $M->{zone}->{$nam}->{TYPE} = 'A';
+ $M->{'zone'}->{$nam}->{'TYPE'} = 'A';
# Adresse ethernet (pas forcement avec dhcp, eg tftp)
- if ( defined( $S->{ether}->{$mnamindexnum} ) ) {
- $M->{zone}->{$nam}->{ether} = $S->{ether}->{$mnamindexnum};
- }
-
- if ( defined( $S->{vmether}->{$mnamindexnum} ) ) {
- $M->{zone}->{$nam}->{vmether} =
- $S->{vmether}->{$mnamindexnum};
- }
- elsif ( defined( $S->{ether}->{$mnamindexnum} ) ) {
- $M->{zone}->{$nam}->{vmether} = '00:50:56:' . sprintf(
+ if ( defined( $S->{'ether'}->{$mnamindexnum} ) ) {
+ $M->{'zone'}->{$nam}->{'ether'} = $S->{'ether'}->{$mnamindexnum};
+ }
+
+ if ( defined( $S->{'vmether'}->{$mnamindexnum} ) ) {
+ $M->{'zone'}->{$nam}->{'vmether'} =
+ $S->{'vmether'}->{$mnamindexnum};
+ }
+ elsif ( defined( $S->{'ether'}->{$mnamindexnum} ) ) {
+ $M->{'zone'}->{$nam}->{'vmether'} = '00:50:56:' . sprintf(
"%02x:%02x:%02x",
unpack( "L", $mnam ) % 255, # L : long unsigned,
unpack( "L", reverse $mnam ) % 255,
@@ -1024,56 +1024,56 @@
}
# Definition de l'alias DNS principal
- if ( $S->{shortname} eq $lan ) {
- $M->{zone}->{$mnam} = {};
- $M->{zone}->{$mnam}->{FIELD} = $nam;
- $M->{zone}->{$mnam}->{TYPE} = 'CNAME';
+ if ( $S->{'shortname'} eq $lan ) {
+ $M->{'zone'}->{$mnam} = {};
+ $M->{'zone'}->{$mnam}->{'FIELD'} = $nam;
+ $M->{'zone'}->{$mnam}->{'TYPE'} = 'CNAME';
}
# Alias de vlan pour la classe
- if ( !defined( $Z->{ALIAS}->{ $srv . '.' . $lan } ) ) {
- $Z->{ALIAS}->{ $srv . '.' . $lan } = [];
+ if ( !defined( $Z->{'ALIAS'}->{ $srv . '.' . $lan } ) ) {
+ $Z->{'ALIAS'}->{ $srv . '.' . $lan } = [];
}
if (
- scalar( grep( /^$nam$/, $Z->{ALIAS}->{ $srv . '.' . $lan } )
+ scalar( grep( /^$nam$/, $Z->{'ALIAS'}->{ $srv . '.' . $lan } )
) == 0 )
{
- push ( @{ $Z->{ALIAS}->{ $srv . '.' . $lan } },
- $M->{zone}->{$nam}->{FIELD} );
+ push ( @{ $Z->{'ALIAS'}->{ $srv . '.' . $lan } },
+ $M->{'zone'}->{$nam}->{'FIELD'} );
}
# Alias de vlan pour le cluster
if ( $nodeslast > 0 ) {
if ( !defined
- ( $Z->{ALIAS}->{ $srv . $cnamindex . '.' . $lan } ) )
+ ( $Z->{'ALIAS'}->{ $srv . $cnamindex . '.' . $lan } ) )
{
- $Z->{ALIAS}->{ $srv . $cnamindex . '.' . $lan } = [];
+ $Z->{'ALIAS'}->{ $srv . $cnamindex . '.' . $lan } = [];
}
if (
scalar(
grep( /^$nam$/,
- $Z->{ALIAS}->{ $srv . $cnamindex . '.' . $lan } ) ) ==
+ $Z->{'ALIAS'}->{ $srv . $cnamindex . '.' . $lan } ) ) ==
0 )
{
- push ( @{ $Z->{ALIAS}->{ $srv
+ push ( @{ $Z->{'ALIAS'}->{ $srv
. $cnamindex . '.'
- . $lan } }, $M->{zone}->{$nam}->{FIELD} );
+ . $lan } }, $M->{'zone'}->{$nam}->{'FIELD'} );
}
}
# Definition de l'entree dans /etc/network/interface
- if ( defined( $S->{dhcp} ) && $i eq $S->{dhcp} ) {
- $M->{ifup}->{dhcp} = $j;
+ if ( defined( $S->{'dhcp'} ) && $i eq $S->{'dhcp'} ) {
+ $M->{'ifup'}->{'dhcp'} = $j;
}
else {
- $M->{ifup}->{$nam} = $j;
+ $M->{'ifup'}->{$nam} = $j;
}
# Traitement des routes
my $r;
foreach $r ( keys %{ $S->{$i} } ) {
if ( $r =~ m/^route/ ) {
- $M->{route}->{$j}->{$r} = $S->{$i}->{$r};
+ $M->{'route'}->{$j}->{$r} = $S->{$i}->{$r};
}
}
@@ -1081,41 +1081,41 @@
my $dr;
foreach $dr ( keys %{ $S->{$i} } ) {
if ( $dr =~ m/^delroute/ ) {
- $M->{delroute}->{$j}->{$dr} = $S->{$i}->{$dr};
+ $M->{'delroute'}->{$j}->{$dr} = $S->{$i}->{$dr};
}
}
# Traitement des mtu
- if ( defined( $S->{$i}->{mtu} ) ) {
- $M->{mtu}->{$j} = $S->{$i}->{mtu};
+ if ( defined( $S->{$i}->{'mtu'} ) ) {
+ $M->{'mtu'}->{$j} = $S->{$i}->{'mtu'};
}
# Traitement des media
- if ( defined( $S->{$i}->{media} ) ) {
- $M->{media}->{$j} = $S->{$i}->{media};
+ if ( defined( $S->{$i}->{'media'} ) ) {
+ $M->{'media'}->{$j} = $S->{$i}->{'media'};
}
# Traitement des noarp
- if ( defined( $S->{$i}->{noarp} ) ) {
- $M->{noarp}->{$j} = $S->{$i}->{noarp};
+ if ( defined( $S->{$i}->{'noarp'} ) ) {
+ $M->{'noarp'}->{$j} = $S->{$i}->{'noarp'};
}
}
# Definition des alias DNS
- foreach $j ( keys %{ $S->{alias} } ) {
+ foreach $j ( keys %{ $S->{'alias'} } ) {
my $lan;
my $nam;
my $addr;
# Alias par machine
- $lan = $S->{alias}->{$j};
+ $lan = $S->{'alias'}->{$j};
$nam = $j . $mnamindex;
# ne pas ecraser si shortname deja existant
- if ( !defined $M->{zone}->{$nam} ) {
- $M->{zone}->{$nam} = {};
- $M->{zone}->{$nam}->{FIELD} = $mnam . "." . $lan;
- $M->{zone}->{$nam}->{TYPE} = 'CNAME';
+ if ( !defined $M->{'zone'}->{$nam} ) {
+ $M->{'zone'}->{$nam} = {};
+ $M->{'zone'}->{$nam}->{'FIELD'} = $mnam . "." . $lan;
+ $M->{'zone'}->{$nam}->{'TYPE'} = 'CNAME';
}
# Alias "round robin" pour l'ensemble de cette classe de serveurs
@@ -1125,47 +1125,47 @@
# $Z->{ALIAS}->{$j} = [];
#}
#push ( @{ $Z->{ALIAS}->{$j} }, $M->{zone}->{$nam}->{FIELD} );
- if ( $s == 0 && $n == 0 && !defined $M->{zone}->{$j} ) {
- $M->{zone}->{$j} = {};
- $M->{zone}->{$j}->{FIELD} = $srv . "." . $lan;
- $M->{zone}->{$j}->{TYPE} = 'CNAME';
+ if ( $s == 0 && $n == 0 && !defined $M->{'zone'}->{$j} ) {
+ $M->{'zone'}->{$j} = {};
+ $M->{'zone'}->{$j}->{'FIELD'} = $srv . "." . $lan;
+ $M->{'zone'}->{$j}->{'TYPE'} = 'CNAME';
}
if ( $nodeslast > 0
&& $s == 0
&& $n == 0
- && !defined $M->{zone}->{ $j . $cnamindex } )
+ && !defined $M->{'zone'}->{ $j . $cnamindex } )
{
- $M->{zone}->{ $j . $cnamindex } = {};
- $M->{zone}->{ $j . $cnamindex }->{FIELD} =
+ $M->{'zone'}->{ $j . $cnamindex } = {};
+ $M->{'zone'}->{ $j . $cnamindex }->{'FIELD'} =
$srv . $cnamindex . "." . $lan;
- $M->{zone}->{ $j . $cnamindex }->{TYPE} = 'CNAME';
+ $M->{'zone'}->{ $j . $cnamindex }->{'TYPE'} = 'CNAME';
}
}
# Insertion du serveur dans sa classe
- $N->{SRVLIST}->{$mnam} = $M;
+ $N->{'SRVLIST'}->{$mnam} = $M;
}
# Vips du cluster
}
# Insertion de la classe de serveurs dans la structure principale
- if ( defined $S->{ipstart}->{ $S->{shortname} } ) {
- $start = $S->{ipstart}->{ $S->{shortname} };
+ if ( defined $S->{'ipstart'}->{ $S->{'shortname'} } ) {
+ $start = $S->{'ipstart'}->{ $S->{'shortname'} };
}
else {
- $start = $S->{ipstart}->{default};
- }
-
- $Z->{SERVERS}->{BY_ADDR}
- ->{ Address( $Z->{NETWORK}->{BY_NAME}->{ $S->{shortname} }->{network},
+ $start = $S->{'ipstart'}->{'default'};
+ }
+
+ $Z->{'SERVERS'}->{'BY_ADDR'}
+ ->{ Address( $Z->{'NETWORK'}->{'BY_NAME'}->{ $S->{'shortname'} }->{'network'},
$start, 0 ) } = $N;
- $Z->{SERVERS}->{BY_NAME}->{$srv} = $N;
+ $Z->{'SERVERS'}->{'BY_NAME'}->{$srv} = $N;
# Remapping UM
if ($UML) {
my $mnam;
- foreach $mnam ( keys %{ $N->{SRVLIST} } ) {
+ foreach $mnam ( keys %{ $N->{'SRVLIST'} } ) {
UMRemap_If( $Z, $mnam );
}
}
@@ -1189,10 +1189,10 @@
my $soa;
# Verification de l'unicite de la declaration
- if ( defined( $Z->{SOA}->{name} ) ) {
+ if ( defined( $Z->{'SOA'}->{'name'} ) ) {
Abort( $ERR_SYNTAX,
"Declaration zone dupliquee ("
- . $Z->{SOA}->{name} . ") et (" . $zone . ")" );
+ . $Z->{'SOA'}->{'name'} . ") et (" . $zone . ")" );
}
# Ajout des informations SOA
@@ -1204,48 +1204,48 @@
$t_secs = time();
$t_text = localtime($t_secs);
- $mail = $S->{mail};
+ $mail = $S->{'mail'};
$mail =~ s/@/\./;
$mail =~ s/([^\.])$/$1./;
- $soa = $S->{soa};
+ $soa = $S->{'soa'};
$soa =~ s/([^\.])$/$1./;
- if ( defined $S->{serial} && $S->{serial} =~ m|([\d.]+)| ) {
+ if ( defined $S->{'serial'} && $S->{'serial'} =~ m|([\d.]+)| ) {
my $rev = $1;
$rev =~ s/\.//g;
- $Z->{SOA}->{serial} = $rev . "\t; Serial (" . $S->{serial} . ")";
+ $Z->{'SOA'}->{'serial'} = $rev . "\t; Serial (" . $S->{'serial'} . ")";
}
else {
- $Z->{SOA}->{serial} = $t_secs . "\t; Serial (" . $t_text . ")";
- }
- $Z->{SOA}->{name} = $zone;
- $Z->{SOA}->{comment} = $S->{comment};
- $Z->{SOA}->{soa} = $soa;
- $Z->{SOA}->{mail} = $mail;
- $Z->{SOA}->{refresh} = $S->{refresh};
- $Z->{SOA}->{retry} = $S->{retry};
- $Z->{SOA}->{expire} = $S->{expire};
- $Z->{SOA}->{negttl} = $S->{negttl};
- $Z->{SOA}->{ttl} = $S->{ttl};
-
- if ( defined $S->{dhcpvlan} ) {
- @{ $Z->{SOA}->{dhcpvlan} } = split ( /[,\s]+/, $S->{dhcpvlan} );
+ $Z->{'SOA'}->{'serial'} = $t_secs . "\t; Serial (" . $t_text . ")";
+ }
+ $Z->{'SOA'}->{'name'} = $zone;
+ $Z->{'SOA'}->{'comment'} = $S->{'comment'};
+ $Z->{'SOA'}->{'soa'} = $soa;
+ $Z->{'SOA'}->{'mail'} = $mail;
+ $Z->{'SOA'}->{'refresh'} = $S->{'refresh'};
+ $Z->{'SOA'}->{'retry'} = $S->{'retry'};
+ $Z->{'SOA'}->{'expire'} = $S->{'expire'};
+ $Z->{'SOA'}->{'negttl'} = $S->{'negttl'};
+ $Z->{'SOA'}->{'ttl'} = $S->{'ttl'};
+
+ if ( defined $S->{'dhcpvlan'} ) {
+ @{ $Z->{'SOA'}->{'dhcpvlan'} } = split ( /[,\s]+/, $S->{'dhcpvlan'} );
}
else {
- @{ $Z->{SOA}->{dhcpvlan} } = @DEFAULTDHCPVLAN;
+ @{ $Z->{SOA}->{'dhcpvlan'} } = @DEFAULTDHCPVLAN;
}
# Ajout des champs NS
- foreach $c ( sort ( keys %{ $S->{ns} } ) ) {
- push ( @{ $Z->{NS} }, $S->{ns}->{$c} );
+ foreach $c ( sort ( keys %{ $S->{'ns'} } ) ) {
+ push ( @{ $Z->{'NS'} }, $S->{'ns'}->{$c} );
}
# Ajout des champs MX
- foreach $c ( sort ( keys %{ $S->{mx} } ) ) {
- push ( @{ $Z->{MX} }, $S->{mx}->{$c} );
+ foreach $c ( sort ( keys %{ $S->{'mx'} } ) ) {
+ push ( @{ $Z->{'MX'} }, $S->{'mx'}->{$c} );
}
}
@@ -1262,36 +1262,36 @@
my $N = {};
# Verification des declarations
- if ( !defined( $S->{network} ) ) {
+ if ( !defined( $S->{'network'} ) ) {
Abort( $ERR_SYNTAX,
"Adresse de reseau manquante pour le reseau " . $net );
}
- if ( !defined( $S->{netmask} ) ) {
+ if ( !defined( $S->{'netmask'} ) ) {
Abort( $ERR_SYNTAX,
"Masque de reseau manquant pour le reseau " . $net );
}
- if ( defined( $Z->{NETWORK}->{ $S->{network} } ) ) {
+ if ( defined( $Z->{'NETWORK'}->{ $S->{'network'} } ) ) {
Abort( $ERR_SYNTAX,
"Adresse de reseau dupliquee ("
- . $S->{network}
+ . $S->{'network'}
. ") pour le reseau " . $net );
}
# Calcul des adresses, netmasks et broadcasts
- $N->{name} = $net;
- $N->{network} = $S->{network};
- $N->{netmask} = $S->{netmask};
- $N->{broadcast} = Broadcast( $N->{network}, $N->{netmask} );
- $N->{prefix} = netmask2prefix( $S->{netmask} );
- $N->{mtu} = $S->{mtu};
- $N->{tag} = $S->{tag};
- $N->{media} = $S->{media};
- $N->{comment} = $S->{comment};
+ $N->{'name'} = $net;
+ $N->{'network'} = $S->{'network'};
+ $N->{'netmask'} = $S->{'netmask'};
+ $N->{'broadcast'} = Broadcast( $N->{'network'}, $N->{'netmask'} );
+ $N->{'prefix'} = netmask2prefix( $S->{'netmask'} );
+ $N->{'mtu'} = $S->{'mtu'};
+ $N->{'tag'} = $S->{'tag'};
+ $N->{'media'} = $S->{'media'};
+ $N->{'comment'} = $S->{'comment'};
# Insertion dans la structure principale
- $Z->{NETWORK}->{BY_ADDR}->{ $N->{network} } = $N;
- $Z->{NETWORK}->{BY_NAME}->{ $N->{name} } = $N;
+ $Z->{'NETWORK'}->{'BY_ADDR'}->{ $N->{'network'} } = $N;
+ $Z->{'NETWORK'}->{'BY_NAME'}->{ $N->{'name'} } = $N;
}
#
@@ -1305,13 +1305,13 @@
# !!!!!! Attention ne marchera pas si la classe se termine par de chiffres !!!!
# Gros fix qui tache
- if ( defined $Z->{SERVERS}->{BY_NAME}->{$h} ) {
+ if ( defined $Z->{'SERVERS'}->{'BY_NAME'}->{$h} ) {
return ($h);
}
# Gros fix qui tache encore plus...
$h =~ s/(\d)[a-z]+$/$1/;
- if ( defined $Z->{SERVERS}->{BY_NAME}->{$h} ) {
+ if ( defined $Z->{'SERVERS'}->{'BY_NAME'}->{$h} ) {
return ($h);
}
@@ -1403,7 +1403,7 @@
my $s;
my $dhcpvlanregex =
- '^([^.]+)\.(' . join ( '|', @{ $Z->{SOA}->{dhcpvlan} } ) . ')(\.*)?$';
+ '^([^.]+)\.(' . join ( '|', @{ $Z->{'SOA'}->{'dhcpvlan'} } ) . ')(\.*)?$';
open( FIC, ">" . $fic ) || die "Cannot open " . $fic . " : " . $!;
$oldout = select(FIC);
@@ -1418,32 +1418,32 @@
print "\n";
- foreach $vlan ( @{ $Z->{SOA}->{dhcpvlan} } ) {
- printf( "# %s\n", $Z->{NETWORK}->{BY_NAME}->{$vlan}->{comment} );
+ foreach $vlan ( @{ $Z->{'SOA'}->{'dhcpvlan'} } ) {
+ printf( "# %s\n", $Z->{'NETWORK'}->{'BY_NAME'}->{$vlan}->{'comment'} );
printf(
"subnet %s netmask %s {\n}\n\n",
- $Z->{NETWORK}->{BY_NAME}->{$vlan}->{network},
- $Z->{NETWORK}->{BY_NAME}->{$vlan}->{netmask}
+ $Z->{'NETWORK'}->{'BY_NAME'}->{$vlan}->{'network'},
+ $Z->{'NETWORK'}->{'BY_NAME'}->{$vlan}->{'netmask'}
);
}
print "\n";
- foreach $s ( sort ( keys %{ $Z->{SERVERS}->{BY_ADDR} } ) ) {
+ foreach $s ( sort ( keys %{ $Z->{'SERVERS'}->{'BY_ADDR'} } ) ) {
my $m;
- my $N = $Z->{SERVERS}->{BY_ADDR}->{$s};
-
- print "# ", $N->{comment}, "\n";
- print "# number: ", $N->{number}, "\n";
- print "# nodes: ", $N->{nodes}, "\n"
- if ( defined( $N->{nodes} ) && $N->{nodes} > 1 );
+ my $N = $Z->{'SERVERS'}->{'BY_ADDR'}->{$s};
+
+ print "# ", $N->{'comment'}, "\n";
+ print "# number: ", $N->{'number'}, "\n";
+ print "# nodes: ", $N->{'nodes'}, "\n"
+ if ( defined( $N->{'nodes'} ) && $N->{'nodes'} > 1 );
print "\n";
- foreach $m ( sort ( keys %{ $N->{SRVLIST} } ) ) {
+ foreach $m ( sort ( keys %{ $N->{'SRVLIST'} } ) ) {
my $nam;
- my $M = $N->{SRVLIST}->{$m};
-
- foreach $nam ( sort ( keys %{ $M->{zone} } ) ) {
+ my $M = $N->{'SRVLIST'}->{$m};
+
+ foreach $nam ( sort ( keys %{ $M->{'zone'} } ) ) {
if ( $nam =~ /$dhcpvlanregex/ ) {
my $nam2 = $1;
@@ -1456,42 +1456,42 @@
$hostnum = 0;
}
- if ( defined( $M->{zone}->{$nam}->{ether} ) ) {
+ if ( defined( $M->{'zone'}->{$nam}->{'ether'} ) ) {
printf( "host %s {\n", $nam2 );
printf(
" hardware ethernet %s;\n",
- $M->{zone}->{$nam}->{ether}
+ $M->{'zone'}->{$nam}->{'ether'}
);
printf(
" fixed-address %s.%s;\n", $nam,
- $Z->{SOA}->{name}
+ $Z->{'SOA'}->{'name'}
);
- if ( defined( $M->{filename} ) && $M->{filename} ne "" )
+ if ( defined( $M->{'filename'} ) && $M->{'filename'} ne "" )
{
- printf( " filename \"%s\";\n", $M->{filename} );
+ printf( " filename \"%s\";\n", $M->{'filename'} );
}
- if ( $M->{initrd} ) {
- printf qq{# initrd "%s";\n}, $M->{initrd};
+ if ( $M->{'initrd'} ) {
+ printf qq{# initrd "%s";\n}, $M->{'initrd'};
}
- if ( $M->{cmdline} ) {
- printf qq{# cmdline "%s";\n}, $M->{cmdline};
+ if ( $M->{'cmdline'} ) {
+ printf qq{# cmdline "%s";\n}, $M->{'cmdline'};
}
- if ( defined( $M->{pxefilename} )
- && $M->{pxefilename} ne "" )
+ if ( defined( $M->{'pxefilename'} )
+ && $M->{'pxefilename'} ne "" )
{
printf( "# pxefilename \"%s\";\n",
- $M->{pxefilename} );
+ $M->{'pxefilename'} );
}
- if ( defined( $M->{pxelinuxconf} )
- && $M->{pxelinuxconf} ne "" )
+ if ( defined( $M->{'pxelinuxconf'} )
+ && $M->{'pxelinuxconf'} ne "" )
{
printf( " option option-209 \"%s\";\n",
- $M->{pxelinuxconf} );
+ $M->{'pxelinuxconf'} );
}
my @dns = Get_dns_from_zone( $Z, $M, $hostnum );
@@ -1503,30 +1503,30 @@
print "}\n\n";
}
- if ( defined( $M->{zone}->{$nam}->{vmether} )
+ if ( defined( $M->{'zone'}->{$nam}->{'vmether'} )
&& ( $VMWARE || $UML ) )
{
printf( "host %s {\n", $nam2 );
printf(
" hardware ethernet %s;\n",
- $M->{zone}->{$nam}->{vmether}
+ $M->{'zone'}->{$nam}->{'vmether'}
);
printf(
" fixed-address %s.%s;\n", $nam,
- $Z->{SOA}->{name}
+ $Z->{'SOA'}->{'name'}
);
- if ( defined( $M->{vmwfilename} )
- && $M->{vmwfilename} ne "" )
+ if ( defined( $M->{'vmwfilename'} )
+ && $M->{'vmwfilename'} ne "" )
{
- printf( " filename \"%s\";\n", $M->{vmwfilename} );
+ printf( " filename \"%s\";\n", $M->{'vmwfilename'} );
}
- if ( defined( $M->{pxelinuxconf} )
- && $M->{pxelinuxconf} ne "" )
+ if ( defined( $M->{'pxelinuxconf'} )
+ && $M->{'pxelinuxconf'} ne "" )
{
printf( " option option-209 \"%s\";\n",
- $M->{pxelinuxconf} );
+ $M->{'pxelinuxconf'} );
}
my @dns = Get_dns_from_zone( $Z, $M, $hostnum );
@@ -1562,34 +1562,34 @@
close(PXETEMPLATE);
my $dhcpvlanregex =
- '^([^.]+)\.(' . join ( '|', @{ $Z->{SOA}->{dhcpvlan} } ) . ')(\.*)?$';
-
- foreach $s ( sort ( keys %{ $Z->{SERVERS}->{BY_ADDR} } ) ) {
+ '^([^.]+)\.(' . join ( '|', @{ $Z->{'SOA'}->{'dhcpvlan'} } ) . ')(\.*)?$';
+
+ foreach $s ( sort ( keys %{ $Z->{'SERVERS'}->{'BY_ADDR'} } ) ) {
my $m;
- my $N = $Z->{SERVERS}->{BY_ADDR}->{$s};
-
- foreach $m ( sort ( keys %{ $N->{SRVLIST} } ) ) {
+ my $N = $Z->{'SERVERS'}->{'BY_ADDR'}->{$s};
+
+ foreach $m ( sort ( keys %{ $N->{'SRVLIST'} } ) ) {
my $nam;
- my $M = $N->{SRVLIST}->{$m};
-
- foreach $nam ( sort ( keys %{ $M->{zone} } ) ) {
+ my $M = $N->{'SRVLIST'}->{$m};
+
+ foreach $nam ( sort ( keys %{ $M->{'zone'} } ) ) {
if ( $nam =~ /$dhcpvlanregex/ ) {
my $nam2 = $1;
#my $vlan2 = $2;
- if ( defined( $M->{zone}->{$nam}->{ether} )
- && defined( $M->{filename} )
- && defined( $M->{pxefilename} ) )
+ if ( defined( $M->{'zone'}->{$nam}->{'ether'} )
+ && defined( $M->{'filename'} )
+ && defined( $M->{'pxefilename'} ) )
{
- if ( $M->{filename} ne 'pxelinux.0' ) {
+ if ( $M->{'filename'} ne 'pxelinux.0' ) {
Warn( $ERR_SYNTAX,
"Mk_pxelinuxconf[" . $nam2
. "]: pxefilename exists but filename is not pxelinux.0!"
);
}
- my $addr = Resolv( $nam . '.' . $Z->{SOA}->{name}, $Z );
+ my $addr = Resolv( $nam . '.' . $Z->{'SOA'}->{'name'}, $Z );
if ( defined $addr
- && $addr ne $nam . '.' . $Z->{SOA}->{name} )
+ && $addr ne $nam . '.' . $Z->{'SOA'}->{'name'} )
{
my $hexaddr =
sprintf( '%02X%02X%02X%02X',
@@ -1609,10 +1609,10 @@
s/%KERNEL%/$M->{pxefilename}/gs;
$temptemplatecontent =~
s/%INITRD%/$M->{initrd}/gs;
- my $ramdisk_size = Get_Ramdisk_size_from_Initrd($M->{initrd});
+ my $ramdisk_size = Get_Ramdisk_size_from_Initrd($M->{'initrd'});
$temptemplatecontent =~
s/%RAMDISK_SIZE%/$ramdisk_size/gs;
- my $cmdline = $M->{cmdline} || '';
+ my $cmdline = $M->{'cmdline'} || '';
$temptemplatecontent =~
s/%CMDLINE%/$cmdline/gs;
print PXELINUXCFG $temptemplatecontent;
@@ -1639,25 +1639,25 @@
print ";;\n";
print ";; Fichier de configuration BIND\n";
print ";;\n";
- print ";; ", $Z->{SOA}->{comment}, "\n";
+ print ";; ", $Z->{'SOA'}->{'comment'}, "\n";
print
";;============================================================================\n\n";
print "\n";
- printf "\$TTL %s\n", $Z->{SOA}->{ttl};
- printf "%-29s IN SOA\t%s %s (\n", '@', $Z->{SOA}->{soa}, $Z->{SOA}->{mail};
- printf "%-30s%s\n", '', $Z->{SOA}->{serial};
- printf "%-30s%s\n", '', $Z->{SOA}->{refresh};
- printf "%-30s%s\n", '', $Z->{SOA}->{retry};
- printf "%-30s%s\n", '', $Z->{SOA}->{expire};
- printf "%-30s%s\n", '', $Z->{SOA}->{negttl};
+ printf "\$TTL %s\n", $Z->{'SOA'}->{'ttl'};
+ printf "%-29s IN SOA\t%s %s (\n", '@', $Z->{'SOA'}->{'soa'}, $Z->{'SOA'}->{'mail'};
+ printf "%-30s%s\n", '', $Z->{'SOA'}->{'serial'};
+ printf "%-30s%s\n", '', $Z->{'SOA'}->{'refresh'};
+ printf "%-30s%s\n", '', $Z->{'SOA'}->{'retry'};
+ printf "%-30s%s\n", '', $Z->{'SOA'}->{'expire'};
+ printf "%-30s%s\n", '', $Z->{'SOA'}->{'negttl'};
printf "%-30s%s\n\n", '', ')';
- foreach $n ( @{ $Z->{NS} } ) {
+ foreach $n ( @{ $Z->{'NS'} } ) {
printf "%-29s IN NS\t%s\n", '', $n;
}
print "\n";
- foreach $m ( @{ $Z->{MX} } ) {
+ foreach $m ( @{ $Z->{'MX'} } ) {
printf "%-29s IN MX\t%s\n", '', $m;
}
print "\n";
@@ -1694,16 +1694,16 @@
print
";;============================================================================\n\n";
- foreach $n ( sort ( keys %{ $Z->{NETWORK}->{BY_ADDR} } ) ) {
- my $N = $Z->{NETWORK}->{BY_ADDR}->{$n};
- print "; ", $N->{comment}, "\n";
+ foreach $n ( sort ( keys %{ $Z->{'NETWORK'}->{'BY_ADDR'} } ) ) {
+ my $N = $Z->{'NETWORK'}->{'BY_ADDR'}->{$n};
+ print "; ", $N->{'comment'}, "\n";
print
";----------------------------------------------------------------------------\n";
- printf( "%-29s IN A\t%s\n", "network." . $N->{name}, $N->{network} );
- printf( "%-29s IN A\t%s\n", "netmask." . $N->{name}, $N->{netmask} );
- printf( "%-29s IN A\t%s\n", "prefix." . $N->{name}, $N->{prefix} );
- printf( "%-29s IN A\t%s\n", "broadcast." . $N->{name},
- $N->{broadcast} );
+ printf( "%-29s IN A\t%s\n", "network." . $N->{'name'}, $N->{'network'} );
+ printf( "%-29s IN A\t%s\n", "netmask." . $N->{'name'}, $N->{'netmask'} );
+ printf( "%-29s IN A\t%s\n", "prefix." . $N->{'name'}, $N->{'prefix'} );
+ printf( "%-29s IN A\t%s\n", "broadcast." . $N->{'name'},
+ $N->{'broadcast'} );
print "\n";
}
@@ -1713,22 +1713,22 @@
print
";;============================================================================\n\n";
- foreach $s ( sort ( keys %{ $Z->{SERVERS}->{BY_ADDR} } ) ) {
- my $N = $Z->{SERVERS}->{BY_ADDR}->{$s};
- print "; ", $N->{comment}, "\n";
- print "; number: ", $N->{number}, "\n";
- print "; nodes: ", $N->{nodes}, "\n"
- if ( defined( $N->{nodes} ) && $N->{nodes} > 1 );
+ foreach $s ( sort ( keys %{ $Z->{'SERVERS'}->{'BY_ADDR'} } ) ) {
+ my $N = $Z->{'SERVERS'}->{'BY_ADDR'}->{$s};
+ print "; ", $N->{'comment'}, "\n";
+ print "; number: ", $N->{'number'}, "\n";
+ print "; nodes: ", $N->{'nodes'}, "\n"
+ if ( defined( $N->{'nodes'} ) && $N->{'nodes'} > 1 );
print
";----------------------------------------------------------------------------\n";
- foreach $m ( sort ( keys %{ $N->{SRVLIST} } ) ) {
- my $M = $N->{SRVLIST}->{$m};
+ foreach $m ( sort ( keys %{ $N->{'SRVLIST'} } ) ) {
+ my $M = $N->{'SRVLIST'}->{$m};
my $nam;
- foreach $nam ( sort ( keys %{ $M->{zone} } ) ) {
- printf( "%-29s IN %s\t%s\n", $nam, $M->{zone}->{$nam}->{TYPE},
- $M->{zone}->{$nam}->{FIELD} );
+ foreach $nam ( sort ( keys %{ $M->{'zone'} } ) ) {
+ printf( "%-29s IN %s\t%s\n", $nam, $M->{'zone'}->{$nam}->{'TYPE'},
+ $M->{'zone'}->{$nam}->{'FIELD'} );
}
print "\n";
}
@@ -1740,10 +1740,10 @@
print
";;============================================================================\n\n";
- foreach $j ( sort ( keys %{ $Z->{ALIAS} } ) ) {
+ foreach $j ( sort ( keys %{ $Z->{'ALIAS'} } ) ) {
my $i;
- foreach $i ( sort ( @{ $Z->{ALIAS}->{$j} } ) ) {
+ foreach $i ( sort ( @{ $Z->{'ALIAS'}->{$j} } ) ) {
printf( "%-29s IN A\t%s\n", $j, $i );
}
}
@@ -1770,14 +1770,14 @@
my $resolve = 0;
# Recherche des informations dans la base de configuration
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
if ( !ref($N) ) {
Abort( $ERR_SYNTAX,
"La classe de serveurs "
. $hostclass
. " n'existe pas dans la configuration" );
}
- my $M = $N->{SRVLIST}->{$host};
+ my $M = $N->{'SRVLIST'}->{$host};
if ( !ref($M) ) {
Abort( $ERR_SYNTAX,
@@ -1794,10 +1794,10 @@
print "iface lo inet loopback\n";
# Ajout de l'interface automatique si presente
- if ( defined( $M->{ifup}->{dhcp} ) ) {
- print "auto ", $M->{ifup}->{dhcp}, "\n";
- print "iface ", $M->{ifup}->{dhcp}, " inet dhcp\n";
- Mk_routes( $M, $Z, $M->{ifup}->{dhcp} );
+ if ( defined( $M->{'ifup'}->{'dhcp'} ) ) {
+ print "auto ", $M->{'ifup'}->{'dhcp'}, "\n";
+ print "iface ", $M->{'ifup'}->{'dhcp'}, " inet dhcp\n";
+ Mk_routes( $M, $Z, $M->{'ifup'}->{'dhcp'} );
}
else {
$resolve = 1;
@@ -1805,70 +1805,70 @@
# Ajout des interfaces statiques
#foreach $nam ( sort { $M->{ifup}->{$a} cmp $M->{ifup}->{$b} }
- foreach my $nam ( sort { cmpif( $M->{ifup}->{$a}, $M->{ifup}->{$b} ) }
- keys %{ $M->{ifup} } )
+ foreach my $nam ( sort { cmpif( $M->{'ifup'}->{$a}, $M->{'ifup'}->{$b} ) }
+ keys %{ $M->{'ifup'} } )
{
next if ( $nam eq 'dhcp' );
- print "\nauto ", $M->{ifup}->{$nam}, "\n";
- print "iface ", $M->{ifup}->{$nam}, " inet static\n";
+ print "\nauto ", $M->{'ifup'}->{$nam}, "\n";
+ print "iface ", $M->{'ifup'}->{$nam}, " inet static\n";
my $net = $nam;
$net =~ s/^[^\.]+\.//;
- my $NET = $Z->{NETWORK}->{BY_NAME}->{$net};
+ my $NET = $Z->{'NETWORK'}->{'BY_NAME'}->{$net};
if ($resolve) {
- print "\taddress ", $M->{zone}->{$nam}->{FIELD}, "\n";
- print "\tnetmask ", $NET->{netmask}, "\n";
- print "\tbroadcast ", $NET->{broadcast}, "\n";
- print "\tnetwork ", $NET->{network}, "\n";
+ print "\taddress ", $M->{'zone'}->{$nam}->{'FIELD'}, "\n";
+ print "\tnetmask ", $NET->{'netmask'}, "\n";
+ print "\tbroadcast ", $NET->{'broadcast'}, "\n";
+ print "\tnetwork ", $NET->{'network'}, "\n";
}
else {
- print "\taddress " . $nam . '.' . $Z->{SOA}->{name} . "\n";
+ print "\taddress " . $nam . '.' . $Z->{'SOA'}->{'name'} . "\n";
print "\tnetmask netmask." . $net . '.'
- . $Z->{SOA}->{name} . "\n";
+ . $Z->{'SOA'}->{'name'} . "\n";
print "\tbroadcast broadcast." . $net . '.'
- . $Z->{SOA}->{name} . "\n";
+ . $Z->{'SOA'}->{'name'} . "\n";
print "\tnetwork network." . $net . '.'
- . $Z->{SOA}->{name} . "\n";
+ . $Z->{'SOA'}->{'name'} . "\n";
}
my $defaultmtu = ($UML) ? 1496 : 1500;
- if ( $M->{ifup}->{$nam} =~ m/^([^:.]+)\.(\d+)(:\d+)?$/ ) {
+ if ( $M->{'ifup'}->{$nam} =~ m/^([^:.]+)\.(\d+)(:\d+)?$/ ) {
my $ifname = $1;
my $iftag = $2;
print "\tvlan_raw_device " . $ifname . "\n";
$defaultmtu = 1496;
- if ( defined( $NET->{tag} ) && $NET->{tag} != $iftag ) {
+ if ( defined( $NET->{'tag'} ) && $NET->{'tag'} != $iftag ) {
Warn( $ERR_SYNTAX,
"Les tags de "
- . $M->{ifup}->{$nam}
+ . $M->{'ifup'}->{$nam}
. " et de " . $net
. " different (" . $iftag . "!="
- . $NET->{tag} . ")!" );
- }
- }
-
- if ( defined( $NET->{mtu} ) ) {
- $defaultmtu = $NET->{mtu};
+ . $NET->{'tag'} . ")!" );
+ }
+ }
+
+ if ( defined( $NET->{'mtu'} ) ) {
+ $defaultmtu = $NET->{'mtu'};
}
print "\tup ifconfig "
- . $M->{ifup}->{$nam} . " mtu "
- . ( ( defined( $M->{mtu}->{ $M->{ifup}->{$nam} } ) )
- ? $M->{mtu}->{ $M->{ifup}->{$nam} }
+ . $M->{'ifup'}->{$nam} . " mtu "
+ . ( ( defined( $M->{'mtu'}->{ $M->{'ifup'}->{$nam} } ) )
+ ? $M->{'mtu'}->{ $M->{'ifup'}->{$nam} }
: $defaultmtu ) . " "
- . ( ( defined( $M->{noarp}->{ $M->{ifup}->{$nam} } ) ) ? "-arp"
+ . ( ( defined( $M->{'noarp'}->{ $M->{'ifup'}->{$nam} } ) ) ? "-arp"
: "arp" ) . "\n";
my $defaultmedia = "autoneg on";
- if ( defined( $NET->{media} ) ) {
- $defaultmedia = $NET->{media};
- }
- if ( defined( $M->{media}->{ $M->{ifup}->{$nam} } ) ) {
- $defaultmedia = $M->{media}->{ $M->{ifup}->{$nam} };
+ if ( defined( $NET->{'media'} ) ) {
+ $defaultmedia = $NET->{'media'};
+ }
+ if ( defined( $M->{'media'}->{ $M->{'ifup'}->{$nam} } ) ) {
+ $defaultmedia = $M->{'media'}->{ $M->{'ifup'}->{$nam} };
}
my @defaultmedia = split ( ' ', $defaultmedia );
@@ -1921,7 +1921,7 @@
. " || true\n";
}
- Mk_routes( $M, $Z, $M->{ifup}->{$nam} );
+ Mk_routes( $M, $Z, $M->{'ifup'}->{$nam} );
}
print "\n";
@@ -1958,60 +1958,60 @@
return undef;
}
- my $N = $Z->{SERVERS}->{BY_NAME}->{$hostclass};
-
- my $M = $N->{SRVLIST}->{$hostshort};
-
- if ( defined( $M->{zone}->{$host2}->{FIELD} ) ) {
- if ( $M->{zone}->{$host2}->{TYPE} eq "CNAME" ) {
+ my $N = $Z->{'SERVERS'}->{'BY_NAME'}->{$hostclass};
+
+ my $M = $N->{'SRVLIST'}->{$hostshort};
+
+ if ( defined( $M->{'zone'}->{$host2}->{'FIELD'} ) ) {
+ if ( $M->{'zone'}->{$host2}->{'TYPE'} eq "CNAME" ) {
return (
Resolv(
- $M->{zone}->{$host2}->{FIELD} . '.' . $Z->{SOA}->{name},
+ $M->{'zone'}->{$host2}->{'FIELD'} . '.' . $Z->{'SOA'}->{'name'},
$Z
)
);
}
else {
- return ( $M->{zone}->{$host2}->{FIELD} );
- }
- }
-
- foreach $i ( keys %{ $Z->{SERVERS}->{BY_NAME} } ) {
- my $N2 = $Z->{SERVERS}->{BY_NAME}->{$i};
- foreach $j ( keys %{ $N2->{SRVLIST} } ) {
- my $M2 = $N2->{SRVLIST}->{$j};
- if ( defined( $M2->{zone}->{$host2}->{FIELD} ) ) {
- if ( $M2->{zone}->{$host2}->{TYPE} eq "CNAME" ) {
+ return ( $M->{'zone'}->{$host2}->{'FIELD'} );
+ }
+ }
+
+ foreach $i ( keys %{ $Z->{'SERVERS'}->{'BY_NAME'} } ) {
+ my $N2 = $Z->{'SERVERS'}->{'BY_NAME'}->{$i};
+ foreach $j ( keys %{ $N2->{'SRVLIST'} } ) {
+ my $M2 = $N2->{'SRVLIST'}->{$j};
+ if ( defined( $M2->{'zone'}->{$host2}->{'FIELD'} ) ) {
+ if ( $M2->{'zone'}->{$host2}->{'TYPE'} eq "CNAME" ) {
return (
Resolv(
- $M2->{zone}->{$host2}->{FIELD} . '.'
- . $Z->{SOA}->{name},
+ $M2->{'zone'}->{$host2}->{'FIELD'} . '.'
+ . $Z->{'SOA'}->{'name'},
$Z
)
);
}
else {
- return ( $M2->{zone}->{$host2}->{FIELD} );
- }
- }
- }
- }
-
- if ( defined( $Z->{ALIAS}->{$host2} ) ) {
+ return ( $M2->{'zone'}->{$host2}->{'FIELD'} );
+ }
+ }
+ }
+ }
+
+ if ( defined( $Z->{'ALIAS'}->{$host2} ) ) {
if (wantarray) {
- return ( @{ $Z->{ALIAS}->{$host2} } );
+ return ( @{ $Z->{'ALIAS'}->{$host2} } );
}
else {
- return ( $Z->{ALIAS}->{$host2}
- [ int( rand( $#{ $Z->{ALIAS}->{$host2} } + 1 ) ) ] );
+ return ( $Z->{'ALIAS'}->{$host2}
+ [ int( rand( $#{ $Z->{'ALIAS'}->{$host2} } + 1 ) ) ] );
}
}
if ( defined($hostvlan)
&& $hostvlan ne ""
- && defined( $Z->{NETWORK}->{BY_NAME}->{$hostvlan} ) )
+ && defined( $Z->{'NETWORK'}->{'BY_NAME'}->{$hostvlan} ) )
{
- return ( $Z->{NETWORK}->{BY_NAME}->{$hostvlan}->{$hostshort} );
+ return ( $Z->{'NETWORK'}->{'BY_NAME'}->{$hostvlan}->{$hostshort} );
}
return undef;
@@ -2027,8 +2027,8 @@
my ( $M, $Z, $iface ) = @_;
my $r;
- foreach $r ( sort ( keys %{ $M->{route}->{$iface} } ) ) {
- my ( $dst, @gw ) = split ( /\s+/, $M->{route}->{$iface}->{$r} );
+ foreach $r ( sort ( keys %{ $M->{'route'}->{$iface} } ) ) {
+ my ( $dst, @gw ) = split ( /\s+/, $M->{'route'}->{$iface}->{$r} );
my $gw;
my @gw2;
foreach $gw (@gw) {
@@ -2043,14 +2043,14 @@
push @gw2, $gw;
}
}
- if ( $Z->{NETWORK}->{BY_NAME}->{$dst} ) {
+ if ( $Z->{'NETWORK'}->{'BY_NAME'}->{$dst} ) {
if ( $#gw2 >= 2 ) {
print "\tup ip route add ";
- print $Z->{NETWORK}->{BY_NAME}->{$dst}->{network};
+ print $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{'network'};
print "/";
print netmask2prefix(
- $Z->{NETWORK}->{BY_NAME}->{$dst}->{netmask} );
+ $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{'netmask'} );
print " scope global";
@@ -2064,11 +2064,11 @@
print "\tup route add -net ";
#print "network.".$dst.".".$Z->{SOA}->{name};
- print $Z->{NETWORK}->{BY_NAME}->{$dst}->{network};
+ print $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{'network'};
print " netmask ";
#print "netmask.".$dst.".".$Z->{SOA}->{name};
- print $Z->{NETWORK}->{BY_NAME}->{$dst}->{netmask};
+ print $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{'netmask'};
print " gateway " . $gw2[0] if ( defined $gw2[0] );
@@ -2135,15 +2135,15 @@
}
}
- foreach $r ( sort ( keys %{ $M->{delroute}->{$iface} } ) ) {
- my ($dst) = split ( /\s+/, $M->{route}->{$iface}->{$r} );
-
- if ( $Z->{NETWORK}->{BY_NAME}->{$dst} ) {
+ foreach $r ( sort ( keys %{ $M->{'delroute'}->{$iface} } ) ) {
+ my ($dst) = split ( /\s+/, $M->{'route'}->{$iface}->{$r} );
+
+ if ( $Z->{'NETWORK'}->{'BY_NAME'}->{$dst} ) {
print "\tup ip route del ";
- print $Z->{NETWORK}->{BY_NAME}->{$dst}->{network};
+ print $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{network};
print "/";
- print netmask2prefix( $Z->{NETWORK}->{BY_NAME}->{$dst}->{netmask} );
+ print netmask2prefix( $Z->{'NETWORK'}->{'BY_NAME'}->{$dst}->{'netmask'} );
print " scope global";
More information about the Pf-tools-commits
mailing list