commit 8fb3dc2: [Minor] Use raw more intentionally in a client
Vsevolod Stakhov
vsevolod at highsecure.ru
Fri Jan 21 21:14:04 UTC 2022
Author: Vsevolod Stakhov
Date: 2022-01-21 21:08:16 +0000
URL: https://github.com/rspamd/rspamd/commit/8fb3dc2ad50d23b2bec5dcf1ddeb17c50b8b3b67 (HEAD -> master)
[Minor] Use raw more intentionally in a client
--raw flag now means raw **input**, and there is a special flag to emit
reply in ucl. Previously, `--raw` and `--ucl` had the same meaning which
was stupid. Now `--raw` is an input flag whilst `--ucl` is an output flag
as intended.
---
src/client/rspamc.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/client/rspamc.c b/src/client/rspamc.c
index 3760c62e0..0a49c1c04 100644
--- a/src/client/rspamc.c
+++ b/src/client/rspamc.c
@@ -57,6 +57,7 @@ static gboolean json = FALSE;
static gboolean compact = FALSE;
static gboolean headers = FALSE;
static gboolean raw = FALSE;
+static gboolean ucl_reply = FALSE;
static gboolean extended_urls = FALSE;
static gboolean mime_output = FALSE;
static gboolean empty_input = FALSE;
@@ -130,9 +131,9 @@ static GOptionEntry entries[] =
{ "compact", '\0', 0, G_OPTION_ARG_NONE, &compact, "Output compact json reply", NULL},
{ "headers", 0, 0, G_OPTION_ARG_NONE, &headers, "Output HTTP headers",
NULL },
- { "raw", 0, 0, G_OPTION_ARG_NONE, &raw, "Output raw reply from rspamd",
+ { "raw", 0, 0, G_OPTION_ARG_NONE, &raw, "Input is a raw file, not an email file",
NULL },
- { "ucl", 0, 0, G_OPTION_ARG_NONE, &raw, "Output ucl reply from rspamd",
+ { "ucl", 0, 0, G_OPTION_ARG_NONE, &ucl_reply, "Output ucl reply from rspamd",
NULL },
{ "max-requests", 'n', 0, G_OPTION_ARG_INT, &max_requests,
"Maximum count of parallel requests to rspamd", NULL },
@@ -406,7 +407,7 @@ read_cmd_line (gint *argc, gchar ***argv)
}
if (json || compact) {
- raw = TRUE;
+ ucl_reply = TRUE;
}
/* Argc and argv are shifted after this function */
g_option_context_free (context);
@@ -635,6 +636,10 @@ add_options (GQueue *opts)
ADD_CLIENT_FLAG (flagbuf, "pass_all");
}
+ if (raw) {
+ ADD_CLIENT_HEADER (opts, "Raw", "yes");
+ }
+
if (classifier) {
ADD_CLIENT_HEADER (opts, "Classifier", classifier);
}
@@ -1404,7 +1409,7 @@ rspamc_mime_output (FILE *out, ucl_object_t *result, GString *input,
}
}
- if (json || raw || compact) {
+ if (json || ucl_reply || compact) {
/* We also append json data as a specific header */
if (json) {
json_header = ucl_object_emit (result,
@@ -1482,7 +1487,7 @@ rspamc_client_execute_cmd (struct rspamc_command *cmd, ucl_object_t *result,
rspamc_mime_output (out, result, input, time, err);
}
else if (result) {
- if (raw || cmd->command_output_func == NULL) {
+ if (ucl_reply || cmd->command_output_func == NULL) {
if (json) {
ucl_out = ucl_object_emit (result,
compact ? UCL_EMIT_JSON_COMPACT : UCL_EMIT_JSON);
@@ -1571,7 +1576,7 @@ rspamc_client_cb (struct rspamd_client_connection *conn,
if (headers && msg != NULL) {
rspamc_output_headers (out, msg);
}
- if (raw || cmd->command_output_func == NULL) {
+ if (ucl_reply || cmd->command_output_func == NULL) {
if (cmd->need_input) {
ucl_object_insert_key (result,
ucl_object_fromstring (cbdata->filename),
@@ -1611,15 +1616,15 @@ rspamc_client_cb (struct rspamd_client_connection *conn,
rspamd_fprintf (out, "%s\n", err->message);
if (json && msg != NULL) {
- const gchar *raw;
+ const gchar *raw_body;
gsize rawlen;
- raw = rspamd_http_message_get_body (msg, &rawlen);
+ raw_body = rspamd_http_message_get_body (msg, &rawlen);
- if (raw) {
+ if (raw_body) {
/* We can also output the resulting json */
rspamd_fprintf (out, "%*s\n", (gint)(rawlen - bodylen),
- raw);
+ raw_body);
}
}
}
More information about the Commits
mailing list