On 2024-10-13 5:52 a.m., Kirill A. Korinsky wrote:
ports@, Brad,

Here a backport of small fix for OpenBSD from mine PR to fix 2.4 branch on
OpenBSD:https://github.com/dovecot/core/pull/224

Right now I can find in logs a errors like:

     Fatal: connect(...) failed: Address already in use

not often, like a few times per week.

With this fix which extend FreeBSD's condition to OpenBSD as well, such
errors dissapears.

The diff:

Seeing as the PR is a bunch of fixes, either way put a brief description
at the top of the patch. You might want to look at updating the comment
at the very top of lib/net.c to include OpenBSD.

        for (try = 0;;) {
                fd = net_connect_ip_once(ip, port, my_ip, sock_type, blocking);
                if (fd != -1 || try++ >= MAX_CONNECT_RETRIES ||
                    (errno != EADDRNOTAVAIL
#if defined(__FreeBSD__) || defined(__OpenBSD__)
                     /* busy */
                     && errno != EADDRINUSE
                     /* pf may cause this if another connection used
                        the same port recently */
                     && errno != EACCES
#endif
                    ))


I am not sure what is considered normal and appropriate for userland
network and PF. I guess I'd be Ok if someone else more familiar with
these kinds of bits said this is appropriate.

Reply via email to