priv->msg->body = g_string_sized_new (BUFSIZ);
}
+ if (parser->flags & F_SPAMC) {
+ priv->msg->flags |= RSPAMD_HTTP_FLAG_SPAMC;
+ }
+
priv->msg->body_buf.str = priv->msg->body->str;
priv->msg->method = parser->method;
priv->msg->code = parser->status_code;
}
else {
/* Legacy spamd reply */
- rspamd_printf_gstring (buf, "RSPAMD/1.3 0 EX_OK\r\n");
+ if (msg->flags & RSPAMD_HTTP_FLAG_SPAMC) {
+ rspamd_printf_gstring (buf, "SPAMD/1.1 0 EX_OK\r\n");
+ }
+ else {
+ rspamd_printf_gstring (buf, "RSPAMD/1.3 0 EX_OK\r\n");
+ }
}
}
else {
struct rspamd_http_header *next, *prev;
};
+/**
+ * Legacy spamc protocol
+ */
+#define RSPAMD_HTTP_FLAG_SPAMC 1 << 1
+
/**
* HTTP message structure, used for requests and replies
*/
time_t date;
gint code;
enum http_method method;
+ gint flags;
};