Fix weight calculation for socks_proxy. Bug 2694
authorHeiko Schlichting <heiko@fu-berlin.de>
Fri, 19 Feb 2021 11:14:36 +0000 (11:14 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Fri, 19 Feb 2021 16:37:14 +0000 (16:37 +0000)
(cherry picked from commit 83811e3c1b8189c0a725ec53df699730e7767263)

doc/doc-txt/ChangeLog
src/src/transports/smtp_socks.c

index f8bfcf10c44a0ba6e4aae3a19700687272a3b3fd..a458b472191bdb7060f879085677cd356420122a 100644 (file)
@@ -154,8 +154,8 @@ JH/42 Bug 2692: Harden against a peer which reneges on a 452 "too many
       would result in both lost and duplicate recipients for a message.
 
 JH/43 Bug 2694: Fix weighted distribution of work to multiple spamd servers.
       would result in both lost and duplicate recipients for a message.
 
 JH/43 Bug 2694: Fix weighted distribution of work to multiple spamd servers.
-      Previously the weighting was incorrectly applied.  Found and fixed by
-      Heiko Schlichting.
+      Previously the weighting was incorrectly applied.  Similar fix for socks
+      proxies.  Found and fixed by Heiko Schlichting.
 
 
 Exim version 4.94
 
 
 Exim version 4.94
index 41dc781473236fa489e1dbf2732b0d5a61addaf6..cd8ed3e6d990f47e53b06c35e1666d8623621086 100644 (file)
@@ -190,7 +190,7 @@ for (rnd = random() % weights, i = 0; i < nproxies; i++)
   {
   sd = &proxies[i];
   if (!sd->is_failed && sd->priority == pri)
   {
   sd = &proxies[i];
   if (!sd->is_failed && sd->priority == pri)
-    if ((rnd -= sd->weight) <= 0)
+    if ((rnd -= sd->weight) < 0)
       return i;
   }
 
       return i;
   }