LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File postgrey_clients_dump of Package postgrey (Project server:mail)

#!/usr/sepp/bin/perl-5.8.4 -w

use lib '/usr/isgtc/lib/perl';

use BerkeleyDB;
use Socket;

my $dbdir = '/var/spool/postfix/postgrey';

sub resolv($) {
    my $host = shift;
    my $iaddr = inet_aton($host);
    return gethostbyaddr($iaddr, AF_INET) || $host;
}

sub dbopen($)
{
    my ($dbdir) = @_;
    my %db;

    my $dbenv = BerkeleyDB::Env->new(
	-Home     => $dbdir,
	-Flags    => DB_INIT_TXN|DB_INIT_MPOOL|DB_INIT_LOG,
    ) or die "ERROR: can't open DB environment: $!\n";

    tie(%db, 'BerkeleyDB::Btree',
	-Filename => "postgrey_clients.db",
	-Flags    => DB_RDONLY,
	-Env      => $dbenv,
    ) or die "ERROR: can't open database $dbdir/postgrey_clients.db: $!\n";

    return \%db;
}

sub main()
{
    # go through the database
    my $db = dbopen($dbdir);
    while (my ($key, $value) = each %$db) {
	my ($c,$l) = split(/,/,$value);
	$c >= 5 or next;
	my $host = resolv($key);
	print "$host ($c)\n";
    }
}

main;

# vim: sw=4