From de4532aba29f10943776f85ae625633eb8c8406f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 2 May 2014 12:28:43 +0100 Subject: Handle HTTP headers during task processing. --- src/libserver/protocol.c | 9 +++------ src/libserver/protocol.h | 15 +++++++++++++-- src/libserver/task.c | 2 ++ 3 files changed, 18 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c index 8f42a08ce..df5e9723e 100644 --- a/src/libserver/protocol.c +++ b/src/libserver/protocol.c @@ -223,8 +223,9 @@ err: return FALSE; } -static gboolean -rspamd_protocol_handle_headers (struct rspamd_task *task, struct rspamd_http_message *msg) +gboolean +rspamd_protocol_handle_headers (struct rspamd_task *task, + struct rspamd_http_message *msg) { gchar *headern, *err, *tmp; gboolean res = TRUE; @@ -401,10 +402,6 @@ rspamd_protocol_handle_request (struct rspamd_task *task, ret = rspamd_protocol_handle_url (task, msg); } - if (ret) { - ret = rspamd_protocol_handle_headers (task, msg); - } - return ret; } diff --git a/src/libserver/protocol.h b/src/libserver/protocol.h index b3643ac7a..aed45752c 100644 --- a/src/libserver/protocol.h +++ b/src/libserver/protocol.h @@ -20,20 +20,31 @@ struct metric; +/** + * Process headers into HTTP message and set appropriate task fields + * @param task + * @param msg + * @return + */ +gboolean rspamd_protocol_handle_headers (struct rspamd_task *task, + struct rspamd_http_message *msg); + /** * Process HTTP request to the task structure * @param task * @param msg * @return */ -gboolean rspamd_protocol_handle_request (struct rspamd_task *task, struct rspamd_http_message *msg); +gboolean rspamd_protocol_handle_request (struct rspamd_task *task, + struct rspamd_http_message *msg); /** * Write task results to http message * @param msg * @param task */ -void rspamd_protocol_http_reply (struct rspamd_http_message *msg, struct rspamd_task *task); +void rspamd_protocol_http_reply (struct rspamd_http_message *msg, + struct rspamd_task *task); /** * Write reply for specified task command diff --git a/src/libserver/task.c b/src/libserver/task.c index 27ddf63ca..00ff9003d 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -290,6 +290,8 @@ rspamd_task_process (struct rspamd_task *task, /* We got body, set wanna_die flag */ task->s->wanna_die = TRUE; + rspamd_protocol_handle_headers (task, msg); + r = process_message (task); if (r == -1) { msg_warn ("processing of message failed"); -- cgit v1.2.3