pf-tools/pf-tools-0.33-stable: 4 new changesets
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Thu Mar 17 14:11:28 UTC 2016
details: http://hg.debian.org/hg/pf-tools/pf-tools-0.33-stable/rev/e44d57a90538
changeset: 556:e44d57a90538
user: Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date: Thu Mar 17 14:56:44 2016 +0100
description:
Always sort keys before using them in Init_lib_net().
details: http://hg.debian.org/hg/pf-tools/pf-tools-0.33-stable/rev/4d19eb20abe2
changeset: 557:4d19eb20abe2
user: Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date: Thu Mar 17 14:57:03 2016 +0100
description:
Add tools/dump-distribs and tools/dump-subnets to the source repository.
details: http://hg.debian.org/hg/pf-tools/pf-tools-0.33-stable/rev/c76e8b8589c4
changeset: 558:c76e8b8589c4
user: Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date: Thu Mar 17 14:57:24 2016 +0100
description:
releasing package pf-tools version 0.33.26-1
details: http://hg.debian.org/hg/pf-tools/pf-tools-0.33-stable/rev/d01269f05f97
changeset: 559:d01269f05f97
user: Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date: Thu Mar 17 14:57:24 2016 +0100
description:
tagging package pf-tools version 0.33.26-1
diffstat:
.hgtags | 1 +
debian/changelog | 12 +++++
lib/PFTools/Net.pm | 4 +-
tools/dump-distribs | 84 +++++++++++++++++++++++++++++++++++++++++
tools/dump-subnets | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 204 insertions(+), 2 deletions(-)
diffs (245 lines):
diff -r f417f3a1fb52 -r d01269f05f97 .hgtags
--- a/.hgtags Thu Mar 07 15:37:21 2013 +0100
+++ b/.hgtags Thu Mar 17 14:57:24 2016 +0100
@@ -2,3 +2,4 @@
82b295cfe2174230e2cb1cf3965970917ed92d75 0.33.22-1
87ffc2caf7c2ab8f0e3e6ebb8fcac2af66d04673 0.33.24-1
77d660d6254e2bac8641180d38881ce14f518634 debian-0.33.25-1
+c76e8b8589c43ea2f356f6878f240a23c52ea3a8 debian-0.33.26-1
diff -r f417f3a1fb52 -r d01269f05f97 debian/changelog
--- a/debian/changelog Thu Mar 07 15:37:21 2013 +0100
+++ b/debian/changelog Thu Mar 17 14:57:24 2016 +0100
@@ -1,3 +1,15 @@
+pf-tools (0.33.26-1) unstable; urgency=medium
+
+ * Always sort keys before using them in Init_lib_net(). In the Good Old
+ Days, Perl always used the same order for hash keys iterations (even if it
+ was not guaranteed), but this is not the case anymore in Jessie. Without
+ this explicit sort, the output of mk_privatezone and mk_dhcp is not always
+ in the same order when running on a Jessie host, which makes the output of
+ "update-config --diff" unusable.
+ * Add tools/dump-distribs and tools/dump-subnets to the source repository.
+
+ -- Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org> Thu, 17 Mar 2016 14:36:38 +0100
+
pf-tools (0.33.25-1) unstable; urgency=low
* Remove vmether black magic "feature": when mk_dhcp is run in a VM it
diff -r f417f3a1fb52 -r d01269f05f97 lib/PFTools/Net.pm
--- a/lib/PFTools/Net.pm Thu Mar 07 15:37:21 2013 +0100
+++ b/lib/PFTools/Net.pm Thu Mar 17 14:57:24 2016 +0100
@@ -825,7 +825,7 @@
$C = Load_conf( $fic_conf, 0 );
# Calcul de la conf reseau et de la zone
- foreach $s ( keys %$C ) {
+ foreach $s ( sort keys %$C ) {
if ( $C->{$s}->{'type'} =~ /network$/ ) {
Add_network( $Z, $C->{$s}, $s );
}
@@ -839,7 +839,7 @@
# Calcul de la conf serveur
# (Il doit obligatoirement etre fait en seconde passe
# il utilise les donnees reseau et zone)
- foreach $s ( keys %$C ) {
+ foreach $s ( sort keys %$C ) {
if ( $C->{$s}->{'type'} =~ /server$/ ) {
Add_server( $Z, $C->{$s}, $s );
}
diff -r f417f3a1fb52 -r d01269f05f97 tools/dump-distribs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/dump-distribs Thu Mar 17 14:57:24 2016 +0100
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2014 Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+
+use strict;
+use warnings;
+
+use English qw( -no_match_vars ); # Avoids regex performance penalty
+use File::Basename;
+use Getopt::Long qw( :config ignore_case_always bundling );
+
+use PFTools::Net;
+use PFTools::Update;
+
+my @options_specifications = (
+ 'help',
+ 'source|s=s',
+);
+
+# default values
+my $options = {
+ 'help' => 0,
+ 'source' => q{private-network},
+};
+
+my $program = basename $PROGRAM_NAME;
+
+GetOptions( $options, @options_specifications )
+ or die "Didn't grok options (see --help).\n";
+
+if ( $options->{'help'} ) {
+ Do_help();
+ exit 0;
+}
+
+if ( not $options->{'source'} ) {
+ die q{ERROR: --source is mandatory};
+}
+
+if (@ARGV) {
+ die q{ERROR: No arguments expected (see --help).};
+}
+
+my $global_config = Init_lib_net( Get_source( $options->{'source'} ) );
+my $server_list = $global_config->{'SERVERS'}->{'BY_NAME'};
+
+foreach my $server_type ( sort keys %{$server_list} ) {
+ my $server_type_ref = $server_list->{$server_type};
+ foreach my $server_name ( sort keys %{ $server_type_ref->{'SRVLIST'} } ) {
+ my $server_ref = $server_type_ref->{'SRVLIST'}->{$server_name};
+ my $distrib = $server_ref->{'distrib'};
+ if ($distrib) {
+ print join( q{:}, $server_name, $distrib ), qq{\n};
+ }
+ }
+}
+
+
+sub Do_help {
+ print STDERR << "# ENDHELP";
+$program
+
+Usage: $program [options]
+ -h, --help print help and exit
+ -s, --source: source file [default: $options->{'source'}]
+
+# ENDHELP
+}
+
diff -r f417f3a1fb52 -r d01269f05f97 tools/dump-subnets
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/dump-subnets Thu Mar 17 14:57:24 2016 +0100
@@ -0,0 +1,105 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2014 Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+
+use strict;
+use warnings;
+
+use English qw( -no_match_vars ); # Avoids regex performance penalty
+use File::Basename;
+use Getopt::Long qw( :config ignore_case_always bundling );
+use Net::IP;
+
+use PFTools::Net;
+use PFTools::Update;
+
+my @options_specifications = (
+ 'help',
+ 'source|s=s',
+);
+
+# default values
+my $options = {
+ 'help' => 0,
+ 'source' => q{private-network},
+};
+
+my $program = basename $PROGRAM_NAME;
+
+GetOptions( $options, @options_specifications )
+ or die "Didn't grok options (see --help).\n";
+
+if ( $options->{'help'} ) {
+ Do_help();
+ exit 0;
+}
+
+if ( not $options->{'source'} ) {
+ die q{ERROR: --source is mandatory};
+}
+
+if (@ARGV) {
+ die q{ERROR: No arguments expected (see --help).};
+}
+
+my $global_config = Init_lib_net( Get_source( $options->{'source'} ) );
+my $subnet_list = $global_config->{'NETWORK'}->{'BY_ADDR'};
+
+foreach my $subnet_key (
+ map { $_->[0] }
+ sort { $a->[1] <=> $b->[1] }
+ map {
+ [ $_, eval { Net::IP->new($_)->intip } ]
+ }
+ keys %{$subnet_list}
+ )
+{
+ my $subnet_ref = $subnet_list->{$subnet_key};
+
+ foreach my $attribute (qw( name network prefix tag comment )) {
+ if ( not defined $subnet_ref->{$attribute} ) {
+ warn
+ qq{WARN: attribute '$attribute' not defined for subnet $subnet_key};
+ $subnet_ref->{$attribute} = q{UNKNOWN};
+ }
+ }
+
+ my $network = $subnet_ref->{'network'};
+ if ( $network ne $subnet_key ) {
+ warn qq{WARN: Whoa there, network $network != subnet $subnet_key};
+ }
+
+ my $subnet = join q{/}, $network, $subnet_ref->{'prefix'};
+
+ print join( q{;},
+ $subnet, $subnet_ref->{'name'}, $subnet_ref->{'tag'},
+ $subnet_ref->{'comment'} ),
+ qq{\n};
+}
+
+sub Do_help {
+ print STDERR << "# ENDHELP";
+$program
+
+Usage: $program [options]
+ -h, --help print help and exit
+ -s, --source: source file [default: $options->{'source'}]
+
+# ENDHELP
+}
+
More information about the pf-tools-commits
mailing list