mirror of
https://github.com/3proxy/3proxy.git
synced 2026-10-07 20:45:48 +08:00
extport binds a local port out of its range and connects from it. A port which is free to bind may still be half of a pair which is closing from an earlier connection to the same destination, and Windows fails the connect with WSAEADDRINUSE where other systems fail the bind and fall back. The request then failed with error 13 for a reason another port would have avoided, which is what the range is searched for in the first place. Retry the connect with another port from the range. Only for that error, so a destination which is simply unreachable still costs one attempt, and out of the same ten tries the bind already spends, so the attempts parentretries makes are not multiplied. EADDRINUSE joins the errno values proxy.h maps to their Winsock numbers, without which the test would never match on Windows. parent_ports gave its three services one window between them, which is how the case met the collision on the Windows runner. Each has its own now. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 3proxy_crypt.8 | ||
| 3proxy.8 | ||
| 3proxy.cfg.5 | ||
| ftppr.8 | ||
| imapp.8 | ||
| pop3p.8 | ||
| proxy.8 | ||
| smtpp.8 | ||
| socks.8 | ||
| tcppm.8 | ||
| tlspr.8 | ||
| udppm.8 | ||