--- contrib/email2htusers.pl 2001/04/03 06:17:55 1.2 +++ contrib/email2htusers.pl 2002/02/16 22:33:11 1.3 @@ -19,25 +19,36 @@ my $debug=0; +my $reuse_conn=0; # if you set this to 1, it will try to do all expn + # over single tcp connection. It nice to smtp server, + # but sendmail slows down after 10 expns or so... + my ($remote,$port, $iaddr, $paddr, $proto, $line); -$remote = shift || 'intranet.pliva.hr'; +$remote = shift || 'localhost'; $port = shift || 25; print "# using remote $remote port $port\n" if ($debug); -if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') } -die "No port" unless $port; -$iaddr = inet_aton($remote) || die "no host: $remote"; -$paddr = sockaddr_in($port, $iaddr); - -$proto = getprotobyname('tcp'); -socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; -connect(SOCK, $paddr) || die "connect: $!"; -select(SOCK); $|=1; -select(STDOUT); $|=1; +sub open_conn { + if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') } + die "No port" unless $port; + $iaddr = inet_aton($remote) || die "no host: $remote"; + $paddr = sockaddr_in($port, $iaddr); + + $proto = getprotobyname('tcp'); + socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; + connect(SOCK, $paddr) || die "connect: $!"; + select(SOCK); $|=1; + select(STDOUT); $|=1; + + my $hello=; # hello + +} -my $hello=; # hello +sub close_conn { + close (SOCK) || die "close: $!"; +} my %tested; @@ -68,11 +79,15 @@ } } +open_conn if ($reuse_conn); + while() { chomp; next if (/^#/ || /^$/); + open_conn if (! $reuse_conn); try_expn($_); + close_conn if (! $reuse_conn); } -close (SOCK) || die "close: $!"; +close_conn if ($reuse_conn); exit;