* unbound_cacti.tar.gz : setup files for cacti statistics report
* selinux: the .fc and .te files for SElinux protection of the unbound daemon
* unbound.plist: launchd configuration file for MacOSX.
+* build-unbound-localzone-from-hosts.pl: perl script to turn /etc/hosts into
+ a local-zone and local-data include file for unbound.conf.
--- /dev/null
+#!/usr/bin/perl -WT
+
+use strict;
+use warnings;
+
+my $hostsfile = '/etc/hosts';
+my $localzonefile = '/etc/unbound/localzone.conf.new';
+
+my $localzone = 'example.com';
+
+open( HOSTS,"<${hostsfile}" ) or die( "Could not open ${hostsfile}: $!" );
+open( ZONE,">${localzonefile}" ) or die( "Could not open ${localzonefile}: $!" );
+
+print ZONE "server:\n\n";
+print ZONE "local-zone: \"${localzone}\" transparent\n\n";
+
+my %ptrhash;
+
+while ( my $hostline = <HOSTS> ) {
+
+ # Skip comments
+ if ( $hostline !~ "^#" and $hostline !~ '^\s+$' ) {
+
+ my @entries = split( /\s+/, $hostline );
+
+ my $ip;
+
+ my $count = 0;
+ foreach my $entry ( @entries ) {
+ if ( $count == 0 ) {
+ $ip = $entry;
+ } else {
+
+ if ( $count == 1) {
+
+ # Only return localhost for 127.0.0.1 and ::1
+ if ( ($ip ne '127.0.0.1' and $ip ne '::1') or $entry =~ 'localhost' ) {
+ if ( ! defined $ptrhash{$ip} ) {
+ $ptrhash{$ip} = $entry;
+ print ZONE "local-data-ptr: \"$ip $entry\"\n";
+ }
+ }
+
+ }
+
+ # Use AAAA for IPv6 addresses
+ my $a = 'A';
+ if ( $ip =~ ':' ) {
+ $a = 'AAAA';
+ }
+
+ print ZONE "local-data: \"$entry ${a} $ip\"\n";
+
+ }
+ $count++;
+ }
+ print ZONE "\n";
+
+
+ }
+}
+
+
+
+
+__END__
+
server. This makes a stub pointing to a local server that has
a local view of example.com signed with the same keys as are
publicly used work. Reported by Johan Ihren.
+ - Added build-unbound-localzone-from-hosts.pl to contrib, from
+ Dennis DeDonatis. It converts /etc/hosts into config statements.
9 June 2009: Wouter
- openssl key files are opened apache-style, when user is root and