From 2311400db89f8dd24cfc57d6f72328f539a9ce8d Mon Sep 17 00:00:00 2001 From: "Michael J. Pounders" Date: Wed, 1 Oct 2014 22:39:26 -0400 Subject: [PATCH] Make sharedmemory api a compile time option --- CMakeLists.txt | 2 ++ configure.ac | 16 +++++++++++++++- src/CMakeLists.txt | 5 ++++- src/Makefile.am | 4 ++++ src/main.c | 8 +++++++- src/server.c | 2 ++ src/sharedmemory.h | 5 +++++ 7 files changed, 39 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ff95a0..7125353 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) option(USE_POLARSSL_TESTCERT "Link to the PolarSSL test certificate and key." OFF) option(USE_POLARSSL_HAVEGE "Use the PolarSSL HAVEGE random generator key." OFF) +option(USE_SHAREDMEMORY_API "Compile with Sharedmemory API support" OFF) + if(USE_POLARSSL_TESTCERT OR USE_POLARSSL_HAVEGE) if(SSL MATCHES "openssl" OR SSL MATCHES "gnutls") message(FATAL_ERROR "Selecting USE_POLARSSL_TESTCERT or USE_POLARSSL_HAVEGE implies SSL=polarssl") diff --git a/configure.ac b/configure.ac index 5a637e1..5b612ca 100644 --- a/configure.ac +++ b/configure.ac @@ -38,8 +38,12 @@ AC_CANONICAL_HOST # Configure options. AC_ARG_WITH([ssl], [AC_HELP_STRING([--with-ssl=@<:@LIB@:>@], [SSL library (openssl|polarssl) @<:@default=polarssl@:>@])], [], [with_ssl=polarssl]) +AC_ARG_ENABLE([shmapi], [AC_HELP_STRING([--enable-shmapi], [compile with Sharedmemory API support @<:@default=no@:>@])],[],[enable_shmapi=no] ) AC_ARG_ENABLE(polarssl-test-cert, [ --enable-polarssl-test-cert Link to PolarSSL test certificate and key @<:@default=no@:>@], [enable_polarssl_test_cert=yes]) -AC_ARG_ENABLE(polarssl-havege, [ --enable-polarssl-havege Link to PolarSSL HAVEGE random generator key @<:@default=no@:>@ Deafult: /dev/urandom], [enable_polarssl_havege=yes]) +AC_ARG_ENABLE(polarssl-havege, [ --enable-polarssl-havege Link to PolarSSL HAVEGE random generator key @<:@default=no@:>@ Default: /dev/urandom], [enable_polarssl_havege=yes]) + + + # Checks for programs. AC_PROG_CC @@ -89,6 +93,16 @@ AS_IF([test "x$with_ssl" = xopenssl], [ AM_CONDITIONAL(USE_OPENSSL, test x$with_ssl = xopenssl) AM_CONDITIONAL(USE_GNUTLS, test x$with_ssl = xgnutls) +AS_IF([test "x$enable_shmapi" != xno], + [ + AM_CONDITIONAL(USE_SHAREDMEMORY_API, true) + AC_DEFINE([USE_SHAREDMEMORY_API],[],[Use sharedmemory API]) + ], [ + AM_CONDITIONAL(USE_SHAREDMEMORY_API, false) +]) + + + AC_DEFINE([DEFAULT_CONFIG], ["/etc/umurmur.conf"], [Default config]) # Checks for header files. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f916d71..096ef45 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,7 +7,6 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/crypt.c ${CMAKE_CURRENT_SOURCE_DIR}/log.c ${CMAKE_CURRENT_SOURCE_DIR}/main.c - ${CMAKE_CURRENT_SOURCE_DIR}/sharedmemory.c ${CMAKE_CURRENT_SOURCE_DIR}/messagehandler.c ${CMAKE_CURRENT_SOURCE_DIR}/messages.c ${CMAKE_CURRENT_SOURCE_DIR}/pds.c @@ -25,5 +24,9 @@ elseif(SSL MATCHES "gnutls") list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ssli_gnutls.c) endif(SSL MATCHES "openssl") +if(USE_SHAREDMEMORY_API) + list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/sharedmemory.c) +endif(USE_SHAREDMEMORY_API) + set(SOURCE ${SOURCE} ${SOURCE_FILES} PARENT_SCOPE) diff --git a/src/Makefile.am b/src/Makefile.am index f280ecf..d8f476f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -38,3 +38,7 @@ else umurmurd_SOURCES+=ssli_polarssl.c endif endif + +if USE_SHAREDMEMORY_API +umurmurd_SOURCES+=sharedmemory.c +endif diff --git a/src/main.c b/src/main.c index 929af5c..ceebd02 100644 --- a/src/main.c +++ b/src/main.c @@ -350,8 +350,11 @@ int main(int argc, char **argv) Chan_init(); Client_init(); Ban_init(); - Sharedmemory_init(); +#ifdef USE_SHAREDMEMORY_API + Sharedmemory_init(); +#endif + #ifdef POSIX_PRIORITY_SCHEDULING if (realtime) setscheduler(); @@ -359,7 +362,10 @@ int main(int argc, char **argv) Server_run(); +#ifdef USE_SHAREDMEMORY_API Sharedmemory_deinit(); +#endif + Ban_deinit(); SSLi_deinit(); Chan_free(); diff --git a/src/server.c b/src/server.c index 46175e9..a0ed7f5 100644 --- a/src/server.c +++ b/src/server.c @@ -194,7 +194,9 @@ void Server_runLoop(struct pollfd* pollfds) if (pollfds[nofServerSocks + i].revents & POLLOUT) Client_write_fd(pollfds[nofServerSocks + i].fd); } +#ifdef USE_SHAREDMEMORY_API Sharedmemory_update(); +#endif } } diff --git a/src/sharedmemory.h b/src/sharedmemory.h index 26001f7..e4d4494 100644 --- a/src/sharedmemory.h +++ b/src/sharedmemory.h @@ -1,3 +1,6 @@ +#ifndef SHAREDMEMORY_H_777736932196 +#define SHAREDMEMORY_H_777736932196 + #include #include @@ -15,3 +18,5 @@ shm_t *shmptr; void Sharedmemory_init(void); void Sharedmemory_update(void); void Sharedmemory_deinit(void); + +#endif // SHAREDMEMORY_H_777736932196 \ No newline at end of file -- 2.30.2