aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-03-13 17:28:42 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-03-13 17:28:42 +0000
commiteb91f13938c023c1e7cb5db4fae0f5d83ec74e1a (patch)
tree7a7460fe9fb6bb65cb15a21563884d8cb74d66a4 /src/client
parent0e24e4a9daadde2af987f19d30f78856b0d833c6 (diff)
downloadrspamd-eb91f13938c023c1e7cb5db4fae0f5d83ec74e1a.tar.gz
rspamd-eb91f13938c023c1e7cb5db4fae0f5d83ec74e1a.zip
[Minor] Add ability to pass filename from Rspamc
Diffstat (limited to 'src/client')
-rw-r--r--src/client/rspamc.c24
-rw-r--r--src/client/rspamdclient.c5
-rw-r--r--src/client/rspamdclient.h19
3 files changed, 29 insertions, 19 deletions
diff --git a/src/client/rspamc.c b/src/client/rspamc.c
index ff5f23819..2bd137607 100644
--- a/src/client/rspamc.c
+++ b/src/client/rspamc.c
@@ -1630,22 +1630,26 @@ rspamc_process_input (struct event_base *ev_base, struct rspamc_command *cmd,
if (conn != NULL) {
cbdata = g_malloc0 (sizeof (struct rspamc_callback_data));
cbdata->cmd = cmd;
- cbdata->filename = g_strdup (name);
+
+ if (name) {
+ cbdata->filename = g_strdup (name);
+ }
if (cmd->need_input) {
rspamd_client_command (conn, cmd->path, attrs, in, rspamc_client_cb,
- cbdata, compressed, dictionary, &err);
+ cbdata, compressed, dictionary, cbdata->filename, &err);
}
else {
rspamd_client_command (conn,
- cmd->path,
- attrs,
- NULL,
- rspamc_client_cb,
- cbdata,
- compressed,
- dictionary,
- &err);
+ cmd->path,
+ attrs,
+ NULL,
+ rspamc_client_cb,
+ cbdata,
+ compressed,
+ dictionary,
+ cbdata->filename,
+ &err);
}
}
else {
diff --git a/src/client/rspamdclient.c b/src/client/rspamdclient.c
index ad801c182..490e5c369 100644
--- a/src/client/rspamdclient.c
+++ b/src/client/rspamdclient.c
@@ -296,6 +296,7 @@ rspamd_client_command (struct rspamd_client_connection *conn,
FILE *in, rspamd_client_callback cb,
gpointer ud, gboolean compressed,
const gchar *comp_dictionary,
+ const gchar *filename,
GError **err)
{
struct rspamd_client_request *req;
@@ -431,6 +432,10 @@ rspamd_client_command (struct rspamd_client_connection *conn,
}
}
+ if (filename) {
+ rspamd_http_message_add_header (req->msg, "Filename", filename);
+ }
+
req->msg->url = rspamd_fstring_append (req->msg->url, "/", 1);
req->msg->url = rspamd_fstring_append (req->msg->url, command, strlen (command));
diff --git a/src/client/rspamdclient.h b/src/client/rspamdclient.h
index e5fe64d91..129ee39a1 100644
--- a/src/client/rspamdclient.h
+++ b/src/client/rspamdclient.h
@@ -73,15 +73,16 @@ struct rspamd_client_connection * rspamd_client_init (
* @return
*/
gboolean rspamd_client_command (
- struct rspamd_client_connection *conn,
- const gchar *command,
- GQueue *attrs,
- FILE *in,
- rspamd_client_callback cb,
- gpointer ud,
- gboolean compressed,
- const gchar *comp_dictionary,
- GError **err);
+ struct rspamd_client_connection *conn,
+ const gchar *command,
+ GQueue *attrs,
+ FILE *in,
+ rspamd_client_callback cb,
+ gpointer ud,
+ gboolean compressed,
+ const gchar *comp_dictionary,
+ const gchar *filename,
+ GError **err);
/**
* Destroy a connection to rspamd