]> source.dussan.org Git - rspamd.git/commitdiff
* Split rspamd build to several independent libraries to reduce overhead.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 5 Jun 2012 14:21:49 +0000 (18:21 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 5 Jun 2012 14:21:49 +0000 (18:21 +0400)
CMakeLists.txt
lib/CMakeLists.txt
lib/client/librspamdclient.c
src/cdb/CMakeLists.txt
src/client/CMakeLists.txt
src/json/CMakeLists.txt
src/lua/CMakeLists.txt
src/util.c
src/util.h
src/worker.c

index 3afda776969fe6d3f8f117eff0749acd975aa4ef..c1530e46803cdffb28f1f4ee3ade6fefb3ead2fe 100644 (file)
@@ -310,6 +310,19 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
        SET(CMAKE_INSTALL_RPATH "${PREFIX}/lib")        
 ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
 
+# Set libdir
+IF(NOT LIBDIR)
+       SET(LIBDIR lib/rspamd)
+       IF(NOT CMAKE_INSTALL_RPATH)
+               SET(CMAKE_INSTALL_RPATH ${PREFIX}/${LIBDIR})
+       ENDIF(NOT CMAKE_INSTALL_RPATH)
+ENDIF(NOT LIBDIR)
+
+# Set includedir
+IF(NOT INCLUDEDIR)
+       SET(INCLUDEDIR include/rspamd)
+ENDIF(NOT INCLUDEDIR)
+
 # Check prefixes
 IF(NOT ETC_PREFIX)
        IF(CMAKE_INSTALL_PREFIX)
@@ -932,17 +945,15 @@ SET_TARGET_PROPERTIES(rspamd PROPERTIES LINKER_LANGUAGE C)
 SET_TARGET_PROPERTIES(rspamd PROPERTIES COMPILE_FLAGS "-DRSPAMD_MAIN")
 SET_TARGET_PROPERTIES(rspamd PROPERTIES VERSION ${RSPAMD_VERSION})
 
-TARGET_LINK_LIBRARIES(rspamd rspamdserver)
+TARGET_LINK_LIBRARIES(rspamd rspamd-mime)
+TARGET_LINK_LIBRARIES(rspamd rspamd-server)
+TARGET_LINK_LIBRARIES(rspamd rspamd-util)
+TARGET_LINK_LIBRARIES(rspamd rspamd-lua)
 
 IF(LIBJUDY_LIBRARY)
        TARGET_LINK_LIBRARIES(rspamd Judy)
 ENDIF(LIBJUDY_LIBRARY)
-IF(LIBDB_LIBRARY)
-       TARGET_LINK_LIBRARIES(rspamd db)
-ENDIF(LIBDB_LIBRARY)
-IF(SQLITE_LIBRARIES)
-       TARGET_LINK_LIBRARIES(rspamd ${SQLITE_LIBRARIES})
-ENDIF(SQLITE_LIBRARIES)
+
 TARGET_LINK_LIBRARIES(rspamd event)
 IF(HAVE_LIBEVENT2)
        TARGET_LINK_LIBRARIES(rspamd event_pthreads)
@@ -950,22 +961,11 @@ ENDIF(HAVE_LIBEVENT2)
 TARGET_LINK_LIBRARIES(rspamd ${PCRE_LIBRARIES})
 
 TARGET_LINK_LIBRARIES(rspamd ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamd ${GLIB2_LIBRARIES})
-IF(GMIME24)
-       TARGET_LINK_LIBRARIES(rspamd ${GMIME24_LIBRARIES})
-ELSE(GMIME24)
-       TARGET_LINK_LIBRARIES(rspamd ${GMIME2_LIBRARIES})
-ENDIF(GMIME24)
-IF(OPENSSL_FOUND)
-       TARGET_LINK_LIBRARIES(rspamd ${OPENSSL_LIBRARIES})
-ENDIF(OPENSSL_FOUND)
 
 IF(ENABLE_STATIC MATCHES "ON")
        TARGET_LINK_LIBRARIES(rspamd ${PCRE_LIBRARIES})
 ENDIF(ENABLE_STATIC MATCHES "ON")
 
-TARGET_LINK_LIBRARIES(rspamd hiredis)
-
 IF(ENABLE_LUAJIT MATCHES "ON")
        TARGET_LINK_LIBRARIES(rspamd "${LUAJIT_LIBRARY}")
 ELSE(ENABLE_LUAJIT MATCHES "ON")
@@ -975,7 +975,7 @@ ENDIF(ENABLE_LUAJIT MATCHES "ON")
 IF(ENABLE_GPERF_TOOLS MATCHES "ON")
        TARGET_LINK_LIBRARIES(rspamd profiler)
 ENDIF(ENABLE_GPERF_TOOLS MATCHES "ON")
-
+TARGET_LINK_LIBRARIES(rspamd hiredis)
 IF(GLIB_COMPAT)
        TARGET_LINK_LIBRARIES(rspamd glibadditions)
 ENDIF(GLIB_COMPAT)
index a0350e0125606a7a4de971bdf3ab59b6eec8d71b..2ef90dec206aadd97a70ed905202261bac19288a 100644 (file)
 # Librspamdclient
-SET(LIBRSPAMDSRC                         client/librspamdclient.c 
-                                                         ../src/mem_pool.c 
-                                                         ../src/upstream.c 
-                                                         ../src/printf.c)
+SET(LIBRSPAMDCLIENTSRC                   client/librspamdclient.c )
+
+# Librspamd-util
+SET(LIBRSPAMDUTILSRC                   ../src/aio_event.c
+                                                               ../src/bloom.c
+                                                               ../src/diff.c
+                                                               ../src/fstring.c
+                                                               ../src/fuzzy.c
+                                                               ../src/hash.c
+                                                               ../src/memcached.c
+                                                               ../src/mem_pool.c
+                                                               ../src/printf.c
+                                                               ../src/radix.c
+                                                               ../src/trie.c
+                                                               ../src/upstream.c
+                                                               ../src/util.c)
+
+# kvstorageclient
+
+SET(LIBRKVSTORAGESRC                     kvstorage/libkvstorageclient.c)
 
-ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDSRC})
-ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDSRC})
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
-
-IF(CMAKE_COMPILER_IS_GNUCC)
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
-SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
-ENDIF(CMAKE_COMPILER_IS_GNUCC)
-
-TARGET_LINK_LIBRARIES(rspamdclient ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamdclient pcre)
-TARGET_LINK_LIBRARIES(rspamdclient ${GLIB2_LIBRARIES})
-
-TARGET_LINK_LIBRARIES(rspamdclient_static ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamdclient_static ${GLIB2_LIBRARIES})
-
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
-SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
-
-IF(GLIB_COMPAT)
-       INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
-       TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
-ENDIF(GLIB_COMPAT)
-
-INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER 
-    LIBRARY DESTINATION lib 
-    PUBLIC_HEADER DESTINATION include
-    ARCHIVE DESTINATION lib)
-
-    
 # Librspamdserver
