From f3ac40859446c3f6829d52cfd0ae8066e5b5b2c8 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 21 Nov 2015 13:31:26 +0000 Subject: [PATCH] Use new rotation logic in the code --- src/http_proxy.c | 3 ++- src/libmime/smtp_utils.c | 2 +- src/libstat/backends/redis.c | 10 ++++++++-- src/lua/lua_upstream.c | 6 ++++-- src/plugins/fuzzy_check.c | 5 +++-- src/plugins/surbl.c | 2 +- src/smtp_proxy.c | 2 +- test/rspamd_upstream_test.c | 6 +++--- 8 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/http_proxy.c b/src/http_proxy.c index c35c02bd1..43cacae9c 100644 --- a/src/http_proxy.c +++ b/src/http_proxy.c @@ -322,7 +322,8 @@ proxy_client_finish_handler (struct rspamd_http_connection *conn, goto err; } else { - session->up = rspamd_upstream_get (backend->u, RSPAMD_UPSTREAM_ROUND_ROBIN); + session->up = rspamd_upstream_get (backend->u, + RSPAMD_UPSTREAM_ROUND_ROBIN, NULL, 0); if (session->up == NULL) { msg_err ("cannot select upstream for %s", host ? hostbuf : "default"); diff --git a/src/libmime/smtp_utils.c b/src/libmime/smtp_utils.c index 33750bae5..ce7ac72fa 100644 --- a/src/libmime/smtp_utils.c +++ b/src/libmime/smtp_utils.c @@ -64,7 +64,7 @@ create_smtp_upstream_connection (struct smtp_session *session) /* Try to select upstream */ selected = rspamd_upstream_get (session->ctx->upstreams, - RSPAMD_UPSTREAM_ROUND_ROBIN); + RSPAMD_UPSTREAM_ROUND_ROBIN, NULL, 0); if (selected == NULL) { msg_err ("no upstreams suitable found"); return FALSE; diff --git a/src/libstat/backends/redis.c b/src/libstat/backends/redis.c index 66bad4471..b5194065a 100644 --- a/src/libstat/backends/redis.c +++ b/src/libstat/backends/redis.c @@ -398,10 +398,16 @@ rspamd_redis_runtime (struct rspamd_task *task, } if (learn) { - up = rspamd_upstream_get (elt->write_servers, RSPAMD_UPSTREAM_MASTER_SLAVE); + up = rspamd_upstream_get (elt->write_servers, + RSPAMD_UPSTREAM_MASTER_SLAVE, + NULL, + 0); } else { - up = rspamd_upstream_get (elt->read_servers, RSPAMD_UPSTREAM_ROUND_ROBIN); + up = rspamd_upstream_get (elt->read_servers, + RSPAMD_UPSTREAM_ROUND_ROBIN, + NULL, + 0); } if (up == NULL) { diff --git a/src/lua/lua_upstream.c b/src/lua/lua_upstream.c index 8ceadcc8c..18a6069ac 100644 --- a/src/lua/lua_upstream.c +++ b/src/lua/lua_upstream.c @@ -274,7 +274,7 @@ lua_upstream_list_get_upstream_round_robin (lua_State *L) upl = lua_check_upstream_list (L); if (upl) { - selected = rspamd_upstream_get (upl, RSPAMD_UPSTREAM_ROUND_ROBIN); + selected = rspamd_upstream_get (upl, RSPAMD_UPSTREAM_ROUND_ROBIN, NULL, 0); if (selected) { pselected = lua_newuserdata (L, sizeof (struct upstream *)); rspamd_lua_setclass (L, "rspamd{upstream}", -1); @@ -305,7 +305,9 @@ lua_upstream_list_get_upstream_master_slave (lua_State *L) upl = lua_check_upstream_list (L); if (upl) { - selected = rspamd_upstream_get (upl, RSPAMD_UPSTREAM_MASTER_SLAVE); + selected = rspamd_upstream_get (upl, RSPAMD_UPSTREAM_MASTER_SLAVE, + NULL, + 0); if (selected) { pselected = lua_newuserdata (L, sizeof (struct upstream *)); rspamd_lua_setclass (L, "rspamd{upstream}", -1); diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index c6db5e016..7e03009f9 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -1347,7 +1347,8 @@ register_fuzzy_client_call (struct rspamd_task *task, gint sock; /* Get upstream */ - selected = rspamd_upstream_get (rule->servers, RSPAMD_UPSTREAM_ROUND_ROBIN); + selected = rspamd_upstream_get (rule->servers, RSPAMD_UPSTREAM_ROUND_ROBIN, + NULL, 0); if (selected) { if ((sock = rspamd_inet_address_connect (rspamd_upstream_addr (selected), SOCK_DGRAM, TRUE)) == -1) { @@ -1434,7 +1435,7 @@ register_fuzzy_controller_call (struct rspamd_http_connection_entry *entry, /* Get upstream */ while ((selected = rspamd_upstream_get (rule->servers, - RSPAMD_UPSTREAM_SEQUENTIAL))) { + RSPAMD_UPSTREAM_SEQUENTIAL, NULL, 0))) { /* Create UDP socket */ if ((sock = rspamd_inet_address_connect (rspamd_upstream_addr (selected), SOCK_DGRAM, TRUE)) == -1) { diff --git a/src/plugins/surbl.c b/src/plugins/surbl.c index c53fc00bd..e624ce6dd 100644 --- a/src/plugins/surbl.c +++ b/src/plugins/surbl.c @@ -1047,7 +1047,7 @@ register_redirector_call (struct rspamd_url *url, struct rspamd_task *task, struct rspamd_http_message *msg; selected = rspamd_upstream_get (surbl_module_ctx->redirectors, - RSPAMD_UPSTREAM_ROUND_ROBIN); + RSPAMD_UPSTREAM_ROUND_ROBIN, url->host, url->hostlen); if (selected) { s = rspamd_inet_address_connect (rspamd_upstream_addr (selected), diff --git a/src/smtp_proxy.c b/src/smtp_proxy.c index 74c1da4c7..9c5364f1e 100644 --- a/src/smtp_proxy.c +++ b/src/smtp_proxy.c @@ -427,7 +427,7 @@ create_smtp_proxy_upstream_connection (struct smtp_proxy_session *session) /* Try to select upstream */ selected = rspamd_upstream_get (session->ctx->upstreams, - RSPAMD_UPSTREAM_ROUND_ROBIN); + RSPAMD_UPSTREAM_ROUND_ROBIN, NULL, 0); if (selected == NULL) { msg_err ("no upstreams suitable found"); return FALSE; diff --git a/test/rspamd_upstream_test.c b/test/rspamd_upstream_test.c index 6ed14dbf5..a446cc05d 100644 --- a/test/rspamd_upstream_test.c +++ b/test/rspamd_upstream_test.c @@ -39,7 +39,7 @@ rspamd_upstream_test_method (struct upstream_list *ls, struct upstream *up; if (rot != RSPAMD_UPSTREAM_HASHED) { - up = rspamd_upstream_get (ls, rot); + up = rspamd_upstream_get (ls, rot, NULL, 0); g_assert (up != NULL); g_assert (strcmp (rspamd_upstream_name (up), expected) == 0); } @@ -133,7 +133,7 @@ rspamd_upstream_test_func (void) */ nls = rspamd_upstreams_create (cfg->ups_ctx); g_assert (rspamd_upstreams_add_upstream (nls, "127.0.0.1", 0, NULL)); - up = rspamd_upstream_get (nls, RSPAMD_UPSTREAM_RANDOM); + up = rspamd_upstream_get (nls, RSPAMD_UPSTREAM_RANDOM, NULL, 0); rspamd_parse_inet_address (&paddr, "127.0.0.2", 0); g_assert (rspamd_upstream_add_addr (up, paddr)); rspamd_parse_inet_address (&paddr, "::1", 0); @@ -152,7 +152,7 @@ rspamd_upstream_test_func (void) evtimer_set (&ev, rspamd_upstream_timeout_handler, resolver); event_base_set (ev_base, &ev); - up = rspamd_upstream_get (ls, RSPAMD_UPSTREAM_MASTER_SLAVE); + up = rspamd_upstream_get (ls, RSPAMD_UPSTREAM_MASTER_SLAVE, NULL, 0); for (i = 0; i < 100; i ++) { rspamd_upstream_fail (up); } -- 2.39.5