[svn:qpsmtpd] rev 465 - trunk
[email protected] 6 Jul 2005 07:53:42 -0000
| Newsgroups | perl.cvs.qpsmtpd |
|---|---|
| Message-ID | <[email protected]> |
Author: aqua
Date: Wed Jul 6 00:53:41 2005
New Revision: 465
Modified:
trunk/qpsmtpd-forkserver
Log:
Clean up whitespace (mainloop had a swath of 4-space indentation, while everything else used 2-space; also removed some tabs towards the beginning.)
Modified: trunk/qpsmtpd-forkserver
==============================================================================
--- trunk/qpsmtpd-forkserver (original)
+++ trunk/qpsmtpd-forkserver Wed Jul 6 00:53:41 2005
@@ -18,11 +18,11 @@ use strict;
$| = 1;
# Configuration
-my $MAXCONN = 15; # max simultaneous connections
-my $PORT = 2525; # port number
-my @LOCALADDR; # ip address to bind to
-my $USER = 'smtpd'; # user to suid to
-my $MAXCONNIP = 5; # max simultaneous connections from one IP
+my $MAXCONN = 15; # max simultaneous connections
+my $PORT = 2525; # port number
+my @LOCALADDR; # ip address(es) to bind to
+my $USER = 'smtpd'; # user to suid to
+my $MAXCONNIP = 5; # max simultaneous connections from one IP
my $PID_FILE = '';
sub usage {
@@ -163,77 +163,77 @@ while (1) {
my ($client, $hisaddr) = $server->accept;
- if (!$hisaddr) {
- # possible something condition...
- next;
- }
- IO::Handle::blocking($client, 1);
- my ($port, $iaddr) = sockaddr_in($hisaddr);
- if ($MAXCONNIP) {
- my $num_conn = 1; # seed with current value
-
- foreach my $rip (values %childstatus) {
- ++$num_conn if (defined $rip && $rip eq $iaddr);
- }
-
- if ($num_conn > $MAXCONNIP) {
- my $rem_ip = inet_ntoa($iaddr);
- ::log(LOGINFO,"Too many connections from $rem_ip: "
- ."$num_conn > $MAXCONNIP. Denying connection.");
- $client->autoflush(1);
- print $client "451 Sorry, too many connections from $rem_ip, try again later\r\n";
- close $client;
- next;
- }
+ if (!$hisaddr) {
+ # possible something condition...
+ next;
+ }
+ IO::Handle::blocking($client, 1);
+ my ($port, $iaddr) = sockaddr_in($hisaddr);
+ if ($MAXCONNIP) {
+ my $num_conn = 1; # seed with current value
+
+ foreach my $rip (values %childstatus) {
+ ++$num_conn if (defined $rip && $rip eq $iaddr);
}
- my $pid = safe_fork();
- if ($pid) {
- # parent
- $childstatus{$pid} = $iaddr; # add to table
- # $childstatus{$pid} = 1; # add to table
- $running++;
- close($client);
- next;
+
+ if ($num_conn > $MAXCONNIP) {
+ my $rem_ip = inet_ntoa($iaddr);
+ ::log(LOGINFO,"Too many connections from $rem_ip: "
+ ."$num_conn > $MAXCONNIP. Denying connection.");
+ $client->autoflush(1);
+ print $client "451 Sorry, too many connections from $rem_ip, try again later\r\n";
+ close $client;
+ next;
}
- # otherwise child
+ }
+ my $pid = safe_fork();
+ if ($pid) {
+ # parent
+ $childstatus{$pid} = $iaddr; # add to table
+ # $childstatus{$pid} = 1; # add to table
+ $running++;
+ close($client);
+ next;
+ }
+ # otherwise child
- # all children should have different seeds, to prevent conflicts
- srand( time ^ ($$ + ($$ << 15)) );
+ # all children should have different seeds, to prevent conflicts
+ srand( time ^ ($$ + ($$ << 15)) );
- close($server);
+ close($server);
- $SIG{$_} = 'DEFAULT' for keys %SIG;
- $SIG{ALRM} = sub {
- print $client "421 Connection Timed Out\n";
- ::log(LOGINFO, "Connection Timed Out");
- exit; };
-
- my $localsockaddr = getsockname($client);
- my ($lport, $laddr) = sockaddr_in($localsockaddr);
- $ENV{TCPLOCALIP} = inet_ntoa($laddr);
- # my ($port, $iaddr) = sockaddr_in($hisaddr);
- $ENV{TCPREMOTEIP} = inet_ntoa($iaddr);
- $ENV{TCPREMOTEHOST} = gethostbyaddr($iaddr, AF_INET) || "Unknown";
-
- # don't do this!
- #$0 = "qpsmtpd-forkserver: $ENV{TCPREMOTEIP} / $ENV{TCPREMOTEHOST}";
-
- ::log(LOGINFO, "Accepted connection $running/$MAXCONN from $ENV{TCPREMOTEIP} / $ENV{TCPREMOTEHOST}");
-
- # dup to STDIN/STDOUT
- POSIX::dup2(fileno($client), 0);
- POSIX::dup2(fileno($client), 1);
-
- $qpsmtpd->start_connection
- (
- local_ip => $ENV{TCPLOCALIP},
- local_port => $lport,
- remote_ip => $ENV{TCPREMOTEIP},
- remote_port => $port,
- );
- $qpsmtpd->run();
-
- exit; # child leaves
+ $SIG{$_} = 'DEFAULT' for keys %SIG;
+ $SIG{ALRM} = sub {
+ print $client "421 Connection Timed Out\n";
+ ::log(LOGINFO, "Connection Timed Out");
+ exit; };
+
+ my $localsockaddr = getsockname($client);
+ my ($lport, $laddr) = sockaddr_in($localsockaddr);
+ $ENV{TCPLOCALIP} = inet_ntoa($laddr);
+ # my ($port, $iaddr) = sockaddr_in($hisaddr);
+ $ENV{TCPREMOTEIP} = inet_ntoa($iaddr);
+ $ENV{TCPREMOTEHOST} = gethostbyaddr($iaddr, AF_INET) || "Unknown";
+
+ # don't do this!
+ #$0 = "qpsmtpd-forkserver: $ENV{TCPREMOTEIP} / $ENV{TCPREMOTEHOST}";
+
+ ::log(LOGINFO, "Accepted connection $running/$MAXCONN from $ENV{TCPREMOTEIP} / $ENV{TCPREMOTEHOST}");
+
+ # dup to STDIN/STDOUT
+ POSIX::dup2(fileno($client), 0);
+ POSIX::dup2(fileno($client), 1);
+
+ $qpsmtpd->start_connection
+ (
+ local_ip => $ENV{TCPLOCALIP},
+ local_port => $lport,
+ remote_ip => $ENV{TCPREMOTEIP},
+ remote_port => $port,
+ );
+ $qpsmtpd->run();
+
+ exit; # child leaves
}
sub log {