From 92e8dbcfc937f8a62d85714e27e23aa9eeaae1f3 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 22 Nov 2015 13:54:36 +0000 Subject: [PATCH] Use context variables instead of default ones --- src/libutil/upstream.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/libutil/upstream.c b/src/libutil/upstream.c index 0054be93a..8ff3575ba 100644 --- a/src/libutil/upstream.c +++ b/src/libutil/upstream.c @@ -318,14 +318,18 @@ rspamd_upstream_set_inactive (struct upstream_list *ls, struct upstream *up) if (up->ctx->res != NULL && up->ctx->configured) { /* Resolve name of the upstream one more time */ if (up->name[0] != '/') { - REF_RETAIN (up); - rdns_make_request_full (up->ctx->res, rspamd_upstream_dns_cb, up, - default_dns_timeout, default_dns_retransmits, - 1, up->name, RDNS_REQUEST_A); - REF_RETAIN (up); - rdns_make_request_full (up->ctx->res, rspamd_upstream_dns_cb, up, - default_dns_timeout, default_dns_retransmits, - 1, up->name, RDNS_REQUEST_AAAA); + + if (rdns_make_request_full (up->ctx->res, rspamd_upstream_dns_cb, up, + up->ctx->dns_timeout, up->ctx->dns_retransmits, + 1, up->name, RDNS_REQUEST_A) != NULL) { + REF_RETAIN (up); + } + + if (rdns_make_request_full (up->ctx->res, rspamd_upstream_dns_cb, up, + up->ctx->dns_timeout, up->ctx->dns_retransmits, + 1, up->name, RDNS_REQUEST_AAAA) != NULL) { + REF_RETAIN (up); + } } } @@ -335,8 +339,7 @@ rspamd_upstream_set_inactive (struct upstream_list *ls, struct upstream *up) event_base_set (up->ctx->ev_base, &up->ev); } - ntim = default_revive_time + ottery_rand_range ( - default_revive_time * default_revive_jitter); + ntim = rspamd_time_jitter (up->ctx->revive_time, up->ctx->revive_jitter); double_to_tv (ntim, &up->tv); event_add (&up->ev, &up->tv); @@ -364,7 +367,7 @@ rspamd_upstream_fail (struct upstream *up) if (msec_cur >= msec_last) { if (msec_cur > msec_last) { error_rate = ((gdouble)up->errors) / (msec_cur - msec_last); - max_error_rate = (gdouble)default_max_errors / default_error_time; + max_error_rate = ((gdouble)up->ctx->max_errors) / up->ctx->error_time; } else { error_rate = 1; -- 2.39.5