"{\"success\":true}");
}
- rspamd_task_free (session->task, TRUE);
+ if (session->task != NULL) {
+ rspamd_task_free (session->task, TRUE);
+ session->task = NULL;
+ }
}
msg_err_task ("got IO timeout with server %s, after %d retransmits",
rspamd_upstream_name (session->server),
session->retransmits);
- rspamd_task_free (session->task, TRUE);
+
+ if (*session->saved > 0 ) {
+ (*session->saved)--;
+ if (*session->saved == 0 && session->task != NULL) {
+ rspamd_task_free (session->task, TRUE);
+ session->task = NULL;
+ }
+ }
+
rspamd_http_connection_unref (session->http_entry->conn);
event_del (&session->ev);
event_del (&session->timev);