http://bugzilla.spamassassin.org/show_bug.cgi?id=3997
------- Additional Comments From [EMAIL PROTECTED] 2005-04-12 16:45 ------- Some further notes for whoever is going to implement the patch before I can get to it, after some IRC conversation with Daniel: The patch needs to be put in both places that bgsend is called, Dns.PM and URIDNSBL.pm. It also should be used for calls to send() when it sends UDP. Just because query/reply is not backgrounded doesn't make it less possible for the reply to come from an old timed out query from the same port. Inhte case of calls to send, though, the implementation of the solution is simpler, because the send and read are in the same routine. The counter will be accessible and would not have to be associatged in a hash tabole with the socket. The counter has to be global to everywhere that bgsend, bgread, and send are being called. I.e., DNS.pm and URIDNSBL.pm have to use the same counter to ensure that the ID is unique. Does this cause a problem in multiple processes, such as spamd children? An alternative is to make the id something that is well randomized, or perhaps a 16 bit checksum of the query strings. We just want to make sure that if a query packet times out and then the reply is received later, it is unlikely that it will have the same 16 bit ID as any being listened for at that time. A counter is best, as it will not repeat within a timeframe of late responses being received. A completely random 16 bit number only reduces he chances of an error by 1/65K which still could lead to some visible errors on a very busy system. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.