Browse Source

[Minor] Add ability to pass filename from Rspamc

tags/1.7.1
Vsevolod Stakhov 6 years ago
parent
commit
eb91f13938

+ 14
- 10
src/client/rspamc.c View File

@@ -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 {

+ 5
- 0
src/client/rspamdclient.c View File

@@ -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));


+ 10
- 9
src/client/rspamdclient.h View File

@@ -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

+ 6
- 0
src/libserver/protocol.c View File

@@ -24,6 +24,7 @@
#include "unix-std.h"
#include "protocol_internal.h"
#include "libserver/mempool_vars_internal.h"
#include "task.h"
#include <math.h>

static GQuark
@@ -260,6 +261,11 @@ rspamd_protocol_handle_headers (struct rspamd_task *task,
task->flags |= RSPAMD_TASK_FLAG_BROKEN_HEADERS;
}
}
IF_HEADER (FILENAME_HEADER) {
task->msg.fpath = rspamd_mempool_ftokdup (task->task_pool,
hv_tok);
debug_task ("read filename header, value: %s", task->msg.fpath);
}
else {
debug_task ("wrong header: %V", hn);
}

+ 1
- 0
src/libserver/protocol_internal.h View File

@@ -80,5 +80,6 @@
#define TLS_VERSION_HEADER "TLS-Version"
#define MTA_NAME_HEADER "MTA-Name"
#define MILTER_HEADER "Milter"
#define FILENAME_HEADER "Filename"

#endif //RSPAMD_PROTOCOL_INTERNAL_H

Loading…
Cancel
Save