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)
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;
}
"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));
}