-SET(RSPAMDLIBSRC
-                               ../src/aio_event.c 
+SET(LIBRSPAMDSERVERSRC
                                ../src/binlog.c
-                ../src/bloom.c
                                ../src/buffer.c
                                ../src/cfg_utils.c
                                ../src/cfg_xml.c
-                               ../src/diff.c
                                ../src/dkim.c
                                ../src/dns.c
                                ../src/events.c
-                               ../src/expressions.c
-                               ../src/filter.c
-                               ../src/fstring.c
-                               ../src/fuzzy.c
-                               ../src/hash.c
                                ../src/html.c
-                               ../src/images.c
                                ../src/kvstorage.c
                                ../src/kvstorage_config.c
                                ../src/kvstorage_file.c
                                ../src/lmtp_proto.c
                                ../src/logger.c
                                ../src/map.c
-                               ../src/memcached.c
-                               ../src/mem_pool.c
-                               ../src/message.c
-                               ../src/printf.c
-                               ../src/protocol.c
                                ../src/proxy.c
-                               ../src/radix.c
                                ../src/settings.c
                                ../src/spf.c
                                ../src/smtp_proto.c
-                               ../src/smtp_utils.c
                                ../src/statfile.c
                                ../src/statfile_sync.c
                                ../src/symbols_cache.c
-                               ../src/trie.c
-                               ../src/upstream.c
                                ../src/url.c
-                               ../src/util.c
                                ../src/view.c)
+                               
+# Librspamd mime
+SET(LIBRSPAMDMIMESRC
+                               ../src/expressions.c
+                               ../src/filter.c
+                               ../src/images.c
+                               ../src/message.c
+                               ../src/protocol.c
+                               ../src/smtp_utils.c)
+# Add targets
+
+# Rspamdutil
+ADD_LIBRARY(rspamd-util SHARED ${LIBRSPAMDUTILSRC})
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+TARGET_LINK_LIBRARIES(rspamd-util ${CMAKE_REQUIRED_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamd-util pcre)
+TARGET_LINK_LIBRARIES(rspamd-util ${GLIB2_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamd-util event)
+
+SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION})
+
+IF(GLIB_COMPAT)
+       INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
+       TARGET_LINK_LIBRARIES(rspamd-util glibadditions)
+ENDIF(GLIB_COMPAT)
+
+INSTALL(TARGETS rspamd-util 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION include
+    ARCHIVE DESTINATION ${LIBDIR})
+
+# Rspamd client
+ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC})
+ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDCLIENTSRC})
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
+
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+TARGET_LINK_LIBRARIES(rspamdclient rspamd-util)
+
+TARGET_LINK_LIBRARIES(rspamdclient_static ${CMAKE_REQUIRED_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamdclient_static ${GLIB2_LIBRARIES})
+
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
+SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
+
+IF(GLIB_COMPAT)
+       INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
+       TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
+ENDIF(GLIB_COMPAT)
+
+INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
+
+    
+# Librspamd-server
 
 IF(WITH_DB)
-       LIST(APPEND RSPAMDLIBSRC ../src/kvstorage_bdb.c)
+       LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_bdb.c)
 ENDIF(WITH_DB)
 IF(WITH_SQLITE)
