[svn:qpsmtpd] r682 - branches/0.3x

[email protected] Sat, 16 Dec 2006 01:42:53 -0800 (PST)
Newsgroups perl.cvs.qpsmtpd
Message-ID <[email protected]>
Author: hjp
Date: Sat Dec 16 01:42:52 2006
New Revision: 682

Modified:
   branches/0.3x/qpsmtpd-forkserver

Log:
Ensure that each child process in qpsmtpd-forkserver will use a
differenct sequence of ids in DNS requests.
See the thread "dnsbl or spamhaus occassionally blocks wrong IP"
starting at 14 Mar 2006 for details.


Modified: branches/0.3x/qpsmtpd-forkserver
==============================================================================
--- branches/0.3x/qpsmtpd-forkserver	(original)
+++ branches/0.3x/qpsmtpd-forkserver	Sat Dec 16 01:42:52 2006
@@ -14,6 +14,7 @@
 use Socket;
 use Getopt::Long;
 use POSIX qw(:sys_wait_h :errno_h :signal_h);
+use Net::DNS::Header;
 use strict;
 $| = 1;
 
@@ -273,7 +274,10 @@
     # otherwise child
   
     # all children should have different seeds, to prevent conflicts
-    srand( time ^ ($$ + ($$ << 15)) );
+    srand();
+    for (0 .. rand(65536)) {
+	Net::DNS::Header::nextid();
+    }
   
     close($server);