]> source.dussan.org Git - rspamd.git/commitdiff
Fix CentOS 5 build.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 27 Mar 2013 11:53:05 +0000 (11:53 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 27 Mar 2013 11:53:05 +0000 (11:53 +0000)
CMakeLists.txt
config.h.in
src/dkim.c
src/main.c
src/plugins/regexp.c

index 3ea4e2ea140f4dc95b35619c4bb4ee30abd9be1f..c27884fd4dd636c66658ebb35fe615be788383ed 100644 (file)
@@ -538,6 +538,20 @@ INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS})
 LINK_DIRECTORIES(${GLIB2_LIBRARY_DIRS})
 
 
+FIND_LIBRARY(LIBZ_LIBRARY NAMES z PATH_SUFFIXES lib64 lib
+                  PATHS
+                      ~/Library/Frameworks
+                      /Library/Frameworks
+                      /usr/local
+                      /usr
+                      /sw
+                      /opt/local
+                      /opt/csw
+                      /opt
+                 DOC "Path where the libz library can be found")
+IF(NOT LIBZ_LIBRARY)
+       MESSAGE(FATAL_ERROR "libz is required for libgmime")
+ENDIF(NOT LIBZ_LIBRARY)
 # Check for libevent
 
 FIND_LIBRARY(LIBEVENT_LIBRARY NAMES event PATH_SUFFIXES lib64 lib
@@ -955,8 +969,8 @@ AddModules(MODULES_LIST WORKERS_LIST)
 
 ################################ SUBDIRS SECTION ###########################
 
+ADD_SUBDIRECTORY(contrib/lgpl)
 IF(GLIB_COMPAT)
-       ADD_SUBDIRECTORY(contrib/lgpl)
        INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
 ENDIF(GLIB_COMPAT)
 
index 91c1277eec7f35f39bb1c8ac39944cc10550eb19..0ecb53059eff692b4db255aa6c1f2b0556b7214d 100644 (file)
 #include "gchecksum.h"
 #endif
 
+#if (GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 14)
+typedef off_t goffset;
+#endif
+
 #ifndef BUILD_STATIC
 #include <gmodule.h>
 #endif
index b0bc19541fc17976c56e2383b9b08fa7c1245efe..feb11893d74faa37db30b2e44145d8da6c7b832e 100644 (file)
@@ -79,7 +79,15 @@ rspamd_dkim_parse_signature (rspamd_dkim_context_t* ctx, const gchar *param, gsi
 {
        ctx->b = memory_pool_alloc (ctx->pool, len + 1);
        rspamd_strlcpy (ctx->b, param, len + 1);
+#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 20))
+       gchar *tmp;
+       gsize tmp_len = len;
+       tmp = g_base64_decode (ctx->b, &tmp_len);
+       rspamd_strlcpy (ctx->b, tmp, len + 1);
+       g_free (tmp);
+#else
        g_base64_decode_inplace (ctx->b, &len);
+#endif
        ctx->blen = len;
        return TRUE;
 }
@@ -322,7 +330,15 @@ rspamd_dkim_parse_bodyhash (rspamd_dkim_context_t* ctx, const gchar *param, gsiz
 {
        ctx->bh = memory_pool_alloc (ctx->pool, len + 1);
        rspamd_strlcpy (ctx->bh, param, len + 1);
+#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 20))
+       gchar *tmp;
+       gsize tmp_len = len;
+       tmp = g_base64_decode (ctx->bh, &tmp_len);
+       rspamd_strlcpy (ctx->bh, tmp, len + 1);
+       g_free (tmp);
+#else
        g_base64_decode_inplace (ctx->bh, &len);
+#endif
        ctx->bhlen = len;
        return TRUE;
 }
@@ -627,7 +643,16 @@ rspamd_dkim_make_key (const gchar *keydata, guint keylen, GError **err)
        rspamd_strlcpy (key->keydata, keydata, keylen + 1);
        key->keylen = keylen + 1;
        key->decoded_len = keylen + 1;
+#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 20))
+       gchar *tmp;
+       gsize tmp_len = keylen;
+       tmp = g_base64_decode (key->keydata, &tmp_len);
+       rspamd_strlcpy (key->keydata, tmp, keylen + 1);
+       g_free (tmp);
+       key->decoded_len = tmp_len;
+#else
        g_base64_decode_inplace (key->keydata, &key->decoded_len);
+#endif
 #ifdef HAVE_OPENSSL
        key->key_bio = BIO_new_mem_buf (key->keydata, key->decoded_len);
        if (key->key_bio == NULL) {
index e50b223aabb0f837de661239c91538c276e295dd..ed72e48bce9e767c6c3a43cd75eb480085430fbb 100644 (file)
@@ -467,10 +467,14 @@ fork_worker (struct rspamd_main *rspamd, struct worker_conf *cf)
                        close_log (rspamd->logger);
                        open_log (rspamd->logger);
 #if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION <= 30))
+# if (GLIB_MINOR_VERSION > 20)
                        /* Ugly hack for old glib */
                        if (!g_thread_get_initialized ()) {
                                g_thread_init (NULL);
                        }
+# else
+                       g_thread_init (NULL);
+# endif
 #endif
                        msg_info ("starting %s process %P", cf->worker->name, getpid ());
                        cf->worker->worker_start_func (cur);
index 9dce07772e52398767993997a0cb514f221adb1d..27280554817c02b4a7cbbb035604ea0a0beb67ab 100644 (file)
@@ -1309,9 +1309,13 @@ process_regexp_item (struct worker_task *task, void *user_data)
        if (!item->lua_function && regexp_module_ctx->max_threads > 1) {
                if (regexp_module_ctx->workers == NULL) {
 #if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION <= 30))
+# if GLIB_MINOR_VERSION > 20
                        if (! g_thread_get_initialized ()) {
                                g_thread_init (NULL);
                        }
+# else
+                       g_thread_init (NULL);
+# endif
                        workers_mtx = g_mutex_new ();
 #else
                        workers_mtx = memory_pool_alloc (regexp_module_ctx->regexp_pool, sizeof (GMutex));