-       LIST(APPEND RSPAMDLIBSRC ../src/kvstorage_sqlite.c)
+       LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_sqlite.c)
 ENDIF(WITH_SQLITE)
                                
-ADD_LIBRARY(rspamdserver STATIC ${RSPAMDLIBSRC})
-SET_TARGET_PROPERTIES(rspamdserver PROPERTIES LINKER_LANGUAGE C)
-SET_TARGET_PROPERTIES(rspamdserver PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_lua)
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_json)
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_cdb)   
+ADD_LIBRARY(rspamd-server SHARED ${LIBRSPAMDSERVERSRC})
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C)
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-json)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-util)      
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
 
+IF(WITH_DB)
+       TARGET_LINK_LIBRARIES(rspamd-server db)
+ENDIF(WITH_DB)
+IF(SQLITE_LIBRARIES)
+       TARGET_LINK_LIBRARIES(rspamd-server ${SQLITE_LIBRARIES})
+ENDIF(SQLITE_LIBRARIES)
+
+IF(OPENSSL_FOUND)
+       TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES})
+ENDIF(OPENSSL_FOUND)
+INSTALL(TARGETS rspamd-server 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
+    
+# Librspamdmime
+ADD_LIBRARY(rspamd-mime SHARED ${LIBRSPAMDMIMESRC})
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C)
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server)
+TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util)      
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+IF(GMIME24)
+       TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME24_LIBRARIES})
+ELSE(GMIME24)
+       TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME2_LIBRARIES})
+ENDIF(GMIME24)
+
+INSTALL(TARGETS rspamd-mime 
+    LIBRARY DESTINATION ${LIBDIR}  
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
 
 # Libkvstorageclient
-SET(LIBRKVSTORAGESRC                     kvstorage/libkvstorageclient.c 
-                                                                 ../src/mem_pool.c 
-                                                                 ../src/upstream.c 
-                                                                 ../src/printf.c 
-                                                                 ../src/util.c)
 
 ADD_LIBRARY(kvstorageclient SHARED ${LIBRKVSTORAGESRC})
 ADD_LIBRARY(kvstorageclient_static STATIC ${LIBRKVSTORAGESRC})
@@ -110,10 +175,7 @@ SET_TARGET_PROPERTIES(kvstorageclient PROPERTIES COMPILE_FLAGS "-fno-strict-alia
 SET_TARGET_PROPERTIES(kvstorageclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
 ENDIF(CMAKE_COMPILER_IS_GNUCC)
 
-TARGET_LINK_LIBRARIES(kvstorageclient ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(kvstorageclient pcre)
-TARGET_LINK_LIBRARIES(kvstorageclient ${GLIB2_LIBRARIES})
-TARGET_LINK_LIBRARIES(kvstorageclient event)
+TARGET_LINK_LIBRARIES(kvstorageclient rspamd-util)
 
 TARGET_LINK_LIBRARIES(kvstorageclient_static ${CMAKE_REQUIRED_LIBRARIES})
 TARGET_LINK_LIBRARIES(kvstorageclient_static ${GLIB2_LIBRARIES})
@@ -128,6 +190,6 @@ ENDIF(GLIB_COMPAT)
 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src")
 
 INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER 
-    LIBRARY DESTINATION lib 
-    PUBLIC_HEADER DESTINATION include
-    ARCHIVE DESTINATION lib)
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
index dac49b5aedaf66578465fe50f9983c5ec9be9c87..2fbc2692d1052472dddc0c53b3ca36bbb5a6125e 100644 (file)
@@ -1125,31 +1125,19 @@ rspamd_send_controller_command (struct rspamd_connection *c, const gchar *line,
                if ((r = read (c->socket, tmpbuf, sizeof (tmpbuf) - 1)) > 0) {
                        /* Check the end of the buffer for END marker */
                        tmpbuf[r] = '\0';
-                       if (r >= (gint)sizeof (end_marker) - 1 &&
-                                       (p = strstr (tmpbuf, end_marker)) != NULL) {
-                               *p = '\0';
-                               /* Copy the rest to the result string */
-                               if (res == NULL) {
-                                       res = g_string_new (tmpbuf);
-                                       return res;
-                               }
-                               else {
-                                       /* Append data to string */
-                                       if (r > 0) {
-                                               res = g_string_append (res, tmpbuf);
-                                       }
-                                       return res;
-                               }
+                       /* Store data inside res */
+                       if (res == NULL) {
+                               res = g_string_new_len (tmpbuf, r);
                        }
                        else {
-                               /* Store data inside res */
-                               if (res == NULL) {
-                                       res = g_string_new_len (tmpbuf, r);
-                               }
-                               else {
-                                       /* Append data to string */
-                                       res = g_string_append_len (res, tmpbuf, r);
-                               }
+                               /* Append data to string */
+                               res = g_string_append_len (res, tmpbuf, r);
+                       }
+                       /* Check for END marker */
+                       if (res->len > sizeof (end_marker) - 1 && (p = strstr (res->str, end_marker)) != NULL) {
+                               *p = '\0';
+                               res->len = p - res->str;
+                               return res;
                        }
                }
        } while (r > 0);
index d0b56bc6c38ee16ba1ac9a5016792f041fcf8096..ab7b8b57ad8175d4246d40cef6b5b04d5c76f5d4 100644 (file)
@@ -3,5 +3,9 @@ SET(CDBSRC                              cdb_init.c
                                                cdb_find.c
                                                cdb_make.c)
 
-ADD_LIBRARY(rspamd_cdb STATIC ${CDBSRC})
-SET_TARGET_PROPERTIES(rspamd_cdb PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
\ No newline at end of file
+ADD_LIBRARY(rspamd-cdb SHARED ${CDBSRC})
+SET_TARGET_PROPERTIES(rspamd-cdb PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+INSTALL(TARGETS rspamd-cdb 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
\ No newline at end of file
index a486f24d2fb7e8a042a557cbe0f338d61651bc63..fe02d5e1bd2a159d38370809e284641b83cafa9f 100644 (file)
@@ -3,7 +3,7 @@ SET(RSPAMCSRC                     rspamc.c)
 
 ADD_EXECUTABLE(rspamc ${RSPAMCSRC})
 SET_TARGET_PROPERTIES(rspamc PROPERTIES COMPILE_FLAGS "-I${CMAKE_SOURCE_DIR}/lib")
-TARGET_LINK_LIBRARIES(rspamc rspamdserver)
+TARGET_LINK_LIBRARIES(rspamc rspamd-util)
 IF(ENABLE_STATIC MATCHES "ON")
        TARGET_LINK_LIBRARIES(rspamc rspamdclient_static)
 ELSE(ENABLE_STATIC MATCHES "ON")
index 1f61d55a3dd709d2404ad3b615c090b234d7a153..ad8059269601d27741b60316224f6f27563cf1b8 100644 (file)
@@ -6,5 +6,9 @@ SET(JSONSRC                             dump.c
                                                utf.c
                                                value.c)
 
-ADD_LIBRARY(rspamd_json STATIC ${JSONSRC})
-SET_TARGET_PROPERTIES(rspamd_json PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+ADD_LIBRARY(rspamd-json SHARED ${JSONSRC})
+SET_TARGET_PROPERTIES(rspamd-json PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+INSTALL(TARGETS rspamd-json 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
index e46b5c885ef6e1387bea50517a5c1c5acbc9a148..bdba01c27669f120b3238103a295caeb8a6d3538 100644 (file)
@@ -12,7 +12,10 @@ SET(LUASRC                     lua_common.c
                                          lua_redis.c
                                          lua_upstream.c)
 
-ADD_LIBRARY(rspamd_lua STATIC ${LUASRC})
-TARGET_LINK_LIBRARIES(rspamd_lua ${LUALIB})
-TARGET_LINK_LIBRARIES(rspamd_lua hiredis)
-SET_TARGET_PROPERTIES(rspamd_lua PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+ADD_LIBRARY(rspamd-lua SHARED ${LUASRC})
+TARGET_LINK_LIBRARIES(rspamd-lua ${LUALIB})
+SET_TARGET_PROPERTIES(rspamd-lua PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+INSTALL(TARGETS rspamd-lua 
+    LIBRARY DESTINATION ${LIBDIR} 
+    PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+    ARCHIVE DESTINATION ${LIBDIR})
index 4db04c3d5050768c03dd04a9f992a7be0a3769d5..d569e9be7b854ec3c4c100d70337ba7bf31e7ca0 100644 (file)
@@ -1346,27 +1346,6 @@ rspamd_fallocate (gint fd, off_t offset, off_t len)
 }
 
 
-/**
- * Return worker's control structure by its type
- * @param type
- * @return worker's control structure or NULL
- */
-worker_t*
-get_worker_by_type (GQuark type)
-{
-       worker_t                                                **cur;
-
-       cur = &workers[0];
-       while (*cur) {
-               if (g_quark_from_string ((*cur)->name) == type) {
-                       return *cur;
-               }
-               cur ++;
-       }
-
-       return NULL;
-}
-
 /**
  * Create new mutex
  * @return mutex or NULL
index 8db8cc87883fcfc379c5c3505c137327cd46940b..0d9834a76e36227c6a3122d28ee280bb11208d1c 100644 (file)
@@ -225,7 +225,7 @@ gint rspamd_fallocate (gint fd, off_t offset, off_t len);
  * @param type
  * @return worker's control structure or NULL
  */
-worker_t* get_worker_by_type (GQuark type);
+extern worker_t* get_worker_by_type (GQuark type);
 
 /**
  * Utils for working with threads to be compatible with all glib versions
index 250bf7d3156bae99d8911a9971530657a2546268..1da4458d765ee8f021a14cdb713a4151fcf0d065 100644 (file)
@@ -251,6 +251,27 @@ construct_task (struct rspamd_worker *worker)
        return new_task;
 }
 
+/**
+ * Return worker's control structure by its type
+ * @param type
+ * @return worker's control structure or NULL
+ */
+worker_t*
+get_worker_by_type (GQuark type)
+{
+       worker_t                                                **cur;
+
+       cur = &workers[0];
+       while (*cur) {
+               if (g_quark_from_string ((*cur)->name) == type) {
+                       return *cur;
+               }
+               cur ++;
+       }
+
+       return NULL;
+}
+
 
 /*
  * Free all structures of worker_task