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.

Reply via email to