summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt9
-rwxr-xr-xconfigure28
-rw-r--r--eurephiadm/CMakeLists.txt4
-rw-r--r--eurephiadm/eurephiadm.c5
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)
diff --git a/configure b/configure
index 744a756..b54774c 100755
--- a/configure
+++ b/configure
@@ -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) ) {