Browse Source

[Minor] Improve encryption requirement error code

tags/1.8.3
Vsevolod Stakhov 5 years ago
parent
commit
647adeec7f
1 changed files with 7 additions and 1 deletions
  1. 7
    1
      src/libutil/http.c

+ 7
- 1
src/libutil/http.c View File

@@ -45,6 +45,7 @@ enum rspamd_http_priv_flags {
RSPAMD_HTTP_CONN_FLAG_NEW_HEADER = 1 << 1,
RSPAMD_HTTP_CONN_FLAG_RESETED = 1 << 2,
RSPAMD_HTTP_CONN_FLAG_TOO_LARGE = 1 << 3,
RSPAMD_HTTP_CONN_FLAG_ENCRYPTION_NEEDED = 1 << 4,
};

#define IS_CONN_ENCRYPTED(c) ((c)->flags & RSPAMD_HTTP_CONN_FLAG_ENCRYPTED)
@@ -915,6 +916,7 @@ rspamd_http_on_message_complete (http_parser * parser)
priv = conn->priv;

if ((conn->opts & RSPAMD_HTTP_REQUIRE_ENCRYPTION) && !IS_CONN_ENCRYPTED (priv)) {
priv->flags |= RSPAMD_HTTP_CONN_FLAG_ENCRYPTION_NEEDED;
msg_err ("unencrypted connection when encryption has been requested");
return -1;
}
@@ -1185,8 +1187,12 @@ rspamd_http_event_handler (int fd, short what, gpointer ud)
"Request entity too large: %zu",
(size_t)priv->parser.content_length);
}
else if (priv->flags & RSPAMD_HTTP_CONN_FLAG_ENCRYPTION_NEEDED) {
err = g_error_new (HTTP_ERROR, 400,
"Encryption required");
}
else {
err = g_error_new (HTTP_ERROR, priv->parser.http_errno,
err = g_error_new (HTTP_ERROR, 500 + priv->parser.http_errno,
"HTTP parser error: %s",
http_errno_description (priv->parser.http_errno));
}

Loading…
Cancel
Save