From: Vsevolod Stakhov Date: Mon, 21 Apr 2014 15:25:51 +0000 (+0100) Subject: Rework project structure, remove trash files. X-Git-Tag: 0.7.0~305 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61555065f3d1c8badcc9573691232f1b6e42988c;p=thirdparty%2Frspamd.git Rework project structure, remove trash files. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f465da28d3..b970df796b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,61 +107,7 @@ INCLUDE(CheckCCompilerFlag) INCLUDE(FindPerl) INCLUDE(FindOpenSSL) -############################# MODULES SECTION ############################################# - -MACRO(_AddModulesForced MLIST WLIST) -# Generate unique string for this build - STRING(RANDOM LENGTH 8 _MODULES_ID) - SET(MODULES_ID ${_MODULES_ID} CACHE INTERNAL "Modules ID" FORCE) - FILE(WRITE "src/modules.c" "/* ${MODULES_ID} */\n#include \"config.h\"\n") - - # Handle even old cmake - LIST(LENGTH ${MLIST} MLIST_COUNT) - LIST(LENGTH ${WLIST} WLIST_COUNT) - MATH(EXPR MLIST_MAX ${MLIST_COUNT}-1) - MATH(EXPR WLIST_MAX ${WLIST_COUNT}-1) - - FOREACH(MOD_IDX RANGE ${MLIST_MAX}) - LIST(GET ${MLIST} ${MOD_IDX} MOD) - FILE(APPEND "src/modules.c" "extern module_t ${MOD}_module;\n") - ENDFOREACH(MOD_IDX RANGE ${MLIST_MAX}) - - FILE(APPEND "src/modules.c" "\n\nmodule_t *modules[] = {\n") - - FOREACH(MOD_IDX RANGE ${MLIST_MAX}) - LIST(GET ${MLIST} ${MOD_IDX} MOD) - FILE(APPEND "src/modules.c" "&${MOD}_module,\n") - ENDFOREACH(MOD_IDX RANGE ${MLIST_MAX}) - - FILE(APPEND "src/modules.c" "NULL\n};\n") - - FOREACH(MOD_IDX RANGE ${WLIST_MAX}) - LIST(GET ${WLIST} ${MOD_IDX} WRK) - FILE(APPEND "src/modules.c" "extern worker_t ${WRK}_worker;\n") - ENDFOREACH(MOD_IDX RANGE ${WLIST_MAX}) - - FILE(APPEND "src/modules.c" "\n\nworker_t *workers[] = {\n") - - FOREACH(MOD_IDX RANGE ${WLIST_MAX}) - LIST(GET ${WLIST} ${MOD_IDX} WRK) - FILE(APPEND "src/modules.c" "&${WRK}_worker,\n") - ENDFOREACH(MOD_IDX RANGE ${WLIST_MAX}) - FILE(APPEND "src/modules.c" "NULL\n};\n") -ENDMACRO(_AddModulesForced MLIST WLIST) - -MACRO(AddModules MLIST WLIST) - _AddModulesForced(${MLIST} ${WLIST}) - #IF(NOT EXISTS "src/modules.c") - # _AddModulesForced(${MLIST} ${WLIST}) - #ELSE(NOT EXISTS "src/modules.c") - # FILE(STRINGS "src/modules.c" FILE_ID_RAW REGEX "^/.*[a-zA-Z0-9]+.*/$") - # STRING(REGEX MATCH "[a-zA-Z0-9]+" FILE_ID "${FILE_ID_RAW}") - # IF(NOT FILE_ID STREQUAL MODULES_ID) - # MESSAGE("Regenerate modules info") - # _AddModulesForced(${MLIST} ${WLIST}) - # ENDIF(NOT FILE_ID STREQUAL MODULES_ID) - #ENDIF(NOT EXISTS "src/modules.c") -ENDMACRO(AddModules MLIST WLIST) +############################# MACRO SECTION ############################################# # Find lua installation MACRO(FindLua _major _minor) @@ -839,7 +785,6 @@ ENDIF(HG) ################################ SOURCES SECTION ########################### - INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/src" "${CMAKE_BINARY_DIR}/src" "${CMAKE_SOURCE_DIR}/src/ucl/include" @@ -849,28 +794,6 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/src" "${CMAKE_SOURCE_DIR}/contrib/xxhash" "${CMAKE_SOURCE_DIR}/src/rdns/include") -SET(RSPAMDSRC src/modules.c - src/controller.c - src/fuzzy_storage.c - src/lua_worker.c - src/main.c - src/map.c - src/smtp_proxy.c - src/webui.c - src/worker.c) - -SET(PLUGINSSRC src/plugins/surbl.c - src/plugins/regexp.c - src/plugins/chartable.c - src/plugins/fuzzy_check.c - src/plugins/spf.c - src/plugins/dkim_check.c) - -SET(MODULES_LIST surbl regexp chartable fuzzy_check spf dkim) -SET(WORKERS_LIST normal controller smtp_proxy fuzzy lua webui) - -AddModules(MODULES_LIST WORKERS_LIST) - ################################ SUBDIRS SECTION ########################### ADD_SUBDIRECTORY(contrib/lgpl) @@ -888,21 +811,10 @@ ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_SUBDIRECTORY(contrib/xxhash) ADD_SUBDIRECTORY(contrib/http-parser) ADD_SUBDIRECTORY(contrib/libottery) -ADD_SUBDIRECTORY(src/lua) -ADD_SUBDIRECTORY(src/json) -ADD_SUBDIRECTORY(src/cdb) -ADD_SUBDIRECTORY(src/ucl/cmake) ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(src/client) - -SET(SLAVE_BUILD 1) -ADD_SUBDIRECTORY(src/rdns) -UNSET(SLAVE_BUILD) ADD_SUBDIRECTORY(test) -LIST(LENGTH PLUGINSSRC RSPAMD_MODULES_NUM) - ############################ TARGETS SECTION ############################### @@ -921,54 +833,9 @@ SET(CONFFILES conf/2tld.inc conf/surbl-whitelist.inc) -######################### LINK SECTION ############################### - -ADD_EXECUTABLE(rspamd ${RSPAMDSRC} ${PLUGINSSRC}) -SET_TARGET_PROPERTIES(rspamd PROPERTIES LINKER_LANGUAGE C) -SET_TARGET_PROPERTIES(rspamd PROPERTIES COMPILE_FLAGS "-DRSPAMD_MAIN") -IF(NOT DEBIAN_BUILD) -SET_TARGET_PROPERTIES(rspamd PROPERTIES VERSION ${RSPAMD_VERSION}) -ENDIF(NOT DEBIAN_BUILD) - -TARGET_LINK_LIBRARIES(rspamd rspamd-mime) -TARGET_LINK_LIBRARIES(rspamd rspamd-server) -TARGET_LINK_LIBRARIES(rspamd rspamd-util) -TARGET_LINK_LIBRARIES(rspamd rspamd-lua) - -TARGET_LINK_LIBRARIES(rspamd event) -IF(HAVE_LIBEVENT2) - TARGET_LINK_LIBRARIES(rspamd event_pthreads) -ENDIF(HAVE_LIBEVENT2) -IF(WITH_DB) - TARGET_LINK_LIBRARIES(rspamd db) -ENDIF(WITH_DB) - -IF(OPENSSL_FOUND) - TARGET_LINK_LIBRARIES(rspamd ${OPENSSL_LIBRARIES}) -ENDIF(OPENSSL_FOUND) -IF(HAVE_FETCH_H) - TARGET_LINK_LIBRARIES(rspamd fetch) -ENDIF(HAVE_FETCH_H) -TARGET_LINK_LIBRARIES(rspamd ${RSPAMD_REQUIRED_LIBRARIES}) - -IF(ENABLE_LUAJIT MATCHES "ON") - TARGET_LINK_LIBRARIES(rspamd "${LUAJIT_LIBRARY}") -ELSE(ENABLE_LUAJIT MATCHES "ON") - TARGET_LINK_LIBRARIES(rspamd "${LUA_LIBRARY}") -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) - ##################### INSTALLATION ########################################## # Binaries -INSTALL(TARGETS rspamd RUNTIME DESTINATION bin) # Configs INSTALL(CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}${CONFDIR})") @@ -1012,9 +879,10 @@ FOREACH(LUA_CONF ${LUA_CONFIGS}) ENDFOREACH(LUA_CONF) # systemd unit - -INSTALL(FILES "rspamd.service" DESTINATION ${SYSTEMDDIR}) -INSTALL(FILES "rspamd.socket" DESTINATION ${SYSTEMDDIR}) +IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + INSTALL(FILES "rspamd.service" DESTINATION ${SYSTEMDDIR}) + INSTALL(FILES "rspamd.socket" DESTINATION ${SYSTEMDDIR}) +ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") # Manual pages INSTALL(FILES "doc/rspamd.8" DESTINATION ${MANDIR}/man8) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 70c96f99db..2706486976 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,149 +1,139 @@ -# Librspamd-util -SET(LIBRSPAMDUTILSRC aio_event.c - bloom.c - diff.c - fstring.c - fuzzy.c - hash.c - http.c - logger.c - map.c - memcached.c - mem_pool.c - printf.c - radix.c - rrd.c - trie.c - upstream.c - util.c) +MACRO(_AddModulesForced MLIST WLIST) +# Generate unique string for this build + STRING(RANDOM LENGTH 8 _MODULES_ID) + SET(MODULES_ID ${_MODULES_ID} CACHE INTERNAL "Modules ID" FORCE) + FILE(WRITE "src/modules.c" "/* ${MODULES_ID} */\n#include \"config.h\"\n") + + # Handle even old cmake + LIST(LENGTH ${MLIST} MLIST_COUNT) + LIST(LENGTH ${WLIST} WLIST_COUNT) + MATH(EXPR MLIST_MAX ${MLIST_COUNT}-1) + MATH(EXPR WLIST_MAX ${WLIST_COUNT}-1) + + FOREACH(MOD_IDX RANGE ${MLIST_MAX}) + LIST(GET ${MLIST} ${MOD_IDX} MOD) + FILE(APPEND "src/modules.c" "extern module_t ${MOD}_module;\n") + ENDFOREACH(MOD_IDX RANGE ${MLIST_MAX}) + + FILE(APPEND "src/modules.c" "\n\nmodule_t *modules[] = {\n") + + FOREACH(MOD_IDX RANGE ${MLIST_MAX}) + LIST(GET ${MLIST} ${MOD_IDX} MOD) + FILE(APPEND "src/modules.c" "&${MOD}_module,\n") + ENDFOREACH(MOD_IDX RANGE ${MLIST_MAX}) + + FILE(APPEND "src/modules.c" "NULL\n};\n") + + FOREACH(MOD_IDX RANGE ${WLIST_MAX}) + LIST(GET ${WLIST} ${MOD_IDX} WRK) + FILE(APPEND "src/modules.c" "extern worker_t ${WRK}_worker;\n") + ENDFOREACH(MOD_IDX RANGE ${WLIST_MAX}) + + FILE(APPEND "src/modules.c" "\n\nworker_t *workers[] = {\n") + + FOREACH(MOD_IDX RANGE ${WLIST_MAX}) + LIST(GET ${WLIST} ${MOD_IDX} WRK) + FILE(APPEND "src/modules.c" "&${WRK}_worker,\n") + ENDFOREACH(MOD_IDX RANGE ${WLIST_MAX}) + FILE(APPEND "src/modules.c" "NULL\n};\n") +ENDMACRO(_AddModulesForced MLIST WLIST) -# Librspamdserver -SET(LIBRSPAMDSERVERSRC - binlog.c - buffer.c - cfg_utils.c - cfg_rcl.c - dkim.c - dns.c - dynamic_cfg.c - events.c - html.c - proxy.c - roll_history.c - settings.c - spf.c - statfile.c - statfile_sync.c - symbols_cache.c - task.c - url.c) - -# Librspamd mime -SET(LIBRSPAMDMIMESRC - expressions.c - filter.c - images.c - message.c - protocol.c - smtp_utils.c - smtp_proto.c - worker_util.c) - -SET(TOKENIZERSSRC tokenizers/tokenizers.c - tokenizers/osb.c) - -SET(CLASSIFIERSSRC classifiers/classifiers.c - classifiers/bayes.c - classifiers/winnow.c) -# Add targets +MACRO(AddModules MLIST WLIST) + _AddModulesForced(${MLIST} ${WLIST}) + #IF(NOT EXISTS "src/modules.c") + # _AddModulesForced(${MLIST} ${WLIST}) + #ELSE(NOT EXISTS "src/modules.c") + # FILE(STRINGS "src/modules.c" FILE_ID_RAW REGEX "^/.*[a-zA-Z0-9]+.*/$") + # STRING(REGEX MATCH "[a-zA-Z0-9]+" FILE_ID "${FILE_ID_RAW}") + # IF(NOT FILE_ID STREQUAL MODULES_ID) + # MESSAGE("Regenerate modules info") + # _AddModulesForced(${MLIST} ${WLIST}) + # ENDIF(NOT FILE_ID STREQUAL MODULES_ID) + #ENDIF(NOT EXISTS "src/modules.c") +ENDMACRO(AddModules MLIST WLIST) -# Rspamdutil -ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${LIBRSPAMDUTILSRC}) -IF(CMAKE_COMPILER_IS_GNUCC) -SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") -ENDIF(CMAKE_COMPILER_IS_GNUCC) +# Contrib software +ADD_SUBDIRECTORY(json) +ADD_SUBDIRECTORY(cdb) +ADD_SUBDIRECTORY(ucl/cmake) +SET(SLAVE_BUILD 1) +ADD_SUBDIRECTORY(rdns) +UNSET(SLAVE_BUILD) +INCLUDE_DIRECTORIES(libutil libserver libmime) -TARGET_LINK_LIBRARIES(rspamd-util ${RSPAMD_REQUIRED_LIBRARIES}) -TARGET_LINK_LIBRARIES(rspamd-util pcre) -TARGET_LINK_LIBRARIES(rspamd-util ucl) -TARGET_LINK_LIBRARIES(rspamd-util ottery) -TARGET_LINK_LIBRARIES(rspamd-util rspamd-http-parser) -TARGET_LINK_LIBRARIES(rspamd-util event) -TARGET_LINK_LIBRARIES(rspamd-util xxhash) -IF(OPENSSL_FOUND) - TARGET_LINK_LIBRARIES(rspamd-util ${OPENSSL_LIBRARIES}) -ENDIF(OPENSSL_FOUND) +# Rspamd core components +ADD_SUBDIRECTORY(lua) +ADD_SUBDIRECTORY(libutil) +ADD_SUBDIRECTORY(libserver) +ADD_SUBDIRECTORY(libmime) +ADD_SUBDIRECTORY(client) + +SET(RSPAMDSRC modules.c + controller.c + fuzzy_storage.c + lua_worker.c + main.c + smtp_proxy.c + webui.c + worker.c) -IF(NOT DEBIAN_BUILD) -SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION}) -ENDIF(NOT DEBIAN_BUILD) +SET(PLUGINSSRC plugins/surbl.c + plugins/regexp.c + plugins/chartable.c + plugins/fuzzy_check.c + plugins/spf.c + plugins/dkim_check.c) + +SET(MODULES_LIST surbl regexp chartable fuzzy_check spf dkim) +SET(WORKERS_LIST normal controller smtp_proxy fuzzy lua webui) -IF(GLIB_COMPAT) - INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") - TARGET_LINK_LIBRARIES(rspamd-util glibadditions) -ENDIF(GLIB_COMPAT) +AddModules(MODULES_LIST WORKERS_LIST) +LIST(LENGTH PLUGINSSRC RSPAMD_MODULES_NUM) -IF(NO_SHARED MATCHES "OFF") - INSTALL(TARGETS rspamd-util - LIBRARY DESTINATION ${LIBDIR} - PUBLIC_HEADER DESTINATION include) -ENDIF(NO_SHARED MATCHES "OFF") - -# Librspamd-server +######################### LINK SECTION ############################### -#IF(WITH_DB) -# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_bdb.c) -#ENDIF(WITH_DB) -#IF(WITH_SQLITE) -# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_sqlite.c) -#ENDIF(WITH_SQLITE) - -ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC}) +ADD_EXECUTABLE(rspamd ${RSPAMDSRC} ${PLUGINSSRC}) +SET_TARGET_PROPERTIES(rspamd PROPERTIES LINKER_LANGUAGE C) +SET_TARGET_PROPERTIES(rspamd PROPERTIES COMPILE_FLAGS "-DRSPAMD_MAIN") IF(NOT DEBIAN_BUILD) -SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION}) +SET_TARGET_PROPERTIES(rspamd PROPERTIES VERSION ${RSPAMD_VERSION}) ENDIF(NOT DEBIAN_BUILD) -SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C 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) -TARGET_LINK_LIBRARIES(rspamd-server rdns) -IF(CMAKE_COMPILER_IS_GNUCC) -SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") -ENDIF(CMAKE_COMPILER_IS_GNUCC) +TARGET_LINK_LIBRARIES(rspamd rspamd-mime) +TARGET_LINK_LIBRARIES(rspamd rspamd-server) +TARGET_LINK_LIBRARIES(rspamd rspamd-util) +TARGET_LINK_LIBRARIES(rspamd rspamd-lua) + +TARGET_LINK_LIBRARIES(rspamd event) +IF(HAVE_LIBEVENT2) + TARGET_LINK_LIBRARIES(rspamd event_pthreads) +ENDIF(HAVE_LIBEVENT2) IF(WITH_DB) - TARGET_LINK_LIBRARIES(rspamd-server db) + TARGET_LINK_LIBRARIES(rspamd db) ENDIF(WITH_DB) IF(OPENSSL_FOUND) - TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES}) + TARGET_LINK_LIBRARIES(rspamd ${OPENSSL_LIBRARIES}) ENDIF(OPENSSL_FOUND) +IF(HAVE_FETCH_H) + TARGET_LINK_LIBRARIES(rspamd fetch) +ENDIF(HAVE_FETCH_H) +TARGET_LINK_LIBRARIES(rspamd ${RSPAMD_REQUIRED_LIBRARIES}) -IF(NO_SHARED MATCHES "OFF") - INSTALL(TARGETS rspamd-server - LIBRARY DESTINATION ${LIBDIR} - PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) -ENDIF(NO_SHARED MATCHES "OFF") - -# Librspamdmime -ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC}) -IF(NOT DEBIAN_BUILD) -SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION}) -ENDIF(NOT DEBIAN_BUILD) -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 "-DRSPAMD_LIB -fno-strict-aliasing") -ENDIF(CMAKE_COMPILER_IS_GNUCC) +IF(ENABLE_LUAJIT MATCHES "ON") + TARGET_LINK_LIBRARIES(rspamd "${LUAJIT_LIBRARY}") +ELSE(ENABLE_LUAJIT MATCHES "ON") + TARGET_LINK_LIBRARIES(rspamd "${LUA_LIBRARY}") +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) -IF(NO_SHARED MATCHES "OFF") - INSTALL(TARGETS rspamd-mime - LIBRARY DESTINATION ${LIBDIR} - PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) -ENDIF(NO_SHARED MATCHES "OFF") -INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src") \ No newline at end of file +INSTALL(TARGETS rspamd RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/src/dns_private.h b/src/dns_private.h deleted file mode 100644 index 1c1df8ded7..0000000000 --- a/src/dns_private.h +++ /dev/null @@ -1,209 +0,0 @@ -/* Copyright (c) 2014, Vsevolod Stakhov - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED ''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 AUTHOR 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 - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef DNS_PRIVATE_H_ -#define DNS_PRIVATE_H_ - -#include "config.h" - -#define MAX_SERVERS 16 -/* Upstream timeouts */ -#define DEFAULT_UPSTREAM_ERROR_TIME 10 -#define DEFAULT_UPSTREAM_DEAD_TIME 300 -#define DEFAULT_UPSTREAM_MAXERRORS 10 - -static const unsigned base = 36; -static const unsigned t_min = 1; -static const unsigned t_max = 26; -static const unsigned skew = 38; -static const unsigned damp = 700; -static const unsigned initial_n = 128; -static const unsigned initial_bias = 72; - -static const gint dns_port = 53; - -#define UDP_PACKET_SIZE 4096 - -#define DNS_COMPRESSION_BITS 0xC0 - -#define DNS_D_MAXLABEL 63 /* + 1 '\0' */ -#define DNS_D_MAXNAME 255 /* + 1 '\0' */ - -#define RESOLV_CONF "/etc/resolv.conf" - -/** - * Represents DNS server - */ -struct rspamd_dns_server { - struct upstream up; /**< upstream structure */ - gchar *name; /**< name of DNS server */ - struct rspamd_dns_io_channel *io_channels; - struct rspamd_dns_io_channel *cur_io_channel; -}; - -/** - * IO channel for a specific DNS server - */ -struct rspamd_dns_io_channel { - struct rspamd_dns_server *srv; - struct rspamd_dns_resolver *resolver; - gint sock; /**< persistent socket */ - struct event ev; - GHashTable *requests; /**< requests in flight */ - struct rspamd_dns_io_channel *prev, *next; -}; - - -struct rspamd_dns_resolver { - struct rspamd_dns_server servers[MAX_SERVERS]; - gint servers_num; /**< number of DNS servers registered */ - guint request_timeout; - guint max_retransmits; - guint max_errors; - GHashTable *io_channels; /**< hash of io chains indexed by socket */ - gboolean throttling; /**< dns servers are busy */ - gboolean is_master_slave; /**< if this is true, then select upstreams as master/slave */ - guint errors; /**< resolver errors */ - struct timeval throttling_time; /**< throttling time */ - struct event throttling_event; /**< throttling event */ - struct event_base *ev_base; /**< base for event ops */ -}; - -struct dns_header; -struct dns_query; - -/* Internal DNS structs */ - -struct dns_header { - guint qid :16; - -#if BYTE_ORDER == BIG_ENDIAN - guint qr:1; - guint opcode:4; - guint aa:1; - guint tc:1; - guint rd:1; - - guint ra:1; - guint unused:3; - guint rcode:4; -#else - guint rd :1; - guint tc :1; - guint aa :1; - guint opcode :4; - guint qr :1; - - guint rcode :4; - guint unused :3; - guint ra :1; -#endif - - guint qdcount :16; - guint ancount :16; - guint nscount :16; - guint arcount :16; -}; - -enum dns_section { - DNS_S_QD = 0x01, -#define DNS_S_QUESTION DNS_S_QD - - DNS_S_AN = 0x02, -#define DNS_S_ANSWER DNS_S_AN - - DNS_S_NS = 0x04, -#define DNS_S_AUTHORITY DNS_S_NS - - DNS_S_AR = 0x08, -#define DNS_S_ADDITIONAL DNS_S_AR - - DNS_S_ALL = 0x0f -}; -/* enum dns_section */ - -enum dns_opcode { - DNS_OP_QUERY = 0, - DNS_OP_IQUERY = 1, - DNS_OP_STATUS = 2, - DNS_OP_NOTIFY = 4, - DNS_OP_UPDATE = 5, -}; -/* dns_opcode */ - -enum dns_class { - DNS_C_IN = 1, - - DNS_C_ANY = 255 -}; -/* enum dns_class */ - -struct dns_query { - gchar *qname; - guint qtype :16; - guint qclass :16; -}; - -enum dns_type { - DNS_T_A = 1, - DNS_T_NS = 2, - DNS_T_CNAME = 5, - DNS_T_SOA = 6, - DNS_T_PTR = 12, - DNS_T_MX = 15, - DNS_T_TXT = 16, - DNS_T_AAAA = 28, - DNS_T_SRV = 33, - DNS_T_OPT = 41, - DNS_T_SSHFP = 44, - DNS_T_SPF = 99, - - DNS_T_ALL = 255 -}; -/* enum dns_type */ - -static const gchar dns_rcodes[16][16] = { - [DNS_RC_NOERROR] = "NOERROR", - [DNS_RC_FORMERR] = "FORMERR", - [DNS_RC_SERVFAIL] = "SERVFAIL", - [DNS_RC_NXDOMAIN] = "NXDOMAIN", - [DNS_RC_NOTIMP] = "NOTIMP", - [DNS_RC_REFUSED] = "REFUSED", - [DNS_RC_YXDOMAIN] = "YXDOMAIN", - [DNS_RC_YXRRSET] = "YXRRSET", - [DNS_RC_NXRRSET] = "NXRRSET", - [DNS_RC_NOTAUTH] = "NOTAUTH", - [DNS_RC_NOTZONE] = "NOTZONE", -}; - -static const gchar dns_types[7][16] = { - [DNS_REQUEST_A] = "A request", - [DNS_REQUEST_PTR] = "PTR request", - [DNS_REQUEST_MX] = "MX request", - [DNS_REQUEST_TXT] = "TXT request", - [DNS_REQUEST_SRV] = "SRV request", - [DNS_REQUEST_SPF] = "SPF request", - [DNS_REQUEST_AAA] = "AAA request" -}; - -#endif /* DNS_PRIVATE_H_ */ diff --git a/src/libmime/CMakeLists.txt b/src/libmime/CMakeLists.txt new file mode 100644 index 0000000000..303b7a088b --- /dev/null +++ b/src/libmime/CMakeLists.txt @@ -0,0 +1,29 @@ +# Librspamd mime +SET(LIBRSPAMDMIMESRC + expressions.c + filter.c + images.c + message.c + protocol.c + smtp_utils.c + smtp_proto.c + worker_util.c) + +# Librspamdmime +ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC}) +IF(NOT DEBIAN_BUILD) +SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION}) +ENDIF(NOT DEBIAN_BUILD) +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 "-DRSPAMD_LIB -fno-strict-aliasing") +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(NO_SHARED MATCHES "OFF") + INSTALL(TARGETS rspamd-mime + LIBRARY DESTINATION ${LIBDIR} + PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) +ENDIF(NO_SHARED MATCHES "OFF") \ No newline at end of file diff --git a/src/expressions.c b/src/libmime/expressions.c similarity index 100% rename from src/expressions.c rename to src/libmime/expressions.c diff --git a/src/expressions.h b/src/libmime/expressions.h similarity index 100% rename from src/expressions.h rename to src/libmime/expressions.h diff --git a/src/filter.c b/src/libmime/filter.c similarity index 100% rename from src/filter.c rename to src/libmime/filter.c diff --git a/src/filter.h b/src/libmime/filter.h similarity index 100% rename from src/filter.h rename to src/libmime/filter.h diff --git a/src/images.c b/src/libmime/images.c similarity index 100% rename from src/images.c rename to src/libmime/images.c diff --git a/src/images.h b/src/libmime/images.h similarity index 100% rename from src/images.h rename to src/libmime/images.h diff --git a/src/message.c b/src/libmime/message.c similarity index 100% rename from src/message.c rename to src/libmime/message.c diff --git a/src/message.h b/src/libmime/message.h similarity index 100% rename from src/message.h rename to src/libmime/message.h diff --git a/src/protocol.c b/src/libmime/protocol.c similarity index 100% rename from src/protocol.c rename to src/libmime/protocol.c diff --git a/src/protocol.h b/src/libmime/protocol.h similarity index 100% rename from src/protocol.h rename to src/libmime/protocol.h diff --git a/src/smtp_proto.c b/src/libmime/smtp_proto.c similarity index 100% rename from src/smtp_proto.c rename to src/libmime/smtp_proto.c diff --git a/src/smtp_proto.h b/src/libmime/smtp_proto.h similarity index 100% rename from src/smtp_proto.h rename to src/libmime/smtp_proto.h diff --git a/src/smtp_utils.c b/src/libmime/smtp_utils.c similarity index 100% rename from src/smtp_utils.c rename to src/libmime/smtp_utils.c diff --git a/src/smtp_utils.h b/src/libmime/smtp_utils.h similarity index 100% rename from src/smtp_utils.h rename to src/libmime/smtp_utils.h diff --git a/src/worker_util.c b/src/libmime/worker_util.c similarity index 100% rename from src/worker_util.c rename to src/libmime/worker_util.c diff --git a/src/libserver/CMakeLists.txt b/src/libserver/CMakeLists.txt new file mode 100644 index 0000000000..bd5df18b9e --- /dev/null +++ b/src/libserver/CMakeLists.txt @@ -0,0 +1,63 @@ +# Librspamdserver +SET(LIBRSPAMDSERVERSRC + binlog.c + buffer.c + cfg_utils.c + cfg_rcl.c + dkim.c + dns.c + dynamic_cfg.c + events.c + html.c + proxy.c + roll_history.c + settings.c + spf.c + statfile.c + statfile_sync.c + symbols_cache.c + task.c + url.c) +SET(TOKENIZERSSRC ../tokenizers/tokenizers.c + ../tokenizers/osb.c) + +SET(CLASSIFIERSSRC ../classifiers/classifiers.c + ../classifiers/bayes.c + ../classifiers/winnow.c) + +# Librspamd-server + +#IF(WITH_DB) +# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_bdb.c) +#ENDIF(WITH_DB) +#IF(WITH_SQLITE) +# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_sqlite.c) +#ENDIF(WITH_SQLITE) + +ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC}) +IF(NOT DEBIAN_BUILD) +SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION}) +ENDIF(NOT DEBIAN_BUILD) +SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C 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) +TARGET_LINK_LIBRARIES(rspamd-server rdns) +IF(CMAKE_COMPILER_IS_GNUCC) +SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(WITH_DB) + TARGET_LINK_LIBRARIES(rspamd-server db) +ENDIF(WITH_DB) + +IF(OPENSSL_FOUND) + TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES}) +ENDIF(OPENSSL_FOUND) + +IF(NO_SHARED MATCHES "OFF") + INSTALL(TARGETS rspamd-server + LIBRARY DESTINATION ${LIBDIR} + PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) +ENDIF(NO_SHARED MATCHES "OFF") \ No newline at end of file diff --git a/src/binlog.c b/src/libserver/binlog.c similarity index 100% rename from src/binlog.c rename to src/libserver/binlog.c diff --git a/src/binlog.h b/src/libserver/binlog.h similarity index 100% rename from src/binlog.h rename to src/libserver/binlog.h diff --git a/src/buffer.c b/src/libserver/buffer.c similarity index 100% rename from src/buffer.c rename to src/libserver/buffer.c diff --git a/src/buffer.h b/src/libserver/buffer.h similarity index 100% rename from src/buffer.h rename to src/libserver/buffer.h diff --git a/src/cfg_file.h b/src/libserver/cfg_file.h similarity index 100% rename from src/cfg_file.h rename to src/libserver/cfg_file.h diff --git a/src/cfg_rcl.c b/src/libserver/cfg_rcl.c similarity index 100% rename from src/cfg_rcl.c rename to src/libserver/cfg_rcl.c diff --git a/src/cfg_rcl.h b/src/libserver/cfg_rcl.h similarity index 100% rename from src/cfg_rcl.h rename to src/libserver/cfg_rcl.h diff --git a/src/cfg_utils.c b/src/libserver/cfg_utils.c similarity index 100% rename from src/cfg_utils.c rename to src/libserver/cfg_utils.c diff --git a/src/dkim.c b/src/libserver/dkim.c similarity index 100% rename from src/dkim.c rename to src/libserver/dkim.c diff --git a/src/dkim.h b/src/libserver/dkim.h similarity index 100% rename from src/dkim.h rename to src/libserver/dkim.h diff --git a/src/dns.c b/src/libserver/dns.c similarity index 100% rename from src/dns.c rename to src/libserver/dns.c diff --git a/src/dns.h b/src/libserver/dns.h similarity index 100% rename from src/dns.h rename to src/libserver/dns.h diff --git a/src/dynamic_cfg.c b/src/libserver/dynamic_cfg.c similarity index 100% rename from src/dynamic_cfg.c rename to src/libserver/dynamic_cfg.c diff --git a/src/dynamic_cfg.h b/src/libserver/dynamic_cfg.h similarity index 100% rename from src/dynamic_cfg.h rename to src/libserver/dynamic_cfg.h diff --git a/src/events.c b/src/libserver/events.c similarity index 100% rename from src/events.c rename to src/libserver/events.c diff --git a/src/events.h b/src/libserver/events.h similarity index 100% rename from src/events.h rename to src/libserver/events.h diff --git a/src/html.c b/src/libserver/html.c similarity index 100% rename from src/html.c rename to src/libserver/html.c diff --git a/src/html.h b/src/libserver/html.h similarity index 100% rename from src/html.h rename to src/libserver/html.h diff --git a/src/proxy.c b/src/libserver/proxy.c similarity index 100% rename from src/proxy.c rename to src/libserver/proxy.c diff --git a/src/proxy.h b/src/libserver/proxy.h similarity index 100% rename from src/proxy.h rename to src/libserver/proxy.h diff --git a/src/roll_history.c b/src/libserver/roll_history.c similarity index 100% rename from src/roll_history.c rename to src/libserver/roll_history.c diff --git a/src/roll_history.h b/src/libserver/roll_history.h similarity index 100% rename from src/roll_history.h rename to src/libserver/roll_history.h diff --git a/src/settings.c b/src/libserver/settings.c similarity index 100% rename from src/settings.c rename to src/libserver/settings.c diff --git a/src/settings.h b/src/libserver/settings.h similarity index 100% rename from src/settings.h rename to src/libserver/settings.h diff --git a/src/spf.c b/src/libserver/spf.c similarity index 100% rename from src/spf.c rename to src/libserver/spf.c diff --git a/src/spf.h b/src/libserver/spf.h similarity index 100% rename from src/spf.h rename to src/libserver/spf.h diff --git a/src/statfile.c b/src/libserver/statfile.c similarity index 100% rename from src/statfile.c rename to src/libserver/statfile.c diff --git a/src/statfile.h b/src/libserver/statfile.h similarity index 100% rename from src/statfile.h rename to src/libserver/statfile.h diff --git a/src/statfile_sync.c b/src/libserver/statfile_sync.c similarity index 100% rename from src/statfile_sync.c rename to src/libserver/statfile_sync.c diff --git a/src/statfile_sync.h b/src/libserver/statfile_sync.h similarity index 100% rename from src/statfile_sync.h rename to src/libserver/statfile_sync.h diff --git a/src/symbols_cache.c b/src/libserver/symbols_cache.c similarity index 100% rename from src/symbols_cache.c rename to src/libserver/symbols_cache.c diff --git a/src/symbols_cache.h b/src/libserver/symbols_cache.h similarity index 100% rename from src/symbols_cache.h rename to src/libserver/symbols_cache.h diff --git a/src/task.c b/src/libserver/task.c similarity index 100% rename from src/task.c rename to src/libserver/task.c diff --git a/src/task.h b/src/libserver/task.h similarity index 100% rename from src/task.h rename to src/libserver/task.h diff --git a/src/url.c b/src/libserver/url.c similarity index 100% rename from src/url.c rename to src/libserver/url.c diff --git a/src/url.h b/src/libserver/url.h similarity index 100% rename from src/url.h rename to src/libserver/url.h diff --git a/src/libutil/CMakeLists.txt b/src/libutil/CMakeLists.txt new file mode 100644 index 0000000000..2a5ab46c5c --- /dev/null +++ b/src/libutil/CMakeLists.txt @@ -0,0 +1,50 @@ +# Librspamd-util +SET(LIBRSPAMDUTILSRC aio_event.c + bloom.c + diff.c + fstring.c + fuzzy.c + hash.c + http.c + logger.c + map.c + memcached.c + mem_pool.c + printf.c + radix.c + rrd.c + trie.c + upstream.c + util.c) +# Rspamdutil +ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${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 ${RSPAMD_REQUIRED_LIBRARIES}) +TARGET_LINK_LIBRARIES(rspamd-util pcre) +TARGET_LINK_LIBRARIES(rspamd-util ucl) +TARGET_LINK_LIBRARIES(rspamd-util ottery) +TARGET_LINK_LIBRARIES(rspamd-util rspamd-http-parser) +TARGET_LINK_LIBRARIES(rspamd-util event) +TARGET_LINK_LIBRARIES(rspamd-util xxhash) +IF(OPENSSL_FOUND) + TARGET_LINK_LIBRARIES(rspamd-util ${OPENSSL_LIBRARIES}) +ENDIF(OPENSSL_FOUND) + +IF(NOT DEBIAN_BUILD) +SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION}) +ENDIF(NOT DEBIAN_BUILD) + +IF(GLIB_COMPAT) + INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") + TARGET_LINK_LIBRARIES(rspamd-util glibadditions) +ENDIF(GLIB_COMPAT) + +IF(NO_SHARED MATCHES "OFF") + INSTALL(TARGETS rspamd-util + LIBRARY DESTINATION ${LIBDIR} + PUBLIC_HEADER DESTINATION include) +ENDIF(NO_SHARED MATCHES "OFF") \ No newline at end of file diff --git a/src/aio_event.c b/src/libutil/aio_event.c similarity index 100% rename from src/aio_event.c rename to src/libutil/aio_event.c diff --git a/src/aio_event.h b/src/libutil/aio_event.h similarity index 100% rename from src/aio_event.h rename to src/libutil/aio_event.h diff --git a/src/bloom.c b/src/libutil/bloom.c similarity index 100% rename from src/bloom.c rename to src/libutil/bloom.c diff --git a/src/bloom.h b/src/libutil/bloom.h similarity index 100% rename from src/bloom.h rename to src/libutil/bloom.h diff --git a/src/diff.c b/src/libutil/diff.c similarity index 100% rename from src/diff.c rename to src/libutil/diff.c diff --git a/src/diff.h b/src/libutil/diff.h similarity index 100% rename from src/diff.h rename to src/libutil/diff.h diff --git a/src/fstring.c b/src/libutil/fstring.c similarity index 100% rename from src/fstring.c rename to src/libutil/fstring.c diff --git a/src/fstring.h b/src/libutil/fstring.h similarity index 100% rename from src/fstring.h rename to src/libutil/fstring.h diff --git a/src/fuzzy.c b/src/libutil/fuzzy.c similarity index 100% rename from src/fuzzy.c rename to src/libutil/fuzzy.c diff --git a/src/fuzzy.h b/src/libutil/fuzzy.h similarity index 100% rename from src/fuzzy.h rename to src/libutil/fuzzy.h diff --git a/src/hash.c b/src/libutil/hash.c similarity index 100% rename from src/hash.c rename to src/libutil/hash.c diff --git a/src/hash.h b/src/libutil/hash.h similarity index 100% rename from src/hash.h rename to src/libutil/hash.h diff --git a/src/http.c b/src/libutil/http.c similarity index 100% rename from src/http.c rename to src/libutil/http.c diff --git a/src/http.h b/src/libutil/http.h similarity index 100% rename from src/http.h rename to src/libutil/http.h diff --git a/src/logger.c b/src/libutil/logger.c similarity index 100% rename from src/logger.c rename to src/libutil/logger.c diff --git a/src/logger.h b/src/libutil/logger.h similarity index 100% rename from src/logger.h rename to src/libutil/logger.h diff --git a/src/map.c b/src/libutil/map.c similarity index 100% rename from src/map.c rename to src/libutil/map.c diff --git a/src/map.h b/src/libutil/map.h similarity index 100% rename from src/map.h rename to src/libutil/map.h diff --git a/src/mem_pool.c b/src/libutil/mem_pool.c similarity index 100% rename from src/mem_pool.c rename to src/libutil/mem_pool.c diff --git a/src/mem_pool.h b/src/libutil/mem_pool.h similarity index 100% rename from src/mem_pool.h rename to src/libutil/mem_pool.h diff --git a/src/memcached.c b/src/libutil/memcached.c similarity index 100% rename from src/memcached.c rename to src/libutil/memcached.c diff --git a/src/memcached.h b/src/libutil/memcached.h similarity index 100% rename from src/memcached.h rename to src/libutil/memcached.h diff --git a/src/printf.c b/src/libutil/printf.c similarity index 100% rename from src/printf.c rename to src/libutil/printf.c diff --git a/src/printf.h b/src/libutil/printf.h similarity index 100% rename from src/printf.h rename to src/libutil/printf.h diff --git a/src/radix.c b/src/libutil/radix.c similarity index 100% rename from src/radix.c rename to src/libutil/radix.c diff --git a/src/radix.h b/src/libutil/radix.h similarity index 100% rename from src/radix.h rename to src/libutil/radix.h diff --git a/src/rrd.c b/src/libutil/rrd.c similarity index 100% rename from src/rrd.c rename to src/libutil/rrd.c diff --git a/src/rrd.h b/src/libutil/rrd.h similarity index 100% rename from src/rrd.h rename to src/libutil/rrd.h diff --git a/src/trie.c b/src/libutil/trie.c similarity index 100% rename from src/trie.c rename to src/libutil/trie.c diff --git a/src/trie.h b/src/libutil/trie.h similarity index 100% rename from src/trie.h rename to src/libutil/trie.h diff --git a/src/upstream.c b/src/libutil/upstream.c similarity index 100% rename from src/upstream.c rename to src/libutil/upstream.c diff --git a/src/upstream.h b/src/libutil/upstream.h similarity index 100% rename from src/upstream.h rename to src/libutil/upstream.h diff --git a/src/util.c b/src/libutil/util.c similarity index 100% rename from src/util.c rename to src/libutil/util.c diff --git a/src/util.h b/src/libutil/util.h similarity index 100% rename from src/util.h rename to src/libutil/util.h