summaryrefslogtreecommitdiff
path: root/proxy_network.c
diff options
context:
space:
mode:
Diffstat (limited to 'proxy_network.c')
-rw-r--r--proxy_network.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/proxy_network.c b/proxy_network.c
index 074b172..29d3aff 100644
--- a/proxy_network.c
+++ b/proxy_network.c
@@ -519,18 +519,18 @@ static void proxy_event_handler(evutil_socket_t fd, short which, void *arg) {
be->stacked = false;
int flags = 0;
- if (be->connecting) {
+ if (be->connecting || be->validating) {
P_DEBUG("%s: deferring IO pending connecting (%s:%s)\n", __func__, be->name, be->port);
} else {
flags = _flush_pending_write(be);
- }
- if (flags == -1) {
- _reset_bad_backend(be, P_BE_FAIL_WRITING);
- _backend_failed(be);
- } else if (!be->validating) {
- flags = be->can_write ? EV_READ|EV_TIMEOUT : EV_READ|EV_WRITE|EV_TIMEOUT;
- _set_event(be, t->base, flags, tmp_time, proxy_backend_handler);
+ if (flags == -1) {
+ _reset_bad_backend(be, P_BE_FAIL_WRITING);
+ _backend_failed(be);
+ } else {
+ flags = be->can_write ? EV_READ|EV_TIMEOUT : EV_READ|EV_WRITE|EV_TIMEOUT;
+ _set_event(be, t->base, flags, tmp_time, proxy_backend_handler);
+ }
}
}