diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/CMakeLists.txt | 4 | ||||
-rw-r--r-- | utils/content_type_bench.c | 165 | ||||
-rw-r--r-- | utils/received_parser_bench.c | 128 |
3 files changed, 0 insertions, 297 deletions
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 02582b6b9..f2c6c54a0 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -1,7 +1,5 @@ SET(UTILSERVERSRC rspamd_http_server.c) SET(UTILBENCHSRC rspamd_http_bench.c) -SET(RECVBENCHSRC received_parser_bench.c) -SET(CTYPEBENCHSRC content_type_bench.c) SET(BASE64SRC base64.c) SET(MIMESRC mime_tool.c) @@ -19,8 +17,6 @@ ENDMACRO() IF (ENABLE_UTILS MATCHES "ON") ADD_UTIL(rspamd-http-server ${UTILSERVERSRC}) ADD_UTIL(rspamd-http-bench ${UTILBENCHSRC}) - ADD_UTIL(rspamd-received-bench ${RECVBENCHSRC}) - ADD_UTIL(rspamd-ctype-bench ${CTYPEBENCHSRC}) ADD_UTIL(rspamd-base64 ${BASE64SRC}) ADD_UTIL(rspamd-mime-tool ${MIMESRC}) ENDIF() diff --git a/utils/content_type_bench.c b/utils/content_type_bench.c deleted file mode 100644 index e2f26a8ac..000000000 --- a/utils/content_type_bench.c +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * Copyright 2016 Vsevolod Stakhov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "config.h" -#include "printf.h" -#include "message.h" -#include "util.h" -#include "content_type.h" - -static gdouble total_time = 0; -static gint total_parsed = 0; -static gint total_valid = 0; -static gint total_type = 0; -static gint total_subtype = 0; -static gint total_charset = 0; -static gint total_attrs = 0; -static gint total_boundaries = 0; -static gboolean verbose = 1; - -#define MODE_NORMAL 0 -#define MODE_GMIME 1 -#define MODE_COMPARE 2 - -static void -rspamd_process_file (const gchar *fname, gint mode) -{ - rspamd_mempool_t *pool; - GIOChannel *f; - GError *err = NULL; - GString *buf; - struct rspamd_content_type *ct; - gdouble t1, t2; - rspamd_ftok_t t; - - f = g_io_channel_new_file (fname, "r", &err); - - if (!f) { - rspamd_fprintf (stderr, "cannot open %s: %e\n", fname, err); - g_error_free (err); - - return; - } - - g_io_channel_set_encoding (f, NULL, NULL); - buf = g_string_sized_new (8192); - pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), "test"); - - while (g_io_channel_read_line_string (f, buf, NULL, &err) - == G_IO_STATUS_NORMAL) { - - while (buf->len > 0 && g_ascii_isspace (buf->str[buf->len - 1])) { - buf->len --; - } - - if (mode == MODE_NORMAL) { - t1 = rspamd_get_virtual_ticks (); - ct = rspamd_content_type_parse (buf->str, buf->len, pool); - t2 = rspamd_get_virtual_ticks (); - } - else { - rspamd_fprintf (stderr, "gmime is no longer supported\n"); - exit (EXIT_FAILURE); - } - - total_time += t2 - t1; - total_parsed ++; - - if (mode == MODE_NORMAL) { - - if (ct) { - total_valid ++; - - if (ct->type.len > 0) { - total_type ++; - } - if (ct->subtype.len > 0) { - total_subtype ++; - } - if (ct->charset.len > 0) { - total_charset ++; - } - if (ct->boundary.len > 0) { - total_boundaries ++; - } - if (ct->attrs) { - total_attrs ++; - } - } - } - } - - if (err) { - rspamd_fprintf (stderr, "cannot read %s: %e\n", fname, err); - g_error_free (err); - } - - g_io_channel_unref (f); - g_string_free (buf, TRUE); - rspamd_mempool_delete (pool); -} - -int -main (int argc, char **argv) -{ - gint i, start = 1, mode = MODE_NORMAL; - - if (argc > 2 && *argv[1] == '-') { - start = 2; - - if (argv[1][1] == 'g') { - mode = MODE_GMIME; - } - else if (argv[1][1] == 'c') { - mode = MODE_COMPARE; - } - } - - for (i = start; i < argc; i ++) { - if (argv[i]) { - rspamd_process_file (argv[i], mode); - } - } - - if (mode != MODE_COMPARE) { - rspamd_printf ("Parsed %d received headers in %.3f seconds\n" - "Total valid (has type): %d\n" - "Total known type: %d\n" - "Total known subtype: %d\n" - "Total known charset: %d\n" - "Total has attrs: %d\n" - "Total has boundaries: %d\n", - total_parsed, total_time, - total_valid, total_type, - total_subtype, total_charset, - total_attrs, - total_boundaries); - } - else { - rspamd_printf ("Parsed %d received headers in %.3f seconds\n" - "Total valid (parsed by both): %d\n" - "Total same type: %d\n" - "Total same subtype: %d\n" - "Total same charset: %d\n" - "Total same boundaries: %d\n", - total_parsed, total_time, - total_valid, total_type, - total_subtype, total_charset, - total_boundaries); - } - - return 0; -} diff --git a/utils/received_parser_bench.c b/utils/received_parser_bench.c deleted file mode 100644 index 2ad256452..000000000 --- a/utils/received_parser_bench.c +++ /dev/null @@ -1,128 +0,0 @@ -/*- - * Copyright 2016 Vsevolod Stakhov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "config.h" -#include "printf.h" -#include "message.h" -#include "smtp_parsers.h" - -static gdouble total_time = 0; -static gint total_parsed = 0; -static gint total_valid = 0; -static gint total_real_ip = 0; -static gint total_real_host = 0; -static gint total_known_proto = 0; -static gint total_known_ts = 0; -static gint total_known_for = 0; - -static void -rspamd_process_file (const gchar *fname) -{ - struct rspamd_task *task; - GIOChannel *f; - GError *err = NULL; - GString *buf; - struct received_header rh; - gdouble t1, t2; - - f = g_io_channel_new_file (fname, "r", &err); - - if (!f) { - rspamd_fprintf (stderr, "cannot open %s: %e\n", fname, err); - g_error_free (err); - - return; - } - - g_io_channel_set_encoding (f, NULL, NULL); - buf = g_string_sized_new (8192); - task = g_malloc0 (sizeof (*task)); - task->task_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), "test"); - - while (g_io_channel_read_line_string (f, buf, NULL, &err) - == G_IO_STATUS_NORMAL) { - - while (buf->len > 0 && g_ascii_isspace (buf->str[buf->len - 1])) { - buf->len --; - } - - t1 = rspamd_get_virtual_ticks (); - rspamd_smtp_received_parse (task, buf->str, buf->len, &rh); - t2 = rspamd_get_virtual_ticks (); - - total_time += t2 - t1; - total_parsed ++; - - if (rh.addr) { - total_real_ip ++; - } - if (rh.real_hostname) { - total_real_host ++; - } - if (rh.type != RSPAMD_RECEIVED_UNKNOWN) { - total_known_proto ++; - } - - if (rh.by_hostname || rh.timestamp > 0) { - total_valid ++; - } - - if (rh.timestamp != 0) { - total_known_ts ++; - } - - if (rh.for_mbox) { - total_known_for ++; - } - } - - if (err) { - rspamd_fprintf (stderr, "cannot read %s: %e\n", fname, err); - g_error_free (err); - } - - g_io_channel_unref (f); - g_string_free (buf, TRUE); - rspamd_mempool_delete (task->task_pool); - g_free (task); -} - -int -main (int argc, char **argv) -{ - gint i; - - for (i = 1; i < argc; i ++) { - if (argv[i]) { - rspamd_process_file (argv[i]); - } - } - - rspamd_printf ("Parsed %d received headers in %.3f seconds\n" - "Total valid (has by part): %d\n" - "Total real ip: %d\n" - "Total real host: %d\n" - "Total known proto: %d\n" - "Total known timestamp: %d\n" - "Total known for: %d\n", - total_parsed, total_time, - total_valid, total_real_ip, - total_real_host, total_known_proto, - total_known_ts, - total_known_for); - - return 0; -} |