Author: msergeant
Date: Thu Mar 13 14:20:56 2008
New Revision: 859
Modified:
trunk/lib/Danga/TimeoutSocket.pm
trunk/qpsmtpd-async
Log:
Restore timers on reset
Modified: trunk/lib/Danga/TimeoutSocket.pm
==============================================================================
--- trunk/lib/Danga/TimeoutSocket.pm (original)
+++ trunk/lib/Danga/TimeoutSocket.pm Thu Mar 13 14:20:56 2008
@@ -25,6 +25,11 @@
sub max_idle_time { 0 }
sub max_connect_time { 0 }
+sub Reset {
+ Danga::Socket->Reset;
+ Danga::Socket->AddTimer(15, \&_do_cleanup);
+}
+
sub _do_cleanup {
my $now = time;
Modified: trunk/qpsmtpd-async
==============================================================================
--- trunk/qpsmtpd-async (original)
+++ trunk/qpsmtpd-async Thu Mar 13 14:20:56 2008
@@ -45,8 +45,8 @@
$USER = "smtpd" if $USER eq "root";
my $PAUSED = 0;
my $NUMACCEPT = 20;
-my $ACCEPT_RSET = Danga::Socket->AddTimer(30, \&reset_num_accept);
-my $PID_FILE = '';
+my $PID_FILE = '';
+my $ACCEPT_RSET;
my $DETACH; # daemonize on startup
# make sure we don't spend forever doing accept()
@@ -177,6 +177,8 @@
fileno($SERVER) => \&accept_handler,
);
+ $ACCEPT_RSET = Danga::Socket->AddTimer(30, \&reset_num_accept);
+
$plugin_loader->run_hooks('post-fork');
Qpsmtpd::PollServer->EventLoop();
@@ -380,7 +382,7 @@
# So double the number we accept next time.
$NUMACCEPT *= 2;
$NUMACCEPT = ACCEPT_MAX if $NUMACCEPT > ACCEPT_MAX;
- $ACCEPT_RSET->cancel;
+ $ACCEPT_RSET->cancel if defined $ACCEPT_RSET;
$ACCEPT_RSET = Danga::Socket->AddTimer(30, \&reset_num_accept);
}