diff --git a/network/openvpn/openvpn.conf b/network/openvpn/openvpn.conf index 2ea0454fb..fb519004a 100644 --- a/network/openvpn/openvpn.conf +++ b/network/openvpn/openvpn.conf @@ -2,7 +2,7 @@ # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../openvpn/openvpn.conf -# Copyright (C) 2007 The OpenSDE Project +# Copyright (C) 2007 - 2011 The OpenSDE Project # # More information can be found in the files COPYING and README. # @@ -12,9 +12,35 @@ # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- +plugin_libdir="${libdir}/openvpn" + +plugins_enabled='' + +build_plugin() { + local plugin=$1; shift + + echo "Building openvpn plugin $plugin..." + cd plugin/$plugin + + eval $MAKE $makeopt + cp *.so ${root}${plugin_libdir} + + cd ../.. +} + +build_plugins() { + install -d ${root}${plugin_libdir} + for plugin in $plugins_enabled; do + build_plugin $plugin + done +} + # allow passwords to be read from a file var_append confopt ' ' "--enable-password-save" +# where openvpn should search for plugins +var_append CFLAGS ' ' "-DPLUGIN_LIBDIR${plugin_libdir}" + # iproute2 support pkginstalled iproute2 && var_append confopt ' ' "--enable-iproute2" @@ -22,3 +48,12 @@ if ! pkginstalled lzo ; then var_append confopt ' ' "--disable-lzo" echo_warning "LZO Compression Support disabled! (lzo package not installed)" fi + +# pam authentication plugin +pkginstalled -f pam && var_append plugins_enabled ' ' "auth-pam" + +# build plugins when $plugins_enabled is not empty +if [ ! -z "$plugins_enabled" ]; then + echo_warning "Enabling OpenVPN plugins: $plugins_enabled" + hook_add postmake 3 build_plugins +fi