#!/usr/bin/perl use strict; use warnings; use BerkeleyDB; my $greytable = "./greytable.bdb"; my $authidx = "./authidx.bdb"; my $validip = "./validip.bdb"; my $goodmailfrom = "./goodmailfrom.bdb"; sub listgreytable { print( ":: grey table\n" ); tie( my %hash, 'BerkeleyDB::Hash', -Filename => $greytable, -Flags => DB_CREATE ) or die "Cannot access $greytable"; while( ( my $key, my $val ) = each( %hash ) ) { my @parts = split( /\0/, $val ); my $line = "$key:"; for( my $i = 0, my $size = scalar( @parts ) ; $i<$size ; $i++ ) { $line .= " $parts[$i]"; } $line .= "\n"; print( $line ); } untie( %hash ); } sub listauthidx { print( ":: message auth names\n" ); tie( my %table, 'BerkeleyDB::Hash', -Filename => $authidx, -Flags => DB_CREATE ) or die( "Cannot open $authidx" ); while( ( my $key, my $value ) = each( %table ) ) { my @parts = split( /\0/, $value ); print( "$key :: $parts[0] => $parts[1]\n" ); } untie( %table ); } sub confirmedips { print( ":: confirmed ips\n" ); tie( my %ipidx, 'BerkeleyDB::Hash', -Filename => $validip, -Flags => DB_CREATE ) or die( "I cannot access $validip" ); while( ( my $key, my $val ) = each( %ipidx ) ) { print( $key . "\n" ); } untie( %ipidx ); } sub confirmedmailfroms { print( ":: mail from\n" ); tie( my %ipidx, 'BerkeleyDB::Hash', -Filename => $goodmailfrom, -Flags => DB_CREATE ) or die( "I cannot access $goodmailfrom" ); while( ( my $key, my $val ) = each( %ipidx ) ) { print( $key . "\n" ); } untie( %ipidx ); } listgreytable(); listauthidx(); confirmedips(); confirmedmailfroms();