mirror of
https://github.com/curl/curl.git
synced 2026-07-30 06:38:05 +03:00
To contain the logic of checking for both `EWOULDBLOCK` and/or `EAGAIN` depending on platform/availability. Also to avoid checking for both if they mapp to the same value, and to avoid PP guards around use. This also ensures `EAGAIN` is consistently not checked on Windows, where headers defined it, but `SOCKERRNO` never returns it, because curl maps it to `WSAGetLastError()`. If they map to the same value, checking them both in an `if` expression trips GCC warning `-Wlogical-op` (the same way it triggers duplicate case value error in `switch`). Also: - replace two `switch()` statements with the new macro. - tests/server/sws: make two outliers use the new macro that were only checking for `EWOULDBLOCK` before this patch, in `connect_to()`. - move variables to the left-side of expressions, where missing. - rustls: use a variant of this macro that uses raw `EWOULDBLOCK`. Tried tracing it back to the origins, but I couldn't figure out if this is working as expected on all supported Windows versions in Rust. It seems to be using `GetLastError()`, according to https://docs.rs/system_error/0.2.0/system_error/, which would be probably incorrect. Notes: - it's probably a good idea to assign `SOCKERRNO` to a variable before passing it to this macro. Cherry-picked from #21893 Closes #21992 |
||
|---|---|---|
| .. | ||
| capsule.c | ||
| capsule.h | ||
| cf-capsule.c | ||
| cf-capsule.h | ||
| cf-ngtcp2-cmn.c | ||
| cf-ngtcp2-cmn.h | ||
| cf-ngtcp2-proxy.c | ||
| cf-ngtcp2-proxy.h | ||
| cf-ngtcp2.c | ||
| cf-ngtcp2.h | ||
| cf-quiche.c | ||
| cf-quiche.h | ||
| vquic-tls.c | ||
| vquic-tls.h | ||
| vquic.c | ||
| vquic.h | ||
| vquic_int.h | ||