diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 22 | ||||
-rw-r--r-- | src/bin/CMakeLists.txt | 15 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 15 | ||||
-rw-r--r-- | src/misc.c | 16 | ||||
-rw-r--r-- | src/modulemanager.cpp | 24 | ||||
-rw-r--r-- | src/modules/CMakeLists.txt | 15 | ||||
-rw-r--r-- | src/protocol/CMakeLists.txt | 15 | ||||
-rw-r--r-- | src/timeout.c | 4 | ||||
-rw-r--r-- | src/tools/CMakeLists.txt | 26 | ||||
-rw-r--r-- | src/tools/anopesmtp.c | 4 | ||||
-rw-r--r-- | src/tools/db-convert.c | 6 | ||||
-rw-r--r-- | src/tools/db-merger.c | 16 | ||||
-rw-r--r-- | src/tools/smtp.h | 6 |
13 files changed, 118 insertions, 66 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 334492c5b..02f3df75d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,11 +77,12 @@ foreach(SRC ${SRC_SRCS}) if(${SRC}_HEADERS) foreach(HEADER ${${SRC}_HEADERS}) string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR) - if(FIRST_CHAR STREQUAL "/") + string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR) + if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${HEADER}) - else(FIRST_CHAR STREQUAL "/") + else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER}) - endif(FIRST_CHAR STREQUAL "/") + endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") endforeach(HEADER) endif(${SRC}_HEADERS) if(HEADERS) @@ -100,9 +101,24 @@ endforeach(SRC) #add_custom_target(build ALL) #add_dependencies(build language headers src_services) add_executable(services ${SRC_SRCS}) +set_target_properties(services PROPERTIES LINK_FLAGS "${LDFLAGS}") + set_target_properties(services PROPERTIES ENABLE_EXPORTS ON) +if(WIN32) + target_link_libraries(services wsock32) +endif(WIN32) #set_target_properties(services PROPERTIES COMPILE_FLAGS ${CXXFLAGS}) add_dependencies(services language headers) +get_target_property(SERVICES_BINARY services LOCATION) +file(RELATIVE_PATH SERVICES_BINARY ${CMAKE_CURRENT_BINARY_DIR} ${SERVICES_BINARY}) + set(SERVICES_BIN "${BINDIR}/${SERVICES_BINARY}") +message("[in src] SERVICES_BIN: ${SERVICES_BIN}") + +configure_file(${Anope_SOURCE_DIR}/include/sysconf.h.cmake ${Anope_BINARY_DIR}/include/sysconf.h) +if(NOT WIN32) + configure_file(${Anope_SOURCE_DIR}/src/bin/anoperc.cmake ${Anope_BINARY_DIR}/src/bin/anoperc) +endif(NOT WIN32) + add_subdirectory(bin) add_subdirectory(core) add_subdirectory(modules) diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt index 7aa28c1cd..b587479c6 100644 --- a/src/bin/CMakeLists.txt +++ b/src/bin/CMakeLists.txt @@ -1,8 +1,9 @@ -install(PROGRAMS anoperc - DESTINATION "${BINDIR}" -) -install(PROGRAMS mydbgen - DESTINATION "${DATADIR}" -) - +if(NOT WIN32) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/anoperc + DESTINATION "${BINDIR}" + ) + install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/mydbgen + DESTINATION "${DATADIR}" + ) +endif(NOT WIN32) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index eaf6ac36a..c0942b62e 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -14,7 +14,7 @@ list(SORT CORE_SRCS) #add_custom_target(core) #add_dependencies(core build) -set_source_files_properties(${CORE_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") +set_source_files_properties(${CORE_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}") set(cs_set.c_HEADERS encrypt.h) set(ns_register.c_HEADERS encrypt.h) @@ -44,11 +44,12 @@ foreach(SRC ${CORE_SRCS}) if(${SRC}_HEADERS) foreach(HEADER ${${SRC}_HEADERS}) string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR) - if(FIRST_CHAR STREQUAL "/") + string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR) + if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${HEADER}) - else(FIRST_CHAR STREQUAL "/") + else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER}) - endif(FIRST_CHAR STREQUAL "/") + endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") endforeach(HEADER) endif(${SRC}_HEADERS) if(HEADERS) @@ -57,7 +58,11 @@ foreach(SRC ${CORE_SRCS}) add_library(${SO} MODULE ${SRC}) add_dependencies(${SO} services) #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS}) - set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") + set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}") + if(WIN32) + target_link_libraries(${SO} services wsock32) + endif(WIN32) + #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") install(TARGETS ${SO} DESTINATION "${DATADIR}/modules" ) diff --git a/src/misc.c b/src/misc.c index b3adc6ae4..5e6f4a4b8 100644 --- a/src/misc.c +++ b/src/misc.c @@ -21,9 +21,9 @@ #define issp(c) ((c) == 32) struct arc4_stream { - u_int8_t i; - u_int8_t j; - u_int8_t s[256]; + uint8 i; + uint8 j; + uint8 s[256]; } rs; /*************************************************************************/ @@ -931,7 +931,7 @@ static void arc4_init() static void arc4_addrandom(void *dat, int datlen) { int n; - u_int8_t si; + uint8 si; rs.i--; for (n = 0; n < 256; n++) { @@ -1034,9 +1034,9 @@ unsigned char getrandom8() * Get the random numbers 16 byte deep * @return char */ -u_int16_t getrandom16() +uint16 getrandom16() { - u_int16_t val; + uint16 val; val = getrandom8() << 8; val |= getrandom8(); @@ -1049,9 +1049,9 @@ u_int16_t getrandom16() * Get the random numbers 32 byte deep * @return char */ -u_int32_t getrandom32() +uint32 getrandom32() { - u_int32_t val; + uint32 val; val = getrandom8() << 24; val |= getrandom8() << 16; diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 4fd6043e3..cfbcc9794 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -111,10 +111,26 @@ static bool IsOneOfModuleTypeLoaded(MODType mt) return false; } +/* This code was found online at http://www.linuxjournal.com/article/3687#comment-26593 + * + * This function will take a pointer from either dlsym or GetProcAddress and cast it in + * a way that won't cause C++ warnings/errors to come up. + */ +template <class TYPE> +TYPE function_cast(ano_module_t symbol) +{ + union { + ano_module_t symbol; + TYPE function; + } cast; + cast.symbol = symbol; + return cast.function; +} + int ModuleManager::LoadModule(const std::string &modname, User * u) { const char *err; - Module * (*func) (const std::string &); + Module *(*func)(const std::string &); int ret = 0; if (modname.empty()) @@ -158,7 +174,7 @@ int ModuleManager::LoadModule(const std::string &modname, User * u) } ano_modclearerr(); - func = reinterpret_cast<Module *(*)(const std::string &)>(ano_modsym(handle, "init_module")); + func = function_cast<Module *(*)(const std::string &)>(ano_modsym(handle, "init_module")); if (func == NULL && (err = ano_moderr()) != NULL) { alog("No magical init function found, not an Anope module"); @@ -255,11 +271,11 @@ void ModuleManager::DeleteModule(Module *m) handle = m->handle; ano_modclearerr(); - destroy_func = reinterpret_cast<void (*)(Module *)>(ano_modsym(m->handle, "destroy_module")); + destroy_func = function_cast<void (*)(Module *)>(ano_modsym(m->handle, "destroy_module")); if (destroy_func == NULL && (err = ano_moderr()) != NULL) { alog("No magical destroy function found, chancing delete..."); - delete m; /* we just have to change they haven't overwrote the delete operator then... */ + delete m; /* we just have to chance they haven't overwrote the delete operator then... */ } else { diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 1e153a933..dc7a2f54e 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -14,7 +14,7 @@ list(SORT MODULES_SRCS) #add_custom_target(modules) #add_dependencies(modules build) -set_source_files_properties(${MODULES_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") +set_source_files_properties(${MODULES_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}") foreach(SRC ${MODULES_SRCS}) string(REGEX REPLACE "\\.cpp$" ".x" SRC_X ${SRC}) @@ -39,11 +39,12 @@ foreach(SRC ${MODULES_SRCS}) if(${SRC}_HEADERS) foreach(HEADER ${${SRC}_HEADERS}) string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR) - if(FIRST_CHAR STREQUAL "/") + string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR) + if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${HEADER}) - else(FIRST_CHAR STREQUAL "/") + else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER}) - endif(FIRST_CHAR STREQUAL "/") + endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") endforeach(HEADER) endif(${SRC}_HEADERS) if(HEADERS) @@ -52,7 +53,11 @@ foreach(SRC ${MODULES_SRCS}) add_library(${SO} MODULE ${SRC}) add_dependencies(${SO} services) #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS}) - set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") + set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}") + if(WIN32) + target_link_libraries(${SO} services wsock32) + endif(WIN32) + #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") install(TARGETS ${SO} DESTINATION "${DATADIR}/modules" ) diff --git a/src/protocol/CMakeLists.txt b/src/protocol/CMakeLists.txt index 403348704..bb94e116a 100644 --- a/src/protocol/CMakeLists.txt +++ b/src/protocol/CMakeLists.txt @@ -14,7 +14,7 @@ list(SORT PROTOCOL_SRCS) #add_custom_target(modules) #add_dependencies(protocol build) -set_source_files_properties(${PROTOCOL_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") +set_source_files_properties(${PROTOCOL_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${MODULE_CXXFLAGS}") foreach(SRC ${PROTOCOL_SRCS}) string(REGEX REPLACE "\\.cpp$" ".x" SRC_X ${SRC}) @@ -39,11 +39,12 @@ foreach(SRC ${PROTOCOL_SRCS}) if(${SRC}_HEADERS) foreach(HEADER ${${SRC}_HEADERS}) string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR) - if(FIRST_CHAR STREQUAL "/") + string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR) + if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${HEADER}) - else(FIRST_CHAR STREQUAL "/") + else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER}) - endif(FIRST_CHAR STREQUAL "/") + endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") endforeach(HEADER) endif(${SRC}_HEADERS) if(HEADERS) @@ -52,7 +53,11 @@ foreach(SRC ${PROTOCOL_SRCS}) add_library(${SO} MODULE ${SRC}) add_dependencies(${SO} services) #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS}) - set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") + set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}") + if(WIN32) + target_link_libraries(${SO} services wsock32) + endif(WIN32) + #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") install(TARGETS ${SO} DESTINATION "${DATADIR}/modules" ) diff --git a/src/timeout.c b/src/timeout.c index b8f31765e..d34ca9afb 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -17,6 +17,8 @@ static Timeout *timeouts = NULL; +typedef void (*voidF)(); + /*************************************************************************/ /* Check the timeout list for any pending actions. */ @@ -37,7 +39,7 @@ void check_timeouts() } if (debug >= 4) { alog("debug: Running timeout 0x%p (code=0x%p repeat=%d)", - static_cast<void *>(to), reinterpret_cast<void *>(to->code), to->repeat); + static_cast<void *>(to), reinterpret_cast<voidF>(to->code), to->repeat); } to->code(to); if (to->repeat) { diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index f73a671b4..18a064683 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -10,9 +10,9 @@ list(SORT TOOLS_SRCS) set_source_files_properties(${TOOLS_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") -set(anopesmtp.c_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/smtp.h) -set(db-convert.c_HEADERS sysconf.h) -set(db-merger.c_HEADERS sysconf.h) +set(anopesmtp.c_HEADERS ${Anope_BINARY_DIR}/include/sysconf.h ${CMAKE_CURRENT_SOURCE_DIR}/smtp.h) +set(db-convert.c_HEADERS ${Anope_BINARY_DIR}/include/sysconf.h) +set(db-merger.c_HEADERS ${Anope_BINARY_DIR}/include/sysconf.h) foreach(SRC ${TOOLS_SRCS}) #string(REGEX REPLACE "\\." "_" SRC_TARGET ${SRC}) @@ -34,17 +34,19 @@ foreach(SRC ${TOOLS_SRCS}) if(${SRC}_HEADERS) foreach(HEADER ${${SRC}_HEADERS}) string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR) - if(FIRST_CHAR STREQUAL "/") + string(SUBSTRING ${HEADER} 1 1 SECOND_CHAR) + if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${HEADER}) - else(FIRST_CHAR STREQUAL "/") + else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER}) - endif(FIRST_CHAR STREQUAL "/") + endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":") endforeach(HEADER) endif(${SRC}_HEADERS) if(HEADERS) set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}") endif(HEADERS) add_executable(${EXE} ${SRC}) + set_target_properties(${EXE} PROPERTIES LINK_FLAGS "${LDFLAGS}") add_dependencies(${EXE} services) #set_target_properties(${EXE} PROPERTIES COMPILE_FLAGS ${CXXFLAGS}) install(TARGETS ${EXE} @@ -52,6 +54,12 @@ foreach(SRC ${TOOLS_SRCS}) ) endforeach(SRC) -if(RUNGROUP) - install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${BINDIR}/tools\")") -endif(RUNGROUP) +if(WIN32) + target_link_libraries(anopesmtp wsock32) +endif(WIN32) + +if(NOT WIN32) + if(RUNGROUP) + install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${BINDIR}/tools\")") + endif(RUNGROUP) +endif(NOT WIN32) diff --git a/src/tools/anopesmtp.c b/src/tools/anopesmtp.c index c775921bd..6101fb4a9 100644 --- a/src/tools/anopesmtp.c +++ b/src/tools/anopesmtp.c @@ -20,7 +20,7 @@ static int curday = 0; /*************************************************************************/ -#ifdef _WIN32 +/*#ifdef _WIN32 int strcasecmp(const char *s1, const char *s2) { register int c; @@ -35,7 +35,7 @@ int strcasecmp(const char *s1, const char *s2) return -1; return 1; } -#endif +#endif*/ static int get_logname(char *name, int count, struct tm *tm) { diff --git a/src/tools/db-convert.c b/src/tools/db-convert.c index 38c2e675d..d561c5333 100644 --- a/src/tools/db-convert.c +++ b/src/tools/db-convert.c @@ -25,10 +25,10 @@ #ifndef _WIN32 #include <unistd.h> #else -#include "sysconf.h" #include <windows.h> #include <io.h> #endif +#include "sysconf.h" #include <string> #include <iostream> @@ -63,10 +63,6 @@ } \ } while (0) -typedef int16_t int16; -typedef u_int16_t uint16; -typedef int32_t int32; -typedef u_int32_t uint32; typedef struct memo_ Memo; typedef struct dbFILE_ dbFILE; typedef struct nickalias_ NickAlias; diff --git a/src/tools/db-merger.c b/src/tools/db-merger.c index 81d03bba8..63bdb48a4 100644 --- a/src/tools/db-merger.c +++ b/src/tools/db-merger.c @@ -55,11 +55,11 @@ #ifndef _WIN32 #include <unistd.h> #else -#include "sysconf.h" #include <windows.h> #include <io.h> #define open _open #endif +#include "sysconf.h" /* Some SUN fixs */ #ifdef __sun @@ -131,10 +131,6 @@ } \ } while (0) -typedef int16_t int16; -typedef u_int16_t uint16; -typedef int32_t int32; -typedef u_int32_t uint32; typedef struct memo_ Memo; typedef struct dbFILE_ dbFILE; typedef struct nickalias_ NickAlias; @@ -270,7 +266,7 @@ struct botinfo_ { struct badword_ { uint16 in_use; char *word; - uint16 type; + uint16 type; }; struct hostcore_ { @@ -575,7 +571,7 @@ int main(int argc, char *argv[]) scanf("%s", input); } if (input[0] == '1') { /* get alias #2 out of the list, then free() it, then add #1 to the list */ - printf("Deleting nick alias %s (#2).\n", naptr->nick); + printf("Deleting nick alias %s (#2).\n", naptr->nick); naptr->nc->aliascount--; /* tell the core it has one alias less */ delnick(naptr, 0); /* removes the alias from the list and free()s it */ na->nc = ncptr; @@ -620,7 +616,7 @@ int main(int argc, char *argv[]) free(s); } /* getc_db() */ } /* for() loop */ - close_db(f); /* End of section Ib */ + close_db(f); /* End of section Ib */ } else nonick = 1; } @@ -632,7 +628,7 @@ int main(int argc, char *argv[]) for (NickCore *nc = nclists[i]; nc; nc = ncnext) { ncnext = nc->next; if (nc->aliascount < 1) { - printf("Deleting core %s (%s).\n", nc->display, nc->email); + printf("Deleting core %s (%s).\n", nc->display, nc->email); delcore(nc); } } @@ -718,7 +714,7 @@ int main(int argc, char *argv[]) last = &chanlists[i]; prev = NULL; - + while ((c = getc_db(f)) == 1) { int j; diff --git a/src/tools/smtp.h b/src/tools/smtp.h index ef6a0d0aa..70a9a2033 100644 --- a/src/tools/smtp.h +++ b/src/tools/smtp.h @@ -14,6 +14,8 @@ #ifndef SMTP_H #define SMTP_H +#include "sysconf.h" + /*************************************************************************/ /* Some Linux boxes (or maybe glibc includes) require this for the @@ -82,10 +84,10 @@ extern int connect(int, struct sockaddr *, int); #endif -#ifdef _WIN32 +/*#ifdef _WIN32 #define PATH_MAX MAX_PATH #define snprintf _snprintf -#endif +#endif*/ /*************************************************************************/ |