diff options
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rwxr-xr-x | configure | 28 | ||||
-rw-r--r-- | eurephiadm/CMakeLists.txt | 4 | ||||
-rw-r--r-- | eurephiadm/eurephiadm.c | 5 |
4 files changed, 46 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a8a9e9b..cfe5526 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ OPTION(PLUGIN "Build the eurephia plugin for OpenVPN" OFF) SET(OPENVPN_SRC "" CACHE STRING "Path to OpenVPN source code") SET(PREFIX "/etc/openvpn/eurephia" CACHE STRING "Install prefix for eurephia") +SET(XSLTROOT "/usr/share/eurephia/xslt" CACHE STRING "Root path for the XSLT templates") SET(CMAKE_INSTALL_PREFIX ${PREFIX}) IF(SQLITE3) @@ -27,12 +28,20 @@ IF(EUREPHIADM) ENDIF(EUREPHIADM) IF(ADMIN_ENABLED) + # Find required packages for eurephiadm - libxml2 and libxslt find_package(PkgConfig) pkg_search_module(LIBXML2 REQUIRED libxml-2.0 libxml2 libxml>=2.6) INCLUDE_DIRECTORIES(BEFORE ${LIBXML2_INCLUDE_DIRS}) ADD_DEFINITIONS(-DHAVE_LIBXML2) SET(EXTRA_LIBS ${EXTRA_LIBS} ${LIBXML2_LIBRARIES}) + pkg_search_module(LIBXSLT REQUIRED libxslt) + INCLUDE_DIRECTORIES(BEFORE ${LIBXSLT_INCLUDE_DIRS}) + ADD_DEFINITIONS(-DHAVE_LIBXSLT) + SET(EXTRA_LIBS ${EXTRA_LIBS} ${LIBXSLT_LIBRARIES}) + + # Find optional package for eurephiadm - OpenSSL. + # Used for parsing certificate files. pkg_search_module(OPENSSL OPTIONAL openssl>=0.9.8) IF(OPENSSL_FOUND) ADD_DEFINITIONS(-DHAVE_OPENSSL) @@ -1,5 +1,8 @@ #!/bin/sh +XSLTPATH="/usr/share/eurephia/xslt" +EUREPHIADM_XSLT="${XSLTPATH}/eurephiadm" +EUREPHIADM_XSLT_SET=0 usage() { cat <<EOF configure help for eurephia @@ -7,6 +10,8 @@ configure help for eurephia --help | -h -- This help screen --prefix <path> -- Root directory of installation (default: /etc/openvpn/eurephia) + --xslt-path | -X -- Default XSLT path + (default: /usr/share/eurephia/xslt) --debug | -D -- Enable verbose debug logging --show-secrets | -S -- Log passwords as clear text in log files | (only available when debug is enabled) @@ -19,6 +24,8 @@ configure help for eurephia --eurephiadm | -A -- Build command line admin utility --eurephiadm-fw -- Include the firewall info even without any firewall interface being built + --eurephiadm-xslt -- eurephiadm XSLT root path + (default: ${EUREPHIADM_XSLT}) EOF } @@ -29,6 +36,7 @@ ADMIN=""; OPENVPN_SRC_DIR="" PREFIX="/etc/openvpn/eurephia" SQLITE3PREFIX="/etc/openvpn" + PLUGIN="" while [ ! -z "$1" ]; do case $1 in @@ -40,6 +48,14 @@ while [ ! -z "$1" ]; do PREFIX="$2"; shift; ;; + -X|--xslt-path) + PARAMS="${PARAMS} -DXSLTROOT:STRING=$2" + XSLTPATH="$2" + if [ "${EUREPHIADM_XSLT_SET}" = "0" ]; then + EUREPHIADM_XSLT="${XSLTPATH}/eurephiadm" + fi + shift + ;; -D|--debug) PARAMS="${PARAMS} -DDEBUG=ON" DEBUG_WARN=1 @@ -76,6 +92,12 @@ while [ ! -z "$1" ]; do --eurephiadm-fw) PARAMS="${PARAMS} -DFIREWALL=ON" ;; + --eurephiadm-xslt) + PARAMS="${PARAMS} -DEUREPHIADM_XSLT_PATH:STRING=$2" + EUREPHIADM_XSLT="$2" + EUREPHIADM_XSLT_SET=1 + shift + ;; *) echo "Unkown option: $1" exit 2 @@ -121,6 +143,12 @@ if [ $ec = 0 ]; then echo " SQLite3 database path: ${SQLITE3PREFIX}" fi + if [ ! -z "${ADMIN}" ]; then + echo "" + echo " XSLT base path: ${XSLTPATH}" + echo " eurephiadm XSLT path: ${EUREPHIADM_XSLT}" + fi + echo echo if [ "$DEBUG_WARN" = 1 ]; then diff --git a/eurephiadm/CMakeLists.txt b/eurephiadm/CMakeLists.txt index b6922cb..0e40aa9 100644 --- a/eurephiadm/CMakeLists.txt +++ b/eurephiadm/CMakeLists.txt @@ -32,6 +32,10 @@ IF(FIREWALL) ENDIF(FIREWALL) + +SET(EUREPHIADM_XSLT_PATH "${XSLTROOT}/eurephiadm/" CACHE STRING "Path for eurephiadm XSLT templates") +ADD_DEFINITIONS(-DEUREPHIADM_XSLT_PATH="${EUREPHIADM_XSLT_PATH}") + INCLUDE_DIRECTORIES(../common ../database) ADD_EXECUTABLE(eurephiadm ${efw_ipt_SRC}) TARGET_LINK_LIBRARIES(eurephiadm dl crypto ${EXTRA_LIBS}) diff --git a/eurephiadm/eurephiadm.c b/eurephiadm/eurephiadm.c index 11f3e84..a4c58dd 100644 --- a/eurephiadm/eurephiadm.c +++ b/eurephiadm/eurephiadm.c @@ -340,6 +340,11 @@ int main(int argc, char **argv) { return 3; } + // Check if we have XSLT path available, if not setup a default path + if( eGet_value(cfg, "eurephiadm_xslt_path") == NULL ) { + eAdd_value(ctx, cfg, "eurephiadm_xslt_path", EUREPHIADM_XSLT_PATH); + } + // Connect to the database dbparams = eGet_value(cfg, "database_params"); if( !eurephia_ConnectDB(ctx, dbparams) ) { |