mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
BUG/MEDIUM: fix broken send_proxy on FreeBSD
David Berard reported that send-proxy was broken on FreeBSD and tracked the issue to be an error returned by send(). We already had the same issue in the past in another area which was addressed by the following commit : 0ea0cf6 BUG: raw_sock: also consider ENOTCONN in addition to EAGAIN In fact, on Linux send() returns EAGAIN when the connection is not yet established while other OSes return ENOTCONN. Let's consider ENOTCONN for send-proxy there as the same as EAGAIN. David confirmed that this change properly fixed the issue. Another place was affected as well (health checks with send-proxy), and was fixed. This fix does not need any backport since it only affects 1.5.
This commit is contained in:
parent
be55431f9f
commit
95742a43aa
@ -573,7 +573,7 @@ int conn_local_send_proxy(struct connection *conn, unsigned int flag)
|
||||
goto out_wait;
|
||||
|
||||
if (ret < 0) {
|
||||
if (errno == EAGAIN)
|
||||
if (errno == EAGAIN || errno == ENOTCONN)
|
||||
goto out_wait;
|
||||
goto out_error;
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ int conn_si_send_proxy(struct connection *conn, unsigned int flag)
|
||||
goto out_wait;
|
||||
|
||||
if (ret < 0) {
|
||||
if (errno == EAGAIN)
|
||||
if (errno == EAGAIN || errno == ENOTCONN)
|
||||
goto out_wait;
|
||||
goto out_error;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user