diff --git a/qpsmtpd-forkserver b/qpsmtpd-forkserver index 5d8d8b4..6504367 100755 --- a/qpsmtpd-forkserver +++ b/qpsmtpd-forkserver @@ -14,6 +14,7 @@ use IO::Select; 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 @@ while (1) { # 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);