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);
 }
 

Reply via email to