Hello Michal,
I found a small bug on resolver.c. In function addrlist_resolve, in source line 318 for version 5.31, there is the instruction:
num+=name2addrlist(addr_list, host->name)
I think It should be:
num = name2addrlist(addr_list, host->name)
I found this because I created a service with three connect lines, like this:
[ldaps]
client=yes
accept=127.0.0.1:7000
connect=10.1.1.1:636
connect=10.2.2.2:636
connect=10.3.2.3:636
And I found this line in the log:
2016.03.15 22:23:34 LOG6[0]: failover: round-robin, starting at entry #6
#6? It should be <= #2 !
I checked the source code, added some s_log instructions and found that the problem. For 3 addresses num variable was set to 6 (1 + 2 + 3) and that was returned by addrlist_resolve.
Hope this helps. And thanks again for your hard work on stunnel.
Best Regards
Jose A. Diaz