]> source.dussan.org Git - rspamd.git/commitdiff
Use new rotation logic in the code
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 21 Nov 2015 13:31:26 +0000 (13:31 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 21 Nov 2015 13:31:26 +0000 (13:31 +0000)
src/http_proxy.c
src/libmime/smtp_utils.c
src/libstat/backends/redis.c
src/lua/lua_upstream.c
src/plugins/fuzzy_check.c
src/plugins/surbl.c
src/smtp_proxy.c
test/rspamd_upstream_test.c

index c35c02bd1d0576478af3e2038c0d73600e1bfe85..43cacae9c9d6e98540216503d94c31a1e0c287c2 100644 (file)
@@ -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");
index 33750bae5d77f5ae73fb160d3a25f1a11be5aa06..ce7ac72fa607ef248a78c85f6dfafa2017510586 100644 (file)
@@ -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;
index 66bad44719222507cc6f460c6bdc0c2fd1bdb3bc..b5194065aacdac740ab7348b13252cb53ced2ec2 100644 (file)
@@ -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) {
index 8ceadcc8c99dabdeea17d241ee080b1e359c3bdb..18a6069ac66c60c65554d507520b5fe59fdfab4a 100644 (file)
@@ -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);
index c6db5e016c519ed4a2a6e50d294a1d33d656fd07..7e03009f991f50dbd6caa6a226869328eca10372 100644 (file)
@@ -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) {
index c53fc00bd066aff2de6af233b79e5cdfdca79703..e624ce6ddaaa8d30f01975f673f7cbb5e2e37511 100644 (file)
@@ -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),
index 74c1da4c758ea338552ce04836dc2dc820efab58..9c5364f1ee52daadc365f24e86d03f74c1131263 100644 (file)
@@ -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;
index 6ed14dbf58a5529ace754fea05cc3d3d4803f769..a446cc05d2015984d3a1b37b062a722da1b4b648 100644 (file)
@@ -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);
        }