aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-22 23:58:51 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-22 23:58:51 +0000
commit7bf934ec685f615509df5295b6d521607a036373 (patch)
tree69405c2c15a2623fd07d3bafd8be7c6263c0f3cf
parent93cad030fda4f15c32494f815790d9f953068352 (diff)
downloadrspamd-7bf934ec685f615509df5295b6d521607a036373.tar.gz
rspamd-7bf934ec685f615509df5295b6d521607a036373.zip
[Rework] Finally remove gmime dependency from Rspamd
-rw-r--r--CMakeLists.txt21
-rw-r--r--config.h.in1
-rw-r--r--src/controller.c1
-rw-r--r--src/libmime/mime_expressions.c3
-rw-r--r--src/libserver/protocol.c1
-rw-r--r--src/libserver/task.h2
-rw-r--r--src/libutil/util.c6
-rw-r--r--src/rspamd_proxy.c1
-rw-r--r--src/worker.c2
-rw-r--r--utils/content_type_bench.c118
-rw-r--r--utils/mime_tool.c15
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;
}