#!/usr/bin/perl

use constant FETCH => 0;

exit &rrn($ARGV[0]) ? 1 : 0;

use Storable qw(lock_nstore lock_retrieve);

sub rrn ($) {
	use LWP::Simple qw(get);
	my %users; eval {
	    %users = %{ lock_retrieve '/etc/mail/filster/data/rrn' };
	}; (&FETCH || $args =~ /fetch/ || length $@) && do {
	    %users = ();
	    my $content = get('http://databases.si.umich.edu/reputations/dir/directoryM.cfm');
	    %users = map { $_ => 1 } ($content =~ /"mailto:([^"]{5,200})"/g);
	    lock_nstore \%users, '/etc/mail/filster/data/rrn';
	};
	return $users{$_[0]} if exists $users{$_[0]};
	return 1 if $content =~ /"mailto:$_[0]"/;
	return $users{$_[0]} = 0;
}
