Browse Source

[Minor] Terminate milter session on IO errors

Issue: #3149
tags/2.3
Vsevolod Stakhov 4 years ago
parent
commit
2eff88401a
1 changed files with 14 additions and 0 deletions
  1. 14
    0
      src/libserver/milter.c

+ 14
- 0
src/libserver/milter.c View File

@@ -955,6 +955,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session,
if (r == -1) {
if (errno == EAGAIN || errno == EINTR) {
rspamd_milter_plan_io (session, priv, EV_READ);

return TRUE;
}
else {
/* Fatal IO error */
@@ -964,6 +966,10 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session,
priv->err_cb (priv->fd, session, priv->ud, err);
REF_RELEASE (session);
g_error_free (err);

REF_RELEASE (session);

return FALSE;
}
}
else if (r == 0) {
@@ -973,6 +979,10 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session,
priv->err_cb (priv->fd, session, priv->ud, err);
REF_RELEASE (session);
g_error_free (err);

REF_RELEASE (session);

return FALSE;
}
else {
priv->parser.buf->len += r;
@@ -1023,6 +1033,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session,
REF_RELEASE (session);
g_error_free (err);

REF_RELEASE (session);

return FALSE;
}
}
@@ -1034,6 +1046,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session,
REF_RELEASE (session);
g_error_free (err);

REF_RELEASE (session);

return FALSE;
}
else {

Loading…
Cancel
Save