aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/surbl.c3
-rw-r--r--src/util.c7
2 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/surbl.c b/src/plugins/surbl.c
index cd814187f..5b9b35546 100644
--- a/src/plugins/surbl.c
+++ b/src/plugins/surbl.c
@@ -511,7 +511,6 @@ redirector_callback (int fd, short what, void *arg)
if (*p == '\0') {
msg_info ("redirector_callback: got reply from redirector: '%s' -> '%s'", struri (param->url), c);
parse_uri (param->url, c, param->task->task_pool);
- param->task->save.saved ++;
}
}
event_del (&param->ev);
@@ -572,7 +571,7 @@ register_redirector_call (struct uri *url, struct worker_task *task)
param = memory_pool_alloc (task->task_pool, sizeof (struct redirector_param));
param->url = url;
param->task = task;
- param->state = STATE_READ;
+ param->state = STATE_CONNECT;
param->sock = s;
timeout.tv_sec = surbl_module_ctx->connect_timeout / 1000;
timeout.tv_usec = surbl_module_ctx->connect_timeout - timeout.tv_sec * 1000;
diff --git a/src/util.c b/src/util.c
index afcb13b23..fac109c78 100644
--- a/src/util.c
+++ b/src/util.c
@@ -165,6 +165,7 @@ write_pid (struct rspamd_main *main)
void
init_signals (struct sigaction *signals, sig_t sig_handler)
{
+ struct sigaction sigpipe_act;
/* Setting up signal handlers */
/* SIGUSR1 - reopen config file */
/* SIGUSR2 - worker is ready for accept */
@@ -186,6 +187,12 @@ init_signals (struct sigaction *signals, sig_t sig_handler)
sigaction (SIGUSR1, signals, NULL);
sigaction (SIGUSR2, signals, NULL);
sigaction (SIGALRM, signals, NULL);
+
+ /* Ignore SIGPIPE as we handle write errors manually */
+ sigemptyset (&sigpipe_act.sa_mask);
+ sigaddset (&sigpipe_act.sa_mask, SIGPIPE);
+ sigpipe_act.sa_handler = SIG_IGN;
+ sigaction (SIGPIPE, &sigpipe_act, NULL);
}
void