aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/surbl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/surbl.c')
-rw-r--r--src/plugins/surbl.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/plugins/surbl.c b/src/plugins/surbl.c
index d2632cb81..63a7dd544 100644
--- a/src/plugins/surbl.c
+++ b/src/plugins/surbl.c
@@ -125,7 +125,6 @@ struct redirector_param {
GHashTable *tree;
struct suffix_item *suffix;
struct rspamd_symcache_item *item;
- gint sock;
guint redirector_requests;
};
@@ -1689,7 +1688,6 @@ free_redirector_session (void *ud)
}
rspamd_http_connection_unref (param->conn);
- close (param->sock);
}
static void
@@ -1780,7 +1778,6 @@ static void
register_redirector_call (struct rspamd_url *url, struct rspamd_task *task,
const gchar *rule)
{
- gint s = -1;
struct redirector_param *param;
struct timeval *timeout;
struct upstream *selected;
@@ -1793,11 +1790,15 @@ register_redirector_call (struct rspamd_url *url, struct rspamd_task *task,
RSPAMD_UPSTREAM_ROUND_ROBIN, url->host, url->hostlen);
if (selected) {
- s = rspamd_inet_address_connect (rspamd_upstream_addr_next (selected),
- SOCK_STREAM, TRUE);
+ param->conn = rspamd_http_connection_new_client (NULL,
+ NULL,
+ surbl_redirector_error,
+ surbl_redirector_finish,
+ RSPAMD_HTTP_CLIENT_SIMPLE,
+ rspamd_upstream_addr_next (selected));
}
- if (s == -1) {
+ if (param->conn == NULL) {
msg_info_surbl ("<%s> cannot create tcp socket failed: %s",
task->message_id,
strerror (errno));
@@ -1810,17 +1811,9 @@ register_redirector_call (struct rspamd_url *url, struct rspamd_task *task,
sizeof (struct redirector_param));
param->url = url;
param->task = task;
- param->conn = rspamd_http_connection_new (NULL,
- s,
- NULL,
- surbl_redirector_error,
- surbl_redirector_finish,
- RSPAMD_HTTP_CLIENT_SIMPLE,
- RSPAMD_HTTP_CLIENT);
param->ctx = surbl_module_ctx;
msg = rspamd_http_new_message (HTTP_REQUEST);
msg->url = rspamd_fstring_assign (msg->url, url->string, url->urllen);
- param->sock = s;
param->redirector = selected;
timeout = rspamd_mempool_alloc (task->task_pool, sizeof (struct timeval));
double_to_tv (surbl_module_ctx->read_timeout, timeout);