diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-12-22 23:58:51 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-12-22 23:58:51 +0000 |
commit | 7bf934ec685f615509df5295b6d521607a036373 (patch) | |
tree | 69405c2c15a2623fd07d3bafd8be7c6263c0f3cf | |
parent | 93cad030fda4f15c32494f815790d9f953068352 (diff) | |
download | rspamd-7bf934ec685f615509df5295b6d521607a036373.tar.gz rspamd-7bf934ec685f615509df5295b6d521607a036373.zip |
[Rework] Finally remove gmime dependency from Rspamd
-rw-r--r-- | CMakeLists.txt | 21 | ||||
-rw-r--r-- | config.h.in | 1 | ||||
-rw-r--r-- | src/controller.c | 1 | ||||
-rw-r--r-- | src/libmime/mime_expressions.c | 3 | ||||
-rw-r--r-- | src/libserver/protocol.c | 1 | ||||
-rw-r--r-- | src/libserver/task.h | 2 | ||||
-rw-r--r-- | src/libutil/util.c | 6 | ||||
-rw-r--r-- | src/rspamd_proxy.c | 1 | ||||
-rw-r--r-- | src/worker.c | 2 | ||||
-rw-r--r-- | utils/content_type_bench.c | 118 | ||||
-rw-r--r-- | utils/mime_tool.c | 15 |
11 files changed, 14 insertions, 157 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 306f2a33f..aedb977d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,6 @@ OPTION(ENABLE_SQLITE "Find and link with sqlite3 library [default: OFF]" OPTION(ENABLE_HIREDIS "Find and link with external redis library [default: ON]" ON) OPTION(ENABLE_URL_INCLUDE "Enable urls in ucl includes (requires libcurl or libfetch) [default: OFF]" OFF) OPTION(NO_SHARED "Build internal libs static [default: ON]" ON) -OPTION(FORCE_GMIME24 "Link with gmime2.4 [default: OFF]" OFF) OPTION(INSTALL_EXAMPLES "Install examples [default: OFF]" OFF) OPTION(INSTALL_WEBUI "Install web interface [default: ON]" ON) OPTION(WANT_SYSTEMD_UNITS "Install systemd unit files on Linux [default: OFF]" OFF) @@ -662,22 +661,6 @@ IF(ENABLE_JEMALLOC MATCHES "ON") ROOT ${JEMALLOC_ROOT_DIR} MODULES jemalloc) SET(WITH_JEMALLOC "1") ENDIF() -ProcessPackage(GMIME LIBRARY gmime-2.6 gmime-2.4 gmime-2.2 gmime-2 - INCLUDE gmime/gmime.h - INCLUDE_SUFFIXES include/gmime include/gmime-2.0 include/gmime-2.4 include/gmime-2.6 - ROOT ${GMIME_ROOT_DIR} MODULES gmime-2.6 gmime-2.4 gmime-2.0) -IF(GMIME_ROOT_DIR) - LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "-lz") -ENDIF() -ProcessPackage(GIO LIBRARY gio-2.0 INCLUDE glib.h - INCLUDE_SUFFIXES include/glib include/glib-2.0 - ROOT ${GLIB_ROOT_DIR} MODULES gio-no-export-2.0>=2.28 gio-2.0>=2.28) -ProcessPackage(GOBJECT LIBRARY gobject-2.0 INCLUDE glib.h - INCLUDE_SUFFIXES include/glib include/glib-2.0 - ROOT ${GLIB_ROOT_DIR} MODULES gobject-no-export-2.0>=2.28 gobject-2.0>=2.28) -ProcessPackage(GMODULE2 LIBRARY gmodule-2.0 INCLUDE glib.h - INCLUDE_SUFFIXES include/glib include/glib-2.0 - ROOT ${GLIB_ROOT_DIR} MODULES gmodule-no-export-2.0>=2.28 gmodule-2.0>=2.28) ProcessPackage(GLIB2 LIBRARY glib-2.0 INCLUDE glib.h INCLUDE_SUFFIXES include/glib include/glib-2.0 ROOT ${GLIB_ROOT_DIR} MODULES glib-2.0>=2.28) @@ -746,10 +729,6 @@ ENDIF () #Check for openssl (required for dkim) SET(HAVE_OPENSSL 1) -IF(GMIME2_VERSION VERSION_GREATER "2.4.0" OR NOT GMIME2_VERSION) - SET(GMIME24 1) -ENDIF() - IF(ENABLE_HIREDIS MATCHES "ON") ADD_SUBDIRECTORY(contrib/hiredis) SET(WITH_HIREDIS 1) diff --git a/config.h.in b/config.h.in index a8cbd95fa..3d1c5f947 100644 --- a/config.h.in +++ b/config.h.in @@ -9,7 +9,6 @@ #cmakedefine GLIB_HASH_COMPAT 1 #cmakedefine GLIB_RE_COMPAT 1 #cmakedefine GLIB_UNISCRIPT_COMPAT 1 -#cmakedefine GMIME24 1 #cmakedefine HAVE_AIO_H 1 #cmakedefine HAVE_ARPA_INET_H 1 #cmakedefine HAVE_ASM_PAUSE 1 diff --git a/src/controller.c b/src/controller.c index 4380f880e..16bbaff10 100644 --- a/src/controller.c +++ b/src/controller.c @@ -3198,7 +3198,6 @@ start_controller_worker (struct rspamd_worker *worker) event_base_loop (ctx->ev_base, 0); rspamd_worker_block_signals (); - g_mime_shutdown (); rspamd_stat_close (); rspamd_http_router_free (ctx->http); rspamd_log_close (worker->srv->logger); diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index f404cc70c..d848f797d 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -1750,9 +1750,6 @@ rspamd_content_type_check (struct rspamd_task *task, } } -#ifndef GMIME24 - g_object_unref (part); -#endif if (check_subtype) { param_data = &ct->subtype; } diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c index 8b7c4b6f6..566f7bc4b 100644 --- a/src/libserver/protocol.c +++ b/src/libserver/protocol.c @@ -27,6 +27,7 @@ #include "cryptobox.h" #include "contrib/zstd/zstd.h" #include "lua/lua_common.h" +#include "unix-std.h" #include <math.h> /* Max line size */ diff --git a/src/libserver/task.h b/src/libserver/task.h index 7e56ded79..be94f00c2 100644 --- a/src/libserver/task.h +++ b/src/libserver/task.h @@ -24,8 +24,6 @@ #include "dns.h" #include "re_cache.h" -#include <gmime/gmime.h> - enum rspamd_command { CMD_CHECK, CMD_SYMBOLS, diff --git a/src/libutil/util.c b/src/libutil/util.c index 9d87d5c9f..c33a92180 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -2105,11 +2105,6 @@ rspamd_init_libs (void) rlim.rlim_max = rlim.rlim_cur; setrlimit (RLIMIT_STACK, &rlim); -#ifdef GMIME_ENABLE_RFC2047_WORKAROUNDS - g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); -#else - g_mime_init (0); -#endif ctx->libmagic = magic_open (MAGIC_MIME|MAGIC_NO_CHECK_COMPRESS| MAGIC_NO_CHECK_ELF|MAGIC_NO_CHECK_TAR); ctx->local_addrs = rspamd_inet_library_init (); @@ -2291,7 +2286,6 @@ rspamd_deinit_libs (struct rspamd_external_libs_ctx *ctx) } g_free (ctx->ottery_cfg); - g_mime_shutdown (); #ifdef HAVE_OPENSSL EVP_cleanup (); diff --git a/src/rspamd_proxy.c b/src/rspamd_proxy.c index 9f81bcc99..a6ca0b972 100644 --- a/src/rspamd_proxy.c +++ b/src/rspamd_proxy.c @@ -1493,7 +1493,6 @@ start_rspamd_proxy (struct rspamd_worker *worker) event_base_loop (ctx->ev_base, 0); rspamd_worker_block_signals (); - g_mime_shutdown (); rspamd_log_close (worker->srv->logger); if (ctx->key) { diff --git a/src/worker.c b/src/worker.c index df772feb5..7b0373c9e 100644 --- a/src/worker.c +++ b/src/worker.c @@ -36,6 +36,7 @@ #include "utlist.h" #include "libutil/http_private.h" #include "monitored.h" +#include "unix-std.h" #include "lua/lua_common.h" @@ -633,7 +634,6 @@ start_worker (struct rspamd_worker *worker) event_base_loop (ctx->ev_base, 0); rspamd_worker_block_signals (); - g_mime_shutdown (); rspamd_stat_close (); rspamd_log_close (worker->srv->logger); diff --git a/utils/content_type_bench.c b/utils/content_type_bench.c index 634476b64..20eebf927 100644 --- a/utils/content_type_bench.c +++ b/utils/content_type_bench.c @@ -19,7 +19,6 @@ #include "message.h" #include "util.h" #include "content_type.h" -#include <gmime/gmime.h> static gdouble total_time = 0; static gint total_parsed = 0; @@ -44,7 +43,6 @@ rspamd_process_file (const gchar *fname, gint mode) GString *buf; struct rspamd_content_type *ct; gdouble t1, t2; - GMimeContentType *gct; rspamd_ftok_t t; f = g_io_channel_new_file (fname, "r", &err); @@ -72,16 +70,9 @@ rspamd_process_file (const gchar *fname, gint mode) ct = rspamd_content_type_parse (buf->str, buf->len, pool); t2 = rspamd_get_virtual_ticks (); } - else if (mode == MODE_GMIME) { - t1 = rspamd_get_virtual_ticks (); - gct = g_mime_content_type_new_from_string (buf->str); - t2 = rspamd_get_virtual_ticks (); - } else { - t1 = rspamd_get_virtual_ticks (); - ct = rspamd_content_type_parse (buf->str, buf->len, pool); - gct = g_mime_content_type_new_from_string (buf->str); - t2 = rspamd_get_virtual_ticks (); + rspamd_fprintf ("gmime is no longer supported\n"); + exit (EXIT_FAILURE); } total_time += t2 - t1; @@ -109,107 +100,6 @@ rspamd_process_file (const gchar *fname, gint mode) } } } - else if (mode == MODE_GMIME) { - if (gct) { - total_valid ++; - - if (g_mime_content_type_get_media_type (gct)) { - total_type ++; - } - if (g_mime_content_type_get_media_subtype (gct)) { - total_subtype ++; - } - if (g_mime_content_type_get_parameter (gct, "charset")) { - total_charset ++; - } - if (g_mime_content_type_get_parameter (gct, "boundary")) { - total_boundaries ++; - } - if (g_mime_content_type_get_params (gct)) { - total_attrs ++; - } - - g_object_unref (gct); - } - } - else { - if (gct && ct) { - total_valid ++; - - if (g_mime_content_type_get_media_type (gct) && ct->type.len) { - t.begin = g_mime_content_type_get_media_type (gct); - t.len = strlen (t.begin); - - if (rspamd_ftok_casecmp (&ct->type, &t) == 0) { - total_type ++; - } - else if (verbose) { - rspamd_fprintf (stderr, "type: '%*s'(rspamd) '%s'gmime\n", - (gint)ct->type.len, ct->type.begin, - t.begin); - } - } - if (g_mime_content_type_get_media_subtype (gct) && ct->subtype.len) { - t.begin = g_mime_content_type_get_media_subtype (gct); - t.len = strlen (t.begin); - - if (rspamd_ftok_casecmp (&ct->subtype, &t) == 0) { - total_subtype ++; - } - else if (verbose) { - rspamd_fprintf (stderr, "subtype: '%*s'(rspamd) '%s'gmime\n", - (gint)ct->subtype.len, ct->subtype.begin, - t.begin); - } - } - if (g_mime_content_type_get_parameter (gct, "charset") && ct->charset.len) { - t.begin = g_mime_content_type_get_parameter (gct, "charset"); - t.len = strlen (t.begin); - - if (rspamd_ftok_casecmp (&ct->charset, &t) == 0) { - total_charset ++; - } - else if (verbose) { - rspamd_fprintf (stderr, "charset: '%*s'(rspamd) '%s'gmime\n", - (gint)ct->charset.len, ct->charset.begin, - t.begin); - } - } - else if (g_mime_content_type_get_parameter (gct, "charset")) { - if (verbose) { - rspamd_fprintf (stderr, "charset: '%s'gmime\n", - g_mime_content_type_get_parameter (gct, "charset")); - } - } - if (g_mime_content_type_get_parameter (gct, "boundary") && ct->boundary.len) { - t.begin = g_mime_content_type_get_parameter (gct, "boundary"); - t.len = strlen (t.begin); - - if (rspamd_ftok_casecmp (&ct->boundary, &t) == 0) { - total_boundaries ++; - } - else if (verbose) { - rspamd_fprintf (stderr, "boundary: '%*s'(rspamd) '%s'gmime\n", - (gint)ct->boundary.len, ct->boundary.begin, - t.begin); - } - } - else if (g_mime_content_type_get_parameter (gct, "boundary")) { - if (verbose) { - rspamd_fprintf (stderr, "boundary: '%s'gmime\n", - g_mime_content_type_get_parameter (gct, "boundary")); - } - } - } - else if (verbose) { - rspamd_fprintf (stderr, "cannot parse: %v, %d(rspamd), %d(gmime)\n", - buf, ct ? 1 : 0, gct ? 1 : 0); - } - - if (gct) { - g_object_unref (gct); - } - } } if (err) { @@ -227,8 +117,6 @@ main (int argc, char **argv) { gint i, start = 1, mode = MODE_NORMAL; - g_mime_init (0); - if (argc > 2 && *argv[1] == '-') { start = 2; @@ -273,7 +161,5 @@ main (int argc, char **argv) total_boundaries); } - g_mime_shutdown (); - return 0; } diff --git a/utils/mime_tool.c b/utils/mime_tool.c index 6b3fbccda..cdbd4c04e 100644 --- a/utils/mime_tool.c +++ b/utils/mime_tool.c @@ -22,7 +22,6 @@ #include "task.h" #include "mime_parser.h" #include "unix-std.h" -#include <gmime/gmime.h> #define MODE_NORMAL 0 #define MODE_GMIME 1 @@ -75,6 +74,7 @@ rspamd_show_message (struct rspamd_mime_part *part) part, part->parent_part); } +#if 0 static void mime_foreach_callback (GMimeObject * parent, GMimeObject * part, @@ -114,7 +114,7 @@ mime_foreach_callback (GMimeObject * parent, g_mime_content_type_get_media_subtype (type)); } } - +#endif static void rspamd_process_file (struct rspamd_config *cfg, const gchar *fname, gint mode) { @@ -123,10 +123,12 @@ rspamd_process_file (struct rspamd_config *cfg, const gchar *fname, gint mode) gpointer map; struct stat st; GError *err = NULL; +#if 0 GMimeMessage *message; GMimeParser *parser; GMimeStream *stream; GByteArray tmp; +#endif struct rspamd_mime_part *part; guint i; gdouble ts1, ts2; @@ -163,6 +165,7 @@ rspamd_process_file (struct rspamd_config *cfg, const gchar *fname, gint mode) g_error_free (err); } } +#if 0 else if (mode == MODE_GMIME) { tmp.data = map; tmp.len = st.st_size; @@ -171,7 +174,7 @@ rspamd_process_file (struct rspamd_config *cfg, const gchar *fname, gint mode) parser = g_mime_parser_new_with_stream (stream); message = g_mime_parser_construct_message (parser); } - +#endif ts2 = rspamd_get_ticks (); total_time += ts2 - ts1; @@ -190,16 +193,19 @@ rspamd_process_file (struct rspamd_config *cfg, const gchar *fname, gint mode) } } } +#if 0 else if (mode == MODE_GMIME) { g_mime_message_foreach (message, mime_foreach_callback, NULL); } +#endif rspamd_task_free (task); munmap (map, st.st_size); - +#if 0 if (mode == MODE_GMIME) { g_object_unref (message); } +#endif } int @@ -237,7 +243,6 @@ main (int argc, char **argv) rspamd_log_close (logger); REF_RELEASE (cfg); - g_mime_shutdown (); return 0; } |