]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
* Prepare to migrate to cmake (still need to write install target and working with...
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 16 Feb 2009 16:50:18 +0000 (19:50 +0300)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 16 Feb 2009 16:50:18 +0000 (19:50 +0300)
* Move all system includes to one file where we detect availability of all that includes
* Fix license misprint
* Fix some issues with perl initializing

39 files changed:
CMakeLists.txt [new file with mode: 0644]
config.h.in
configure [deleted file]
src/cfg_file.h
src/cfg_file.l
src/cfg_file.y
src/cfg_utils.c
src/classifiers/classifiers.c
src/classifiers/classifiers.h
src/classifiers/winnow.c
src/controller.c
src/filter.c
src/filter.h
src/fstring.c
src/hash.c
src/hash.h
src/main.c
src/main.h
src/mem_pool.c
src/mem_pool.h
src/memcached-test.c
src/memcached.c
src/message.c
src/message.h
src/perl.c
src/perl.h
src/plugins/regexp.c
src/plugins/surbl.c
src/protocol.c
src/statfile.c
src/statfile.h
src/tokenizers/osb.c
src/tokenizers/tokenizers.c
src/upstream.c
src/url.c
src/url.h
src/util.c
src/util.h
src/worker.c

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d618758
--- /dev/null
@@ -0,0 +1,199 @@
+#
+# Rspamd - rambler antispam system
+#
+# Cmake configuration file
+#
+PROJECT(rspamd C)
+
+SET(RSPAMD_VERSION_MAJOR 0)
+SET(RSPAMD_VERSION_MINOR 1)
+SET(RSPAMD_VERSION_PATCH 0)
+
+SET(RSPAMD_VERSION         "${RSPAMD_VERSION_MAJOR}.${RSPAMD_VERSION_MINOR}.${RSPAMD_VERSION_PATCH}")
+SET(RSPAMD_MASTER_SITE_URL "http://cebka.pp.ru/hg/rspamd")
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
+
+OPTION(DEBUG_MODE          "Enable debug output [default: OFF]"                 OFF)
+OPTION(ENABLE_OPTIMIZATION "Enable optimization [default: ON]"                  ON)
+OPTION(SKIP_RELINK_RPATH   "Skip relinking and full RPATH for the install tree" OFF)
+
+# Build optimized code for following CPU (default i386)
+#SET(CPU_TUNE               "i686")
+
+# ################################################################################
+# Check Includes
+#
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckSymbolExists)
+INCLUDE(CheckLibraryExists)
+INCLUDE(FindPkgConfig)
+INCLUDE(FindPerl)
+
+IF(NOT PERL_EXECUTABLE)
+       MESSAGE(FATAL_ERROR "Error: Perl is not found but is required")
+ENDIF(NOT PERL_EXECUTABLE)
+
+# Find perl libraries and cflags
+EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MExtUtils::Embed -e ccopts OUTPUT_VARIABLE PERL_CFLAGS)
+EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MExtUtils::Embed -e ldopts OUTPUT_VARIABLE PERL_LDFLAGS)
+STRING(REGEX REPLACE "[\r\n]" " " PERL_CFLAGS ${PERL_CFLAGS})
+STRING(REGEX REPLACE " +$" "" PERL_CFLAGS ${PERL_CFLAGS})
+STRING(REGEX REPLACE "[\r\n]" " " PERL_LDFLAGS ${PERL_LDFLAGS})
+STRING(REGEX REPLACE " +$" "" PERL_LDFLAGS ${PERL_LDFLAGS})
+
+# Lex and yacc
+FIND_PROGRAM(LEX_EXECUTABLE lex)
+FIND_PROGRAM(YACC_EXECUTABLE yacc)
+
+IF(NOT LEX_EXECUTABLE OR NOT YACC_EXECUTABLE)
+       MESSAGE(FATAL_ERROR "Error: yacc and lex are required for build")
+ENDIF(NOT LEX_EXECUTABLE OR NOT YACC_EXECUTABLE)
+
+pkg_check_modules(GLIB2 REQUIRED glib-2.0>=2.10)
+pkg_check_modules(GMIME2 REQUIRED gmime-2.0)
+
+INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(${GMIME2_INCLUDE_DIRS})
+LINK_DIRECTORIES(${GLIB2_LIBRARY_DIRS})
+LINK_DIRECTORIES(${GMIME2_LIBRARY_DIRS})
+
+SET(CMAKE_REQUIRED_LIBRARIES m)
+SET(CMAKE_REQUIRED_INCLUDES sys/mman.h stdlib.h stdio.h unistd.h time.h sched.h)
+
+CHECK_LIBRARY_EXISTS(util pidfile_open   " " HAVE_PIDFILE)
+CHECK_LIBRARY_EXISTS(event event_loop   " " HAVE_LIBEVENT)
+IF(NOT HAVE_LIBEVENT)
+       MESSAGE(FATAL_ERROR "libevent is required for building rspamd")
+ENDIF(NOT HAVE_LIBEVENT)
+
+CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILES(sys/time.h  HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILES(sys/uio.h   HAVE_SYS_UIO_H)
+
+CHECK_INCLUDE_FILES(fcntl.h     HAVE_FCNTL_H)
+CHECK_INCLUDE_FILES(math.h      HAVE_MATH_H)
+CHECK_INCLUDE_FILES(stdio.h     HAVE_STDIO_H)
+CHECK_INCLUDE_FILES(stdlib.h    HAVE_STDLIB_H)
+CHECK_INCLUDE_FILES(string.h    HAVE_STRING_H)
+CHECK_INCLUDE_FILES(strings.h   HAVE_STRINGS_H)
+CHECK_INCLUDE_FILES(time.h      HAVE_TIME_H)
+CHECK_INCLUDE_FILES(unistd.h    HAVE_UNISTD_H)
+CHECK_INCLUDE_FILES(sysexits.h  HAVE_SYSEXITS_H)
+CHECK_INCLUDE_FILES(stdint.h  HAVE_STDINT_H)
+CHECK_INCLUDE_FILES(inttypes.h  HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILES(endian.h  HAVE_ENDIAN_H)
+CHECK_INCLUDE_FILES(sys/endian.h  HAVE_SYS_ENDIAN_H)
+CHECK_INCLUDE_FILES(machine/endian.h  HAVE_MACHINE_ENDIAN_H)
+CHECK_INCLUDE_FILES(sys/queue.h  HAVE_SYS_QUEUE_H)
+CHECK_INCLUDE_FILES(sys/socket.h  HAVE_SYS_SOCKET_H)
+CHECK_INCLUDE_FILES(sys/mman.h  HAVE_SYS_MMAN_H)
+CHECK_INCLUDE_FILES(sys/un.h  HAVE_SYS_UN_H)
+CHECK_INCLUDE_FILES(sys/stat.h  HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILES(netinet/in.h  HAVE_NETINET_IN_H)
+CHECK_INCLUDE_FILES(arpa/inet.h  HAVE_ARPA_INET_H)
+CHECK_INCLUDE_FILES(netdb.h  HAVE_NETDB_H)
+CHECK_INCLUDE_FILES(syslog.h HAVE_SYSLOG_H)
+
+CHECK_FUNCTION_EXISTS(setproctitle HAVE_SETPROCTITLE)
+CHECK_FUNCTION_EXISTS(getpagesize HAVE_GETPAGESIZE)
+CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
+
+CHECK_SYMBOL_EXISTS(PATH_MAX limits.h HAVE_PATH_MAX)
+CHECK_SYMBOL_EXISTS(MAXPATHLEN sys/param.h HAVE_MAXPATHLEN)
+CHECK_SYMBOL_EXISTS(MAP_SHARED sys/mman.h HAVE_MMAP_SHARED)
+CHECK_SYMBOL_EXISTS(MAP_ANON sys/mman.h HAVE_MMAP_ANON)
+CHECK_SYMBOL_EXISTS(_SC_NPROCESSORS_ONLN unistd.h HAVE_SC_NPROCESSORS_ONLN)
+CHECK_SYMBOL_EXISTS(SLIST_FOREACH_SAFE sys/queue.h HAVE_COMPATIBLE_QUEUE_H)
+
+if (NOT HAVE_COMPATIBLE_QUEUE_H)
+       INCLUDE_DIRECTORIES(compat)
+endif (NOT HAVE_COMPATIBLE_QUEUE_H)
+
+
+SET(CONTRIBSRC "")
+FIND_PATH(MD5_INCLUDE md5.h PATHS      /opt/include
+                                                                       /usr/include
+                                                                       /usr/local/include
+                                                                       DOC "Path where the openssl header files can be found")
+IF (MD5_INCLUDE)
+       INCLUDE_DIRECTORIES(${MD5_INCLUDE})
+
+       FIND_LIBRARY(MD5_LIBRARY NAMES md PATHS /lib
+                                               /opt/lib
+                                            /usr/lib
+                                            /usr/local/lib
+                 DOC "Path where the md5 libraries can be found")
+    IF (MD5_LIBRARY)
+       SET(PROJECT_LIBS "${PROJECT_LIBS} md")
+               MESSAGE(STATUS "INFO: MD5 (libmd) hash function support enabled")
+       ELSE (MD5_LIBRARY)
+               MESSAGE(SEND_ERROR "ERROR: Cannot find libmd.so, aborting")
+       ENDIF (MD5_LIBRARY)
+ELSE (MD5_INCLUDE)
+       SET(CONTRIBSRC compat/md5.c)
+       MESSAGE(STATUS "WARNING: Using internal MD5 support")
+ENDIF (MD5_INCLUDE)
+
+IF("${CMAKE_COMPILER_IS_GNUC}" MATCHES "1")
+       SET(CMAKE_C_WARN_FLAGS " -Wall -W -Wpointer-arith -Wno-unused-parameter -Wno-unused-function -Wunused-variable -Wno-sign-compare -Wunused-value")
+
+       IF(DEBUG_MODE MATCHES "ON")
+               SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb ")
+       ENDIF(DEBUG_MODE MATCHES "ON")
+ENDIF("${CMAKE_COMPILER_IS_GNUC}" MATCHES "1")
+
+SET(RSPAMDSRC  src/modules.c
+                               src/hash.c
+                               src/worker.c
+                               src/util.c
+                               src/url.c
+                               src/upstream.c
+                               src/statfile.c
+                               src/protocol.c
+                               src/perl.c
+                               src/message.c
+                               src/mem_pool.c
+                               src/memcached.c
+                               src/main.c
+                               src/fstring.c
+                               src/filter.c
+                               src/controller.c
+                               src/cfg_utils.c)
+
+SET(TOKENIZERSSRC  src/tokenizers/tokenizers.c
+                               src/tokenizers/osb.c)
+
+SET(CLASSIFIERSSRC src/classifiers/classifiers.c
+                               src/classifiers/winnow.c)
+
+SET(PLUGINSSRC src/plugins/surbl.c
+                               src/plugins/regexp.c)
+
+LIST(LENGTH PLUGINSSRC RSPAMD_MODULES_NUM)
+
+SET(YACC_SRC   src/cfg_file.y)
+SET(LEX_SRC            src/cfg_file.l)
+
+STRING(REPLACE "_file.y" "_yacc.c" YACC_OUTPUT ${YACC_SRC})
+STRING(REPLACE "_file.l" "_lex.c" LEX_OUTPUT ${LEX_SRC})
+
+ADD_CUSTOM_COMMAND(OUTPUT ${LEX_OUTPUT}
+                                       COMMAND ${LEX_EXECUTABLE} -o${LEX_OUTPUT} ${LEX_SRC})
+ADD_CUSTOM_COMMAND(OUTPUT ${YACC_OUTPUT}
+                                       COMMAND ${YACC_EXECUTABLE} -d -o ${YACC_OUTPUT} ${YACC_SRC})
+ADD_CUSTOM_COMMAND(TARGET perlxs PRE_LINK
+                                       COMMAND ${PERL_EXECUTABLE} ./Makefile.PL
+                                       COMMAND make
+                                       WORKING_DIRECTORY perl
+                                       VERBATIM)
+CONFIGURE_FILE(config.h.in src/config.h)
+ADD_EXECUTABLE(rspamd ${RSPAMDSRC} ${CONTRIBSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC} ${PLUGINSSRC} ${YACC_OUTPUT} ${LEX_OUTPUT})
+SET_TARGET_PROPERTIES(rspamd PROPERTIES LINKER_LANGUAGE C)
+SET_TARGET_PROPERTIES(rspamd PROPERTIES VERSION ${RSPAMD_VERSION})
+SET_TARGET_PROPERTIES(rspamd PROPERTIES COMPILE_FLAGS ${PERL_CFLAGS}
+                                                                               LINK_FLAGS ${PERL_LDFLAGS})
+TARGET_LINK_LIBRARIES(rspamd ${GLIB2_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamd event)
+TARGET_LINK_LIBRARIES(rspamd ${GMIME2_LIBRARIES})
index 48c7bc129cd217dbc3fb1c58463a4ba9686f636b..a594e210998a36c88c9df18f5e8a8dd1af077e3b 100644 (file)
@@ -1,4 +1,187 @@
+#ifndef RSPAMD_CONFIG_H_IN
+#define RSPAMD_CONFIG_H_IN
+
+#cmakedefine HAVE_SYS_TYPES_H    1
+
+#cmakedefine HAVE_SYS_TIME_H     1
+
+#cmakedefine HAVE_SYS_UIO_H      1
+
+#cmakedefine HAVE_FCNTL_H        1
+
+#cmakedefine HAVE_MATH_H         1
+
+#cmakedefine HAVE_STDIO_H        1
+
+#cmakedefine HAVE_STDLIB_H       1
+
+#cmakedefine HAVE_STRING_H       1
+
+#cmakedefine HAVE_STRINGS_H      1
+
+#cmakedefine HAVE_TIME_H         1
+
+#cmakedefine HAVE_UNISTD_H       1
+
+#cmakedefine HAVE_SYSEXITS_H     1
+
+#cmakedefine HAVE_STDINT_H       1
+
+#cmakedefine HAVE_INTTYPES_H     1
+
+#cmakedefine HAVE_STDBOOL_H      1
+
+#cmakedefine HAVE_NETDB_H        1
+
+#cmakedefine HAVE_SYSLOG_H       1
+
+#cmakedefine HAVE_ENDIAN_H       1
+#cmakedefine HAVE_SYS_ENDIAN_H   1
+#cmakedefine HAVE_MACHINE_ENDIAN_H  1
+
+#cmakedefine HAVE_SYS_QUEUE_H    1
+#cmakedefine HAVE_SYS_MMAN_H     1
+#cmakedefine HAVE_SYS_SOCKET_H   1
+#cmakedefine HAVE_SYS_UN_H       1
+
+#cmakedefine HAVE_SETPROCTITLE   1
+
+#cmakedefine HAVE_GETPAGESIZE    1
+
+#cmakedefine HAVE_NANOSLEEP      1
+
+#cmakedefine HAVE_PATH_MAX       1
+
+#cmakedefine HAVE_MAXPATHLEN     1
+
+#cmakedefine HAVE_MMAP_SHARED    1
+
+#cmakedefine HAVE_MMAP_ANON      1
+
+#cmakedefine HAVE_OWN_QUEUE_H    1
+
+#cmakedefine HAVE_SC_NPROCESSORS_ONLN 1
+
+#cmakedefine DEBUG_MODE          1
+
+#define RVERSION          "${RSPAMD_VERSION}"
+#define RSPAMD_MASTER_SITE_URL "${RSPAMD_MASTER_SITE_URL}"
+
+#define MODULES_NUM        ${RSPAMD_MODULES_NUM}
+
+/* sys/types */
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
+
+/* stdint */
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#elif defined(HAVE_INTTYPES_H)
+#include <inttypes.h>
+#endif
+
+/* stdbool */
+#ifdef HAVE_STDBOOL_H
+#include <stdbool.h>
+#endif
+
+/* queue */
+#ifdef HAVE_COMPATIBLE_QUEUE_H
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#else
+#include "queue.h"
+#endif
+
+/* sys/socket */
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+/* sys/mman */
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+
+/* netinet issues */
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+/* unix sockets */
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+/* netdb */
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+/* stdlib */
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+/* stdio */
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+/* time */
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+
+/* sysexits */
+#ifdef HAVE_SYSEXITS_H
+#include <sysexits.h>
+#endif
+
+/* unistd */
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+
+/* string */
+#ifdef HAVE_STDIO_H
+#include <string.h>
+#endif
+
+/* fcntl */
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+/* sys/stat */
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+/* math */
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#ifdef HAVE_LIBUTIL_H
+#include <libutil.h>
+#endif
+
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif
+
+#include <errno.h>
+#include <signal.h>
+#include <event.h>
+#include <glib.h>
+#include <gmime/gmime.h>
 
 /* Forwarded declaration */
 struct module_ctx;
@@ -12,3 +195,5 @@ typedef struct module_s {
 } module_t;
 
 extern module_t modules[];
+
+#endif
diff --git a/configure b/configure
deleted file mode 100755 (executable)
index 5861cad..0000000
--- a/configure
+++ /dev/null
@@ -1,1001 +0,0 @@
-#!/bin/sh
-
-GCC="gcc"
-MAKE=""
-LEX=""
-YACC=""
-OS=""
-
-PKG_CONFIG=`which pkg-config`
-PERL=`which perl`
-
-LOCALBASE=/usr/local
-PREFIX=$LOCALBASE
-
-VERSION=0.0.1
-COMPAT_DIR="./compat"
-
-YACC_SRC="cfg_file.y"
-LEX_SRC="cfg_file.l"
-YACC_OUTPUT="cfg_yacc.c"
-LEX_OUTPUT="cfg_lex.c"
-CONFIG="config.h"
-CACHE="config.cache"
-
-SRCDIR="src"
-OBJDIR="src/.obj"
-SOURCES="upstream.c cfg_utils.c memcached.c message.c hash.c main.c util.c controller.c worker.c fstring.c url.c perl.c protocol.c mem_pool.c filter.c plugins/regexp.c plugins/surbl.c tokenizers/tokenizers.c tokenizers/osb.c classifiers/classifiers.c classifiers/winnow.c statfile.c ${LEX_OUTPUT} ${YACC_OUTPUT}"
-MODULES="surbl regexp"
-
-CFLAGS="$CFLAGS -W -Wpointer-arith -Wno-unused-parameter"
-CFLAGS="$CFLAGS -Wno-unused-function -Wunused-variable -Wno-sign-compare"
-CFLAGS="$CFLAGS -Wunused-value -ggdb -I${LOCALBASE}/include"
-CFLAGS="$CFLAGS "
-LDFLAGS="$LDFLAGS -L/usr/lib -L${LOCALBASE}/lib"
-OPT_FLAGS="-O -pipe -fno-omit-frame-pointer"
-DEPS="$SRCDIR/config.h $SRCDIR/cfg_file.h $SRCDIR/memcached.h $SRCDIR/util.h $SRCDIR/main.h $SRCDIR/upstream.h $SRCDIR/fstring.h $SRCDIR/url.h $SRCDIR/perl.h $SRCDIR/mem_pool.h $SRCDIR/protocol.h $SRCDIR/filter.h $SRCDIR/${LEX_OUTPUT} $SRCDIR/${YACC_OUTPUT}"
-EXEC=rspamd
-USER=postfix
-GROUP=postfix
-INSTALL="/usr/bin/install -v"
-MKDIR="/usr/bin/install -v -d"
-MANPATH="${PREFIX}/share/man"
-SUBDIRS="test utils"
-
-MAKEFILE="Makefile"
-MAKEFILE_IN="Makefile.in"
-PERL_MAKEFILE="perl/Makefile.PL.in"
-PERLCFLAGS=""
-PERLLDFLAGS=""
-
-DEPENDS_FILE=".depends"
-OPTS=""
-
-TARGETS="${EXEC}"
-
-check_cache()
-{
-       type=$1
-       name=$2
-
-       line=`fgrep "$type:$name" $CACHE 2>/dev/null`
-       if [ $? -eq 0 ] ; then
-               result=`echo $line | cut -d ':' -f 3`
-               CACHED=`echo $line | cut -d ':' -f 4-`
-               if [ "F$result" = "Fyes" ] ; then
-                       return 0
-               elif [ "F$result" = "Fno" ] ; then
-                       return 1
-               else
-                       return 2
-               fi
-       else
-               return 3
-       fi
-}
-
-write_cache()
-{
-       type=$1
-       name=$2
-       result=$3
-       value=$4
-
-       echo "$type:$name:$result:$value" >> $CACHE
-}
-
-prepare_config()
-{
-       echo "#ifndef CONFIG_H_IN" > $SRCDIR/$CONFIG
-       echo "#define CONFIG_H_IN" >> $SRCDIR/$CONFIG
-       cat "$CONFIG.in" >> $SRCDIR/$CONFIG
-}
-
-finish_config()
-{
-       echo "#endif" >> $SRCDIR/$CONFIG
-}
-
-cleanup()
-{
-       rm -f autotest.c
-       rm -f autotest
-       INCLUDE=""
-}
-
-have_opt()
-{
-       echo "#define HAVE_$1" >> $SRCDIR/$CONFIG
-       OPTS="$OPTS HAVE_$1"
-}
-
-check_compiler()
-{      
-       echo -n "Testing for gcc: "
-       check_cache "compiler" "gcc"
-       if [ $? -eq 0 ] ; then
-               GCC=$CACHED
-               echo "found(cached) -> $GCC"
-               return 0
-       fi
-
-       GCC=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which gcc`
-       if [ -x $GCC ] ; then
-               echo "found -> $GCC"
-               write_cache "compiler" "gcc" "yes" "$GCC"
-               return 0
-       else
-               echo "not found"
-               exit 1
-       fi
-}
-
-check_make()
-{      
-       echo -n "Testing for make: "
-       check_cache "make" "make"
-       if [ $? -eq 0 ] ; then
-               MAKE=$CACHED
-               echo "found(cached) -> $MAKE"
-               return 0
-       fi
-       MAKE=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which make`
-       if [ -x $MAKE ] ; then
-               echo "found -> $MAKE"
-               write_cache "make" "make" "yes" "$MAKE"
-               return 0
-       else
-               echo "not found"
-               exit 1
-       fi
-
-}
-
-check_lex()
-{
-       echo -n "Testing for lex: "
-       check_cache "binary" "lex"
-       if [ $? -eq 0 ] ; then
-               LEX=$CACHED
-               echo "found(cached) -> $LEX"
-               return 0
-       fi
-
-       LEX=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which lex`
-       if [ -x $LEX ] ; then
-               echo "found -> $LEX"
-               write_cache "binary" "lex" "yes" "$LEX"
-               return 0
-       else
-               echo "not found"
-               exit 1
-       fi
-
-}
-
-check_yacc()
-{
-       echo -n "Testing for yacc: "
-       check_cache "binary" "yacc"
-       if [ $? -eq 0 ] ; then
-               YACC=$CACHED
-               echo "found(cached) -> $YACC"
-               return 0
-       fi
-
-       YACC=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which yacc`
-       echo -n "Testing for yacc: "
-       if [ -x $YACC ] ; then
-               echo "found -> $YACC"
-               write_cache "binary" "yacc" "yes" "$YACC"
-               return 0
-       else
-               echo "not found"
-               exit 1
-       fi
-
-}
-
-check_util()
-{
-       echo -n "Testing for $1: "
-       check_cache "binary" "$1"
-       if [ $? -eq 0 ] ; then
-               echo "found(cached) -> $CACHED"
-               return 0
-       fi
-       UTIL=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which $1`
-       if [ -x $UTIL ] ; then
-               echo "found -> $UTIL"
-               write_cache "binary" "$1" "yes" "$UTIL"
-               return 0
-       else
-               echo "not found"
-               exit 1
-       fi
-
-}
-
-check_function()
-{
-       FUNCTION=$1
-       while [ $# -ne 0 -a -n $2 ] ; do 
-               shift
-               if [ "F$INCLUDE" = "F" ] ; then
-                       INCLUDE="$1"
-               else
-                       INCLUDE="$INCLUDE $1"
-               fi
-       done
-       echo -n "Testing for $FUNCTION: "
-       echo >> config.log
-       echo "Testing for $FUNCTION: " >> config.log
-       check_cache "function" "$FUNCTION"
-       if [ $? -eq 0 ] ; then
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               return 0
-       fi
-       echo "#include <sys/types.h>" > autotest.c
-       if [ "F$INCLUDE" != "F" ] ; then
-               for inc in $INCLUDE ; do
-                       echo "#include \"$inc\"" >> autotest.c
-               done
-       fi
-       echo "#include <stdlib.h>" >> autotest.c
-       echo "int main (int argc, char **argv) { $FUNCTION; return 0; }" >> autotest.c
-       echo "$GCC $PTHREAD_CFLAGS $CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS  autotest.c" >>config.log
-       $GCC $PTHREAD_CFLAGS $CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS  autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               cleanup
-               echo "-> OK" >> config.log
-               write_cache "function" "$FUNCTION" "yes" ""
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               cleanup
-               write_cache "function" "$FUNCTION" "no" ""
-               return 1
-       fi
-}
-
-check_include()
-{
-       _INCLUDE="$1"
-       echo -n "Testing for $_INCLUDE: "
-       echo >> config.log
-       echo "Testing for $_INCLUDE: " >> config.log
-       check_cache "include" "$_INCLUDE"
-       if [ $? -eq 0 ] ; then
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               have_opt $CACHED
-               return 0
-       fi
-       echo "#include <sys/types.h>" > autotest.c
-       echo "#include \"$_INCLUDE\"" >> autotest.c
-       echo "#include <stdlib.h>" >> autotest.c
-       echo "int main (int argc, char **argv) { return 0; }" >> autotest.c
-       echo "$GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c" >>config.log
-       $GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               echo "-> OK" >> config.log
-               _CFLAG=`echo "$_INCLUDE" | sed -e 's/[./]/_/g' | tr '[:lower:]' '[:upper:]'`
-               have_opt $_CFLAG
-               write_cache "include" "$_INCLUDE" "yes" "$_CFLAG"
-               cleanup
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               write_cache "include" "$_INCLUDE" "no" ""
-               cleanup
-               return 1
-       fi
-}
-
-check_macro()
-{
-       MACRO=$1
-       _INCLUDE=""
-       while [ $# -ne 1 -a -n $1 ] ; do 
-               shift
-               if [ "F$_INCLUDE" = "F" ] ; then
-                       _INCLUDE="$1"
-               else
-                       _INCLUDE="$_INCLUDE $1"
-               fi
-       done
-       echo -n "Testing for $MACRO: "
-       echo >> config.log
-       echo "Testing for $MACRO: " >> config.log
-       check_cache "macro" "$MACRO"
-       if [ $? -eq 0 ] ; then
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               return 0
-       fi
-       echo "#include <sys/types.h>" > autotest.c
-       for _inc in $_INCLUDE ; do
-               echo "#include \"$_inc\"" >> autotest.c
-       done
-       echo "#include <stdlib.h>" >> autotest.c
-       echo "int main (int argc, char **argv) {" >>autotest.c
-       echo "#ifndef $MACRO" >>autotest.c
-       echo "#error \"$MACRO not defined\"" >>autotest.c 
-       echo "#endif" >> autotest.c
-       echo "}" >>autotest.c
-       echo "$GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c" >> config.log
-       $GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               echo "-> OK" >> config.log
-               write_cache "macro" "$MACRO" "yes" ""
-               cleanup
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               write_cache "macro" "$MACRO" "no" ""
-               cleanup
-               return 1
-       fi
-}
-
-
-check_lib()
-{
-       LIB=$1
-       while [ $# -ne 1 -a -n $1 ] ; do 
-               shift
-               if [ "F$INCLUDE" = "F" ] ; then
-                       INCLUDE="$1"
-               else
-                       INCLUDE="$INCLUDE $1"
-               fi
-       done
-       echo -n "Testing for lib$LIB: "
-       echo >> config.log
-       echo "Testing for lib$LIB: " >> config.log
-       check_cache "lib" "$LIB"
-       if [ $? -eq 0 ] ; then
-               LIBS="$LIBS -l$LIB"
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               return 0
-       fi
-       echo "#include <sys/types.h>" > autotest.c
-       if [ "F$INCLUDE" != "F" ] ; then
-               for inc in $INCLUDE ; do
-                       echo "#include \"$inc\"" >> autotest.c
-               done
-       fi
-       echo "#include <stdlib.h>" >> autotest.c
-       echo "int main (int argc, char **argv) { return 0; }" >> autotest.c
-       echo "$GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS -l$LIB $PTHREAD_LDFLAGS autotest.c" >>config.log
-       $GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS -l$LIB $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               LIBS="$LIBS -l$LIB"
-               echo "-> OK" >> config.log
-               write_cache "lib" "$LIB" "yes" ""
-               cleanup
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               write_cache "lib" "$LIB" "no" ""
-               cleanup
-               return 1
-       fi
-}
-
-check_package()
-{
-       PACKAGE=$1
-       PLIBS=`$PKG_CONFIG --libs $PACKAGE`
-       PCFLAGS=`$PKG_CONFIG --cflags $PACKAGE`
-       while [ $# -ne 1 -a -n $1 ] ; do 
-               shift
-               if [ "F$INCLUDE" = "F" ] ; then
-                       INCLUDE="$1"
-               else
-                       INCLUDE="$INCLUDE $1"
-               fi
-       done
-       echo -n "Testing for $PACKAGE: "
-       echo >> config.log
-       echo "Testing for $PACKAGE: " >> config.log
-       check_cache "package" "$PACKAGE"
-       if [ $? -eq 0 ] ; then
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               _p_cflags=`echo $CACHED | cut -d ':' -f 1`
-               _p_libs=`echo $CACHED | cut -d ':' -f 2`
-               LIBS="$LIBS $_p_libs"
-               CFLAGS="$CFLAGS $_p_cflags"
-               return 0
-       fi
-       echo "#include <sys/types.h>" > autotest.c
-       if [ "F$INCLUDE" != "F" ] ; then
-               for inc in $INCLUDE ; do
-                       echo "#include \"$inc\"" >> autotest.c
-               done
-       fi
-       echo "#include <stdlib.h>" >> autotest.c
-       echo "int main (int argc, char **argv) { return 0; }" >> autotest.c
-       echo "$GCC $CFLAGS $PCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PLIBS $PTHREAD_LDFLAGS autotest.c" >>config.log
-       $GCC $CFLAGS $PCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PLIBS $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               LIBS="$LIBS $PLIBS"
-               CFLAGS="$CFLAGS $PCFLAGS"
-               echo "-> OK" >> config.log
-               write_cache "package" "$PACKAGE" "yes" "$PCFLAGS:$PLIBS"
-               cleanup
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               write_cache "package" "$PACKAGE" "no" ""
-               cleanup
-               return 1
-       fi
-
-}
-
-check_perl()
-{
-       echo -n "Testing for $PERL: "
-       echo >> config.log
-       echo "Testing for $PERL: " >> config.log
-       check_cache "perl" "$PERL"
-       if [ $? -eq 0 ] ; then
-               echo "-> OK (cached)"
-               echo "-> OK (cached)" >> config.log
-               _p_cflags=`echo $CACHED | cut -d ':' -f 1`
-               _p_libs=`echo $CACHED | cut -d ':' -f 2`
-               PERLLDFLAGS="$LIBS $_p_libs"
-               PERLCFLAGS="$CFLAGS $_p_cflags"
-               return 0
-       fi
-
-       if [ ! -x $PERL ] ; then
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               cleanup
-               return 1
-       fi
-       PERLCFLAGS=`$PERL -MExtUtils::Embed -e ccopts`
-       PERLLDFLAGS=`$PERL -MExtUtils::Embed -e ldopts`
-
-       echo "#include <stdlib.h>" > autotest.c
-       echo "#include <EXTERN.h>" >> autotest.c
-       echo "#include <perl.h>" >> autotest.c
-       echo "int main (int argc, char **argv, char **env) { PERL_SYS_INIT3(&argc,&argv,&env); return 0; }" >> autotest.c
-       echo "$GCC $CFLAGS $PERLCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PERLLDFLAGS $PTHREAD_LDFLAGS autotest.c" >>config.log
-       $GCC $CFLAGS $PERLCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PERLLDFLAGS $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
-       if [ $? -eq 0 ] ; then 
-               echo "found"
-               echo "-> OK" >> config.log
-               cleanup
-               write_cache "perl" "$PERL" "yes" "$PERLCFLAGS:$PERLLDFLAGS"
-               return 0
-       else
-               echo "not found"
-               echo "-> FAILED" >> config.log
-               echo "Failed program was:" >> config.log
-               cat autotest.c >> config.log
-               write_cache "perl" "$PERL" "no" ""
-               cleanup
-               return 1
-       fi
-
-}
-
-check_os()
-{
-       _OS=`uname -s`
-       case "$_OS" in
-               FreeBSD*)
-                               OS="freebsd"
-                               CFLAGS="${CFLAGS}"
-                               INSTALL="/usr/bin/install -C -S -v"
-                               MKDIR="/usr/bin/install -d -v"
-                               MANPATH="${PREFIX}/man" 
-                               echo "#define FREEBSD" >> $SRCDIR/$CONFIG ;;
-               Linux*) OS="linux" CFLAGS="${CFLAGS} -D_GNU_SOURCE"  
-                               echo "#define LINUX" >> $SRCDIR/$CONFIG ;;
-               Solaris*)       OS="solaris" CFLAGS="${CFLAGS}"
-                               echo "#define SOLARIS" >> $SRCDIR/$CONFIG ;;
-               *)              OS="unknown"  ;;
-       esac
-}
-
-check_user()
-{
-       _user=$1
-       echo -n "Checking for user $_user: "
-       grep $_user /etc/passwd > /dev/null 2>&1
-       if [ $? -eq 0 ] ; then
-               echo "found"
-               return 0
-       else
-               echo "not found"
-               return 1
-       fi
-}
-
-check_group()
-{
-       _group=$1
-       echo -n "Checking for group $_group: "
-       grep $_group /etc/group > /dev/null 2>&1
-       if [ $? -eq 0 ] ; then
-               echo "found"
-               return 0
-       else
-               echo "not found"
-               return 1
-       fi
-}
-
-check_depends()
-{
-       ifdep=""
-       depends=""
-       if [ ! -f $DEPENDS_FILE ] ; then
-               return 0
-       fi
-
-       while read line ; do
-               echo $line | grep '#if' > /dev/null
-               if [ $? -eq 0 ] ; then
-                       ifdep=`echo $line | sed -e 's/^#if \([A-Za-z0-9_]*\)$/\1/'`
-               elif [ "F$ifdep" != "F" ] ; then
-                       echo $line | grep "#endif" > /dev/null
-                       if [ $? -eq 0 ] ; then
-                               ifdep=""
-                       else
-                               echo $OPTS | grep $ifdep > /dev/null
-                               if [ $? -eq 0 ] ; then
-                                       depends="$depends $line"
-                               fi
-                       fi
-               else
-                       depends="$depends $line"
-               fi
-       done < $DEPENDS_FILE
-       
-       obj_depends=`echo $depends | sed -e 's/\([^ ]\{1,\}\)\/\([^/]\{1,\}\).c/\2.o/g'`
-       echo "DEPENDS=$depends" >> $MAKEFILE
-       echo "OBJ_DEPENDS=$obj_depends" >> $MAKEFILE
-       for _dep in $depends ; do
-               _obj_dep=`echo $_dep | sed -e 's/\([^ ]\{1,\}\)\/\([^/]\{1,\}\).c/\2.o/g'`
-               cat >> $MAKEFILE.dep << END
-${_obj_dep}: ${_dep}
-       \$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(PTHREAD_CFLAGS) -o ${_obj_dep} -c ${_dep}
-
-END
-
-       done
-}
-
-write_modules()
-{
-       # Write modules init function
-       echo "#ifndef MODULES_H" > $SRCDIR/modules.h
-       echo "#include \"config.h\"" >> $SRCDIR/modules.h
-       echo "#include \"modules.h\"" > $SRCDIR/modules.c
-       echo "module_t modules[] = {" >> $SRCDIR/modules.c;
-       modules_num=0
-       for m in $MODULES ; do
-               echo "{\"${m}\", ${m}_module_init, ${m}_module_config, ${m}_module_reconfig}," >> $SRCDIR/modules.c
-               echo "int ${m}_module_init(struct config_file *cfg, struct module_ctx **ctx);" >> $SRCDIR/modules.h
-               echo "int ${m}_module_config(struct config_file *cfg);" >> $SRCDIR/modules.h
-               echo "int ${m}_module_reconfig(struct config_file *cfg);" >> $SRCDIR/modules.h
-               modules_num=`expr $modules_num + 1`
-       done
-       echo "};" >> $SRCDIR/modules.c
-       echo "#endif" >> $SRCDIR/modules.h
-       echo "#define MODULES_NUM $modules_num" >> $SRCDIR/$CONFIG
-       SOURCES="$SOURCES modules.c"
-
-}
-
-write_perl()
-{
-       # Write to perl Makefile
-       sed -e "s|%%libs%%|${LDFLAGS} ${LIBS}|" < $PERL_MAKEFILE > .pl_tmp
-       sed -e "s|%%include%%|${CFLAGS}|" < .pl_tmp > .pl2_tmp
-       PERL_MAKEFILE=`echo ${PERL_MAKEFILE} | sed -e 's|.in$||'`
-       mv .pl2_tmp $PERL_MAKEFILE
-       rm -f .pl_tmp .pl2_tmp
-       CURDIR=`pwd`
-       cd `dirname ${PERL_MAKEFILE}`
-       $PERL Makefile.PL
-       cd $CURDIR
-}
-
-write_subdirs()
-{
-       # Write subdirs makefiles
-       clean_target="clean-subdirs: "
-       dist_clean_target="dist-clean-subdirs: "
-       for sub in $SUBDIRS ; do
-               cp $MAKEFILE $sub/$MAKEFILE
-               saved_pwd=`pwd`
-               old_objs=`echo $OBJECTS | sed -e 's/\([^. ]*\.o\)/..\/%%OBJDIR%%\/\1/g' | sed -e "s,%%OBJDIR%%,${OBJDIR},g"`
-               old_srcs=`echo $SOURCES | sed -e 's/\([^. ]*\.c\)/..\/%%SRCDIR%%\/\1/g' | sed -e "s,%%SRCDIR%%,${SRCDIR},g"`
-               cd $sub
-               sub_src="`echo *.c`"
-               sub_obj="`echo $sub_src | sed -e 's/\.c/\.o/g'`"
-               echo "SOURCES=$sub_src" >> $MAKEFILE
-               echo "OBJECTS=$sub_obj" >> $MAKEFILE
-               check_depends
-               cat Makefile.in >> $MAKEFILE
-               if [ -f $MAKEFILE.dep ] ; then
-                       cat $MAKEFILE.dep >> $MAKEFILE
-                       rm -f $MAKEFILE.dep
-               fi
-               for _sub_src in $sub_src ; do
-                       _sub_obj=`echo $_sub_src | sed -e 's/\.c/\.o/g'`
-                       cat >> $MAKEFILE << END
-${_sub_obj}: ${_sub_src}
-       \$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(PTHREAD_CFLAGS) -o ${_sub_obj} -c ${_sub_src}
-
-END
-               done
-               cd $saved_pwd
-               dist_clean_target="$dist_clean_target ${sub}-dist-clean"
-               clean_target="$clean_target ${sub}-clean"
-       done
-
-       # Write IN file
-       cat $MAKEFILE_IN >> $MAKEFILE
-
-       # Process clean targets for all subdirs
-       echo $dist_clean_target >> $MAKEFILE
-       echo $clean_target >> $MAKEFILE
-       for sub in $SUBDIRS ; do
-               cat >> $MAKEFILE << END
-${sub}-clean:
-       cd ${sub} && make clean && cd ..
-${sub}-dist-clean:
-       cd ${sub} && make dist-clean && cd ..
-${sub}:
-       cd ${sub} && make && cd ..
-
-END
-       done
-}
-
-write_result()
-{
-       echo "Compiler: $GCC" >> config.log 
-       echo "Make: $MAKE" >> config.log 
-       echo "Sources: $SOURCES" >> config.log
-       echo "Cflags: $CFLAGS" >> config.log
-       echo "Ldflags: $LDFLAGS" >> config.log
-       echo "Libs: $LIBS" >> config.log
-       echo "#define RVERSION \"${VERSION}\"" >> $SRCDIR/$CONFIG
-       echo "#define HASH_COMPAT" >> $SRCDIR/$CONFIG
-
-       write_modules
-       for _s in $SOURCES ; do
-               _o=`echo $_s | awk -F '/' '{split($NF, A, "."); print "%%OBJDIR%%/"A[1]".o"}' | sed -e "s,%%OBJDIR%%,${OBJDIR},"`
-               OBJECTS="$OBJECTS $_o"
-               SRC_OBJ="$SRC_OBJ $_s#$_o"
-       done
-       write_perl
-       # Make CFLAGS more readable
-       CFLAGS="$CFLAGS $PERLCFLAGS"
-       LIBS="$LIBS $PERLLDFLAGS"
-       CFLAGS=`echo $CFLAGS | tr [:space:] \\\n | sed -e 's/$/ \\\/' | sed -e '$,$s/\\\//' | sort -r -k2 | uniq`
-       LDFLAGS=`echo $LDFLAGS | tr [:space:] \\\n | sed -e 's/$/ \\\/' | sed -e '$,$s/\\\//' | sort -r -k2 | uniq`
-       LIBS=`echo $LIBS | tr [:space:] \\\n | sed -e 's/$/ \\\/' | sed -e '$,$s/\\\//' | sort -r -k2 | uniq`
-       cat > $MAKEFILE << END
-# This is ${EXEC} Makefile
-# For options edit Makefile.in, this file is autogenerated by configure
-
-CC=$GCC
-# Optimization flags
-OPT_FLAGS=$OPT_FLAGS
-# Compile time flags
-CFLAGS=$CFLAGS
-# Link time flags
-LDFLAGS=$LDFLAGS
-# Libraries to link
-LIBS=$LIBS
-# Directories for sources and objects
-SRCDIR=$SRCDIR
-OBJDIR=$OBJDIR
-# ${EXEC} sources
-SOURCES=$SOURCES
-# ${EXEC} objects 
-OBJECTS=$OBJECTS
-# Version of product
-VERSION=$VERSION
-# Detected operation system
-OS=$OS
-# Lex and yacc executables
-LEX=$LEX
-YACC=$YACC
-# Pthread specific flags
-PTHREAD_CFLAGS=$PTHREAD_CFLAGS
-PTHREAD_LDFLAGS=$PTHREAD_LDFLAGS
-# Prefix to install
-PREFIX=$PREFIX
-# Where local libs and includes are located
-LOCALBASE=$LOCALBASE
-# Install commands
-INSTALL=$INSTALL
-MKDIR=$MKDIR
-# Executable name
-EXEC=$EXEC
-# User and group
-RSPAMD_USER=$USER
-RSPAMD_GROUP=$GROUP
-# All target dependenses
-TARGETS=$TARGETS $SUBDIRS
-# Common dependenses
-DEPS=$DEPS
-# Path to install manual page
-MANPATH=$MANPATH
-# Subdirectories
-SUBDIRS=$SUBDIRS
-
-END
-
-       write_subdirs
-
-       # Write build targets to makefile
-       cat >> $MAKEFILE << END
-${EXEC}: \$(OBJECTS)
-       \$(CC) \$(PTHREAD_LDFLAGS) \$(LDFLAGS) \$(OBJECTS) \$(LIBS) -o \$(EXEC)
-END
-       for o in $SRC_OBJ ; do
-               SO=`echo $o | cut -d '#' -f 1`
-               O=`echo $o | cut -d '#' -f 2`
-               cat >> $MAKEFILE << END
-${O}: \$(DEPS) ${SRCDIR}/${SO}
-       \$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(PTHREAD_CFLAGS) -o ${O} -c ${SRCDIR}/${SO}
-
-END
-       done
-       cat >> $MAKEFILE << END
-${SRCDIR}/${LEX_OUTPUT}: \$(SRCDIR)/cfg_file.h \$(SRCDIR)/${LEX_SRC} \$(SRCDIR)/${YACC_OUTPUT}
-       \$(LEX) -o\$(SRCDIR)/${LEX_OUTPUT} \$(SRCDIR)/${LEX_SRC}
-
-${SRCDIR}/${YACC_OUTPUT}: \$(SRCDIR)/cfg_file.h \$(SRCDIR)/${YACC_SRC}
-       \$(YACC) -d -o \$(SRCDIR)/${YACC_OUTPUT} \$(SRCDIR)/${YACC_SRC}
-END
-}
-
-
-for option
-do
-    case "$option" in
-        -*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-           *) value="" ;;
-    esac
-
-    case "$option" in
-        --help)                          help=yes                                                      ;;
-               --prefix)                                                PREFIX=$value                                                          ;;
-               --user)                                                  USER=$value                                                            ;;
-               --group)                                                 GROUP=$value                                                           ;;
-               --enable-debug)                                  CFLAGS="$CFLAGS -DWITH_DEBUG" OPT_FLAGS=""     ;;
-               --enable-opt)                    OPT_FLAGS="-O3 -pipe"                                          ;;
-               --add-module)                                    SOURCES="$SOURCES $value"
-                                                                                if [ ! -f $value ] ; then
-                                                                                       echo "Cannot find $value, please check path"
-                                                                                       exit 1
-                                                                                fi
-                                                                                modline=`grep '/***MODULE:' $value`
-                                                                                if [ F"$modline" = "F" ] ; then
-                                                                                       echo "Cannot find /***MODULE line in $value, please check syntax"
-                                                                                       exit 1
-                                                                                fi
-
-                                                                                name=`echo $modline | sed 's/.*MODULE:\([^: ]*\).*/\1/'`
-                                                                                MODULES="$MODULES $name"                                                       ;;
-               --disable-module)                                SOURCES=`echo $SOURCES | sed -e "s/${value}//g"`
-                                                                                if [ ! -f $value ] ; then
-                                                                                       echo "Cannot find $value, please check path"
-                                                                                       exit 1
-                                                                                fi
-                                                                                modline=`grep '/***MODULE:' $value`
-                                                                                if [ F"$modline" = "F" ] ; then
-                                                                                       echo "Cannot find /***MODULE line in $value, please check syntax"
-                                                                                       exit 1
-                                                                                fi
-
-                                                                                name=`echo $modline | sed 's/.*MODULE:\([^: ]*\).*/\1/'`
-                                                                                MODULES=`echo $MODULES | sed -e "s/${name}//g"`                ;;
-               *)
-            echo "$0: error: invalid option \"$option\""
-            exit 1
-        ;;
-    esac
-done
-
-if [ "F$help" = "Fyes" ] ; then
-       cat << END
-
-  --help                             this message
-
-  --prefix=PATH                      set the installation prefix
-  --enable-debug                     turn on extra debug messages
-  --enable-opt                       turn on extra optimization
-  --add-module                                          add additional C module
-  --disable-module                   do not include C module
-  --user=USER                        set user to use
-  --group=GROUP                      set group to use
-END
-       exit 1
-fi
-
-CFLAGS="$CFLAGS -I$PREFIX/include"
-LDFLAGS="$LDFLAGS -L$PREFIX/lib"
-
-echo "Starting configure for rmilter" >config.log
-echo $0 $@ >> config.log
-
-prepare_config
-check_compiler
-check_make
-check_lex
-check_yacc
-check_util "sed"
-check_util "awk"
-check_util "cut"
-check_os
-
-check_lib "event" "event.h"
-if [ $? -eq 1 ] ; then
-       echo "Libevent not found, check config.log for details"
-       exit 1
-fi
-
-check_lib "m"
-check_lib "md"
-if [ $? -eq 1 ] ; then
-       cp $COMPAT_DIR/md5.c $SRCDIR
-       cp $COMPAT_DIR/md5.h $SRCDIR
-       SOURCES="$SOURCES md5.c"
-       DEPS="$DEPS $SRCDIR/md5.h"
-       have_opt "OWN_MD5"
-fi
-
-check_lib "util"
-if [ $? -eq 0 ] ; then
-       have_opt "LIBUTIL"
-fi
-
-check_function "pidfile_open" "sys/param.h" "libutil.h"
-if [ $? -eq 0 ] ; then
-       have_opt "PIDFILE"
-fi
-
-check_function "bzero" "string.h"
-check_function "srandomdev"
-if [ $? -eq 0 ] ; then
-       have_opt "SRANDOMDEV"
-fi
-
-check_function "sched_yield" "sched.h"
-if [ $? -eq 0 ] ; then
-       have_opt "SCHED_YIELD"
-fi
-
-check_function "nanosleep" "time.h"
-if [ $? -eq 0 ] ; then
-       have_opt "NANOSLEEP"
-fi
-
-
-check_function "getpagesize" "unistd.h"
-if [ $? -eq 0 ] ; then
-       have_opt "GETPAGESIZE"
-fi
-
-check_function "setproctitle" "unistd.h"
-if [ $? -eq 0 ] ; then
-       have_opt "SETPROCTITLE"
-fi
-
-check_include "endian.h"
-check_include "libutil.h"
-check_include "machine/endian.h"
-check_include "sys/time.h"
-check_include "time.h"
-check_include "stdint.h"
-if [ $? -eq 1 ] ; then
-       check_include "inttypes.h"
-fi
-check_include "md5.h"
-check_include "sys/queue.h"
-if [ $? -eq 1 ] ; then 
-       cp $COMPAT_DIR/queue.h $SRCDIR
-       DEPS="$DEPS $SRCDIR/queue.h"
-fi
-check_macro "SLIST_FOREACH_SAFE" "sys/queue.h"
-if [ $? -eq 1 ] ; then 
-       cp $COMPAT_DIR/queue.h $SRCDIR
-       DEPS="$DEPS $SRCDIR/queue.h"
-       have_opt "OWN_QUEUE_H"
-fi
-
-check_macro "PATH_MAX" "limits.h"
-if [ $? -eq 1 ] ; then
-       check_macro "MAXPATHLEN" "sys/param.h"
-       if [ $? -eq 1 ] ; then
-               have_opt "MAXPATHLEN"
-               echo "#define MAXPATHLEN 4096" >> $SRCDIR/$CONFIG
-       else
-               have_opt "MAXPATHLEN"
-       fi
-else
-       have_opt "PATH_MAX"
-fi
-
-check_macro "MAP_SHARED" "sys/mman.h"
-if [ $? -eq 1 ] ; then
-       echo "Shared memory extension to mmap not found, this platform is not supported"
-       exit 1
-fi
-
-check_macro "MAP_ANON" "sys/mman.h"
-if [ $? -eq 0 ] ; then
-       have_opt "MMAP_ANON"
-else
-       if [ -f "/dev/zero" ] ; then
-               have_opt "MMAP_ZERO"
-       else
-               echo "Anon memory extension to mmap not found and /dev/zero not exists, this platform is not supported"
-               exit 1
-       fi
-fi
-
-check_macro "_SC_NPROCESSORS_ONLN" "unistd.h"
-if [ $? -eq 0 ] ; then
-       have_opt "SC_NPROCESSORS_ONLN"
-fi
-
-check_package "glib-2.0" "glib.h"
-check_package "gmime-2.0" "gmime/gmime.h"
-if [ $? -eq 1 ] ; then
-       echo "Package gmime-2.0 not found, check config.log for details"
-       exit 1
-fi
-
-check_perl
-if [ $? -eq 1 ] ; then
-       echo "Perl or libperl not found, check config.log for details"
-       exit 1
-fi
-
-check_group $GROUP
-if [ $? -ne 0 ] ; then 
-       TARGETS="$TARGETS creategroup"
-fi
-check_user $USER
-if [ $? -ne 0 ] ; then 
-       TARGETS="$TARGETS createuser"
-fi
-write_result
-finish_config
index a7ad3eaaf00d3db99fa90cc7871518911c34cf53..a5d092c73ee9154199db83d6ef568f6d1ed2b5f9 100644 (file)
@@ -7,16 +7,6 @@
 #define CFG_FILE_H
 
 #include "config.h"
-#include <sys/types.h>
-#ifndef HAVE_OWN_QUEUE_H
-#include <sys/queue.h>
-#else
-#include "queue.h"
-#endif
-#include <netinet/in.h>
-#include <sys/un.h>
-#include <event.h>
-#include <glib.h>
 #include "mem_pool.h"
 #include "upstream.h"
 #include "memcached.h"
index 7d940099f3f2c4eb29b1865401915a4241bb3c52..c7ef97d18677262ab155573cfc7c1f66ee0b103b 100644 (file)
@@ -2,11 +2,8 @@
 %x module
 
 %{
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-#include <syslog.h>
+
+#include "config.h"
 #include "cfg_file.h"
 #include "cfg_yacc.h"
 
@@ -95,7 +92,7 @@ yes|YES|no|NO|[yY]|[nN]                       yylval.flag=parse_flag(yytext); return FLAG;
 [a-zA-Z0-9.-]+:[0-9]{1,5}              yylval.string=strdup(yytext); return HOSTPORT;
 [a-zA-Z<][a-zA-Z@+>_-]*         yylval.string=strdup(yytext); return STRING;
 \/[^/\n]+\/                                            yylval.string=strdup(yytext); return REGEXP;
-[a-zA-Z0-9].[a-zA-Z0-9\/.-]+   yylval.string=strdup(yytext); return DOMAIN;
+[a-zA-Z0-9].[a-zA-Z0-9\/.-]+   yylval.string=strdup(yytext); return DOMAINNAME;
 <incl>[ \t]*      /* eat the whitespace */
 <incl>[^ \t\n]+   { /* got the include file name */
         if (include_stack_ptr >= MAX_INCLUDE_DEPTH) {
index e842c560e1feebae14091a51a6c585d1dff0b35b..73455976df454888b6e3fb6e35c49c09279d74ee 100644 (file)
@@ -2,20 +2,7 @@
 
 %{
 
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <glib.h>
-
+#include "config.h"
 #include "cfg_file.h"
 #include "main.h"
 #include "classifiers/classifiers.h"
@@ -45,7 +32,7 @@ struct statfile *cur_statfile = NULL;
 
 %token ERROR STRING QUOTEDSTRING FLAG
 %token  FILENAME REGEXP QUOTE SEMICOLON OBRACE EBRACE COMMA EQSIGN
-%token  BINDSOCK SOCKCRED DOMAIN IPADDR IPNETWORK HOSTPORT NUMBER CHECK_TIMEOUT
+%token  BINDSOCK SOCKCRED DOMAINNAME IPADDR IPNETWORK HOSTPORT NUMBER CHECK_TIMEOUT
 %token  MAXSIZE SIZELIMIT SECONDS BEANSTALK MYSQL USER PASSWORD DATABASE
 %token  TEMPDIR PIDFILE SERVERS ERROR_TIME DEAD_TIME MAXERRORS CONNECT_TIMEOUT PROTOCOL RECONNECT_TIMEOUT
 %token  READ_SERVERS WRITE_SERVER DIRECTORY_SERVERS MAILBOX_QUERY USERS_QUERY LASTLOGIN_QUERY
@@ -64,7 +51,7 @@ struct statfile *cur_statfile = NULL;
 %type   <string>       SOCKCRED
 %type  <string>        IPADDR IPNETWORK
 %type  <string>        HOSTPORT
-%type  <string>        DOMAIN
+%type  <string>        DOMAINNAME
 %type  <limit>         SIZELIMIT
 %type  <flag>          FLAG
 %type  <seconds>       SECONDS
@@ -169,7 +156,7 @@ bind_cred:
        | IPADDR{
                $$ = $1;
        }
-       | DOMAIN {
+       | DOMAINNAME {
                $$ = $1;
        }
        | HOSTPORT {
@@ -247,7 +234,7 @@ memcached_params:
 memcached_hosts:
        STRING
        | IPADDR
-       | DOMAIN
+       | DOMAINNAME
        | HOSTPORT
        ;
 memcached_error_time:
index 4df4bcafffcd1cbec7f5a9e112904ecf05a4588a..df8a2265f14cca2176b779a61c2e7c696c3f1d29 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <syslog.h>
-#include <netdb.h>
-#include <math.h>
 
 #include "config.h"
 #include "cfg_file.h"
 #include "main.h"
 #include "filter.h"
 #include "classifiers/classifiers.h"
-#ifndef HAVE_OWN_QUEUE_H
-#include <sys/queue.h>
-#else
-#include "queue.h"
-#endif
 
 #define DEFAULT_SCORE 10.0
 
index da6786795c6cd2eeea5f78ff6d3b5107357339f3..283350972ee703d9e962ecb7bb722fd205fc480d 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index 2a2929b7de6eda4a192d98aeda4dff3e4e3ea1b2..13a2957249a2a7573ae2baceb59a39159c8ead4b 100644 (file)
@@ -1,12 +1,7 @@
 #ifndef CLASSIFIERS_H
 #define CLASSIFIERS_H
 
-#include <sys/types.h>
 #include "../config.h"
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
 #include "../mem_pool.h"
 #include "../statfile.h"
 #include "../tokenizers/tokenizers.h"
index 494a5304abc6ab0b62de75fe97c7186d5ef4e485..1b3904e672a357727c4ed31709d8e364087c40c3 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
@@ -26,8 +26,6 @@
  * Winnow classifier
  */
 
-#include <sys/types.h>
-#include <math.h>
 #include "classifiers.h"
 
 #define WINNOW_PROMOTION 1.23
index 6b7a78ae9c41d8082bd0694ae0220956db6459c9..41f8a964935df60569a0389432856f22cb46ed70 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <signal.h>
-
-#include <netinet/in.h>
-#include <syslog.h>
-#include <fcntl.h>
-#include <netdb.h>
-
-#include <glib.h>
-
+#include "config.h"
 #include "util.h"
 #include "main.h"
 #include "message.h"
index 562baac6cc5521a607d732b31945d1e120b07944..088ac4376dffff3899a6cff2839a09a80e9cd8aa 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index b991109f942952ff1f12ace3d8001492328d6d3e..c0b113dbda5c99a86d7112e5f7d76fa8cc7f1f1e 100644 (file)
@@ -6,13 +6,7 @@
 #ifndef RSPAMD_FILTER_H
 #define RSPAMD_FILTER_H
 
-#include <sys/types.h>
-#ifndef HAVE_OWN_QUEUE_H
-#include <sys/queue.h>
-#else
-#include "queue.h"
-#endif
-#include <glib.h>
+#include "config.h"
 
 struct worker_task;
 
index 57f470ff7b828c81ec0a776c9a3de4e024db2fa9..75be14442a8818b5fada4ac558a13f5ce8e1f220 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
@@ -22,9 +22,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdlib.h>
-#include <string.h>
-
 #include "fstring.h"
 
 /*
index 6b3851da3887155c932de2dc77d15880a34e805c..20989474e5c60cb0e58246f2b9b6152b910c9fd5 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
@@ -22,8 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <stdlib.h>
+#include "config.h"
 #include "hash.h"
 
 #define HASH_TABLE_MIN_SIZE 19
index 4a1e973fbaf8e8025927685a9795ebb73027a04b..024cb3851a4f89e22aeea2a704ba22b3f3bb2e49 100644 (file)
@@ -7,8 +7,6 @@
 #ifndef RSPAMD_HASH_H
 #define RSPAMD_HASH_H
 
-#include <sys/types.h>
-#include <glib.h>
 #include "mem_pool.h"
 
 struct rspamd_hash_node {
index 9def8513e57907f37f4f5372883db0a766c9575e..1a142c9f514e05623d0fa9a04febf7b2a355e120 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <sys/param.h>
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <signal.h>
-#ifdef HAVE_LIBUTIL_H
-#include <libutil.h>
-#endif
-#include <syslog.h>
-
+#include "config.h"
 #include "main.h"
 #include "cfg_file.h"
 #include "util.h"
@@ -324,7 +307,6 @@ main (int argc, char **argv, char **env)
 
        PERL_SET_CONTEXT (perl_interpreter);
        perl_construct (perl_interpreter);
-       PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
        perl_parse (perl_interpreter, xs_init, 3, args, NULL);
        /* Block signals to use sigsuspend in future */
        sigprocmask(SIG_BLOCK, &signals.sa_mask, NULL);
index b037ee8cdfb5cd3326c3c3fe6d029391d0dacee6..e1244d0ba0cdb52410f5f376cccaceaaa905bd07 100644 (file)
@@ -7,23 +7,6 @@
 #define RSPAMD_MAIN_H
 
 #include "config.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#ifndef HAVE_OWN_QUEUE_H
-#include <sys/queue.h>
-#else
-#include "queue.h"
-#endif
-#include <sys/time.h>
-
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <signal.h>
-#include <event.h>
-
 #include "fstring.h"
 #include "mem_pool.h"
 #include "statfile.h"
@@ -32,9 +15,6 @@
 #include "protocol.h"
 #include "filter.h"
 
-#include <glib.h>
-#include <gmime/gmime.h>
-
 /* Default values */
 #define FIXED_CONFIG_FILE "./rspamd.conf"
 /* Time in seconds to exit for old worker */
index 87895f87ae1e49d477763be59b440763b841543c..ecdfbb2b5530fc9e6f5d1d173821a0224e6f80fc 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <glib.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-#include <errno.h>
 #include "config.h"
 
-#ifdef HAVE_SCHED_YIELD
-#include <sched.h>
-#endif
-
-#ifdef HAVE_NANOSLEEP
-#include <time.h>
-#endif
-
 #include "mem_pool.h"
 
 /* Sleep time for spin lock in nanoseconds */
@@ -63,7 +49,7 @@ pthread_mutex_t stat_mtx = PTHREAD_MUTEX_INITIALIZER;
 #undef MEMORY_GREEDY
 
 /* Internal statistic */
-static memory_pool_stat_t *stat = NULL;
+static memory_pool_stat_t *mem_pool_stat = NULL;
 
 static struct _pool_chain *
 pool_chain_new (size_t size) 
@@ -75,7 +61,7 @@ pool_chain_new (size_t size)
        chain->pos = chain->begin;
        chain->next = NULL;
        STAT_LOCK ();
-       stat->chunks_allocated ++;
+       mem_pool_stat->chunks_allocated ++;
        STAT_UNLOCK ();
        
        return chain;
@@ -112,7 +98,7 @@ pool_chain_new_shared (size_t size)
        chain->lock = 0;
        chain->next = NULL;
        STAT_LOCK ();
-       stat->shared_chunks_allocated ++;
+       mem_pool_stat->shared_chunks_allocated ++;
        STAT_UNLOCK ();
        
        return chain;
@@ -130,16 +116,16 @@ memory_pool_new (size_t size)
        memory_pool_t *new;
        
        /* Allocate statistic structure if it is not allocated before */
-       if (stat == NULL) {
+       if (mem_pool_stat == NULL) {
 #if defined(HAVE_MMAP_ANON)
-               stat = mmap (NULL, sizeof (memory_pool_stat_t), PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0);
+               mem_pool_stat = mmap (NULL, sizeof (memory_pool_stat_t), PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0);
                g_assert (stat != MAP_FAILED);
 #elif defined(HAVE_MMAP_ZERO)
                int fd;
 
                fd = open ("/dev/zero", O_RDWR);
                g_assert (fd != -1);
-               stat = mmap (NULL, sizeof (memory_pool_stat_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+               mem_pool_stat = mmap (NULL, sizeof (memory_pool_stat_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
                g_assert (chain != MAP_FAILED);
 #else
 #      error No mmap methods are defined
@@ -184,14 +170,14 @@ memory_pool_alloc (memory_pool_t *pool, size_t size)
                        pool->cur_pool = new;
                        new->pos += size;
                        STAT_LOCK ();
-                       stat->bytes_allocated += size;
+                       mem_pool_stat->bytes_allocated += size;
                        STAT_UNLOCK ();
                        return new->begin;
                }       
                tmp = cur->pos;
                cur->pos += size;
                STAT_LOCK ();
-               stat->bytes_allocated += size;
+               mem_pool_stat->bytes_allocated += size;
                STAT_UNLOCK ();
                return tmp;
        }
@@ -253,14 +239,14 @@ memory_pool_alloc_shared (memory_pool_t *pool, size_t size)
                        cur->next = new;
                        new->pos += size;
                        STAT_LOCK ();
-                       stat->bytes_allocated += size;
+                       mem_pool_stat->bytes_allocated += size;
                        STAT_UNLOCK ();
                        return new->begin;
                }
                tmp = cur->pos;
                cur->pos += size;
                STAT_LOCK ();
-               stat->bytes_allocated += size;
+               mem_pool_stat->bytes_allocated += size;
                STAT_UNLOCK ();
                return tmp;
        }
@@ -370,7 +356,7 @@ memory_pool_delete (memory_pool_t *pool)
                g_free (tmp->begin);
                g_free (tmp);
                STAT_LOCK ();
-               stat->chunks_freed ++;
+               mem_pool_stat->chunks_freed ++;
                STAT_UNLOCK ();
        }
        /* Unmap shared memory */
@@ -379,7 +365,7 @@ memory_pool_delete (memory_pool_t *pool)
                cur_shared = cur_shared->next;
                munmap (tmp_shared, tmp_shared->len + sizeof (struct _pool_chain_shared));
                STAT_LOCK ();
-               stat->chunks_freed ++;
+               mem_pool_stat->chunks_freed ++;
                STAT_UNLOCK ();
        }
 
@@ -390,10 +376,10 @@ void
 memory_pool_stat (memory_pool_stat_t *st)
 {
        if (stat) {
-               st->bytes_allocated = stat->bytes_allocated;
-               st->chunks_allocated = stat->chunks_allocated;
-               st->shared_chunks_allocated = stat->shared_chunks_allocated;
-               st->chunks_freed = stat->chunks_freed;
+               st->bytes_allocated = mem_pool_stat->bytes_allocated;
+               st->chunks_allocated = mem_pool_stat->chunks_allocated;
+               st->shared_chunks_allocated = mem_pool_stat->shared_chunks_allocated;
+               st->chunks_freed = mem_pool_stat->chunks_freed;
        }
 }
 
index 719aef220bf5b62f4c5d05d45b174c5b93477fa8..af4f3d063ae6e3cb961e6ad3f003024fdf156e75 100644 (file)
@@ -12,9 +12,7 @@
 #ifndef RSPAMD_MEM_POOL_H
 #define RSPAMD_MEM_POOL_H
 
-#include <sys/types.h>
-#include <glib.h>
-
+#include "config.h"
 
 /** 
  * Destructor type definition 
index 319e55bec3b683494660ec15f258f51ed4a34364..ef81cf73cb823b4fb539ab26cb500a12995b1c3b 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index 87536f8f1d1a83636f6818ed29469d4b9387fb2d..d2636f5e64f1dc4eb121f29140a76eb61c8f406a 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index f913c26486ddb814190683e93db457d1aa689b1f..5c0f15cf992682b84f008279fb4ef1673f9605f0 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <signal.h>
-#include <netdb.h>
-
-#include <glib.h>
-#include <gmime/gmime.h>
-
+#include "config.h"
 #include "util.h"
 #include "main.h"
 #include "message.h"
index 6fa4ad83cafc370e9dd5ee9927bf74e8d474b3a4..1122e7e3bfb98309fbb656a934ef099ab68d628e 100644 (file)
@@ -8,27 +8,6 @@
 
 #include "config.h"
 
-#include <sys/types.h>
-#include <sys/socket.h>
-#ifndef HAVE_OWN_QUEUE_H
-#include <sys/queue.h>
-#else
-#include "queue.h"
-#endif
-#include <sys/time.h>
-
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <signal.h>
-#include <event.h>
-
-#include "main.h"
-
-#include <glib.h>
-#include <gmime/gmime.h>
-
 struct mime_part {
        GMimeContentType *type;
        GByteArray *content;
index dc7864f20b8ea0de9a0a401bd173a3377a2698fa..eaa334d8d257666944d6cf81199363973b261820 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-
-#include <glib.h>
-
+#include "config.h"
 #include "url.h"
 #include "main.h"
 #include "perl.h"
index 7aabe1895ac34aff5017eb50ca8590b69c5e97d6..af97b6f4677bfd85b06f7591b136a34cd31593ee 100644 (file)
@@ -1,8 +1,8 @@
 #ifndef RSPAM_PERL_H
 #define RSPAM_PERL_H
 
-#include <sys/types.h>
-#include <glib.h>
+
+#include "config.h"
 #include "memcached.h"
 
 #include <EXTERN.h>               /* from the Perl distribution     */
index 2e638dc47395cd908071622e63da286e0ef34d1b..1ecfcb36dcc1712f39f78e0cd25bab53152f1474 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * rspamd module that implements different regexp rules
  */
 
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <syslog.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
 
 #include <evdns.h>
 
index 37d6780a461463558a3d6ce5672cc408582631b1..529fa5b096da7965f78f0e5cfee226724cb8a6cd 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * rspamd module that implements SURBL url checking
  */
 
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <syslog.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-
 #include <evdns.h>
 
 #include "../config.h"
index c106b755f9bbbf1727859d002d6ccaf6d6ed3fb1..92b331ac2f616a68c819efd5a63e0ab89dde2b8b 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <glib.h>
 #include "main.h"
 
 #define CRLF "\r\n"
index 80742311a3c657e6e95374bc206c6864e048381f..83d5382560042e5552dd5570b081bb4d2f86cc01 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <time.h>
-#include <limits.h>
-#include <sys/mman.h>
 #include "config.h"
-#include <string.h>
-#include <unistd.h>
-#include <glib.h>
 
 #include "statfile.h"
 #include "main.h"
index 539fda842d6b1ed780a72b407ae3b1a07b6d75aa..88779ca16c59db3a225c73af8decd3f509e5d055 100644 (file)
@@ -7,12 +7,6 @@
 #define RSPAMD_STATFILE_H
 
 #include "config.h"
-#include <sys/types.h>
-#include <glib.h>
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
 #include "mem_pool.h"
 #include "hash.h"
 
index 19646a1f3349231743d5bd76f306eba631ac50d6..a8469fc70647505c0e826b02afb4ebdaa03e25fe 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index d2029a50f3f66b889dfa3bf0962afc7a38fbfb45..48047d4fa84037d5f555b35af4c4fb51def5c8f5 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index af99e1dfcf1d9fc7efb23613cce36dcacd4a5e63..8bc636377bb0184a0ad8cd27b985cd892f57422a 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index 10f639d5967d20c32ddfb6681f2594539e721d75..09be6f1129f74d8e36e2b894bc068e216c8fceb0 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include <syslog.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <string.h>
-
+#include "config.h"
 #include "url.h"
 #include "fstring.h"
 #include "main.h"
index 4964feadc2ce7cedbad2c26ce028c53ab2c3671c..08a5cb0a6e290776e14c2f6dfa4a78fb345130be 100644 (file)
--- a/src/url.h
+++ b/src/url.h
@@ -2,17 +2,7 @@
 #ifndef URL_H
 #define URL_H
 
-#include <sys/types.h>
-#include <sys/socket.h>
 #include "config.h"
-#if !defined(HAVE_OWN_QUEUE_H) && defined(HAVE_SYS_QUEUE_H)
-#include <sys/queue.h>
-#endif
-#ifdef HAVE_OWN_QUEUE_H
-#include "queue.h"
-#endif
-
-#include <glib.h>
 #include "mem_pool.h"
 
 struct worker_task;
index 028bf5d4ca0b6b2798e257edce60e73b66139774..952c3a93eb299de462014aa74f84ee43ac415a9f 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdarg.h>
-#include <sys/file.h>
-#include <syslog.h>
-#include <glib.h>
 
 #include "config.h"
-#ifdef HAVE_LIBUTIL_H
-#include <libutil.h>
-#endif
 #include "util.h"
 #include "cfg_file.h"
 
index 3036d37fd0483a04ae781f3194d5a14a62483af4..fa5bbfbdb7043e5a2a0180a9220a3c0f87cca0c5 100644 (file)
@@ -1,18 +1,7 @@
-#ifndef UTIL_H
-#define UTIL_H
-
-#include <sys/types.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/queue.h>
-#include <sys/time.h>
-
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <signal.h>
+#ifndef RSPAMD_UTIL_H
+#define RSPAMD_UTIL_H
 
+#include "config.h"
 #include "main.h"
 
 struct config_file;
index 7ef68dd9593906de9365e1eaf51208a9df4bf3e8..caacda8384f6a03f2a8c2550de8b89cacf0d2344 100644 (file)
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY Rambler media ''AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+ * DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * Rspamd worker implementation
  */
 
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <signal.h>
-
-#include <netinet/in.h>
-#include <syslog.h>
-#include <fcntl.h>
-#include <netdb.h>
-
-#include <EXTERN.h>               /* from the Perl distribution     */
-#include <perl.h>                 /* from the Perl distribution     */
-
-#include <glib.h>
-#include <event.h>
-#include <gmime/gmime.h>
-
+#include "config.h"
 #include "util.h"
 #include "main.h"
 #include "protocol.h"
@@ -58,6 +36,9 @@
 #include "modules.h"
 #include "message.h"
 
+#include <EXTERN.h>               /* from the Perl distribution     */
+#include <perl.h>                 /* from the Perl distribution     */
+
 #define TASK_POOL_SIZE 4095
 
 const f_str_t CRLF = {