summaryrefslogtreecommitdiffstats
path: root/src/openvpn/ssl_backend.h
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2013-07-03 21:17:10 +0200
committerGert Doering <gert@greenie.muc.de>2013-07-03 21:22:12 +0200
commit570da542877a1f42ed6549a6ca3f54df9ec53c1f (patch)
tree6eabb7c11d52f3fe2b0f9bdcd1ae4936853cd87a /src/openvpn/ssl_backend.h
parent14566e4374229c39db96d60a88ffecc17273efa3 (diff)
downloadopenvpn-570da542877a1f42ed6549a6ca3f54df9ec53c1f.tar.gz
openvpn-570da542877a1f42ed6549a6ca3f54df9ec53c1f.tar.xz
openvpn-570da542877a1f42ed6549a6ca3f54df9ec53c1f.zip
plugin: Extend the plug-in v3 API to identify the SSL implementation used
OpenVPN would segfault unexpectedly if it would be compiled against PolarSSL and the plug-in would expect OpenSSL, or vice-versa. This segfault would not appear before the plug-in would try to access functions which would be available if the plug-in and OpenVPN uses the same SSL implementation. This patch adds a member to the plug-in initialisation function, which identifies the SSL implementation. The log_v3 plug-in is updated accordingly + a simple fix to make it buildable again using the ./build script. A minor documentation error in the openvpn-plugin.h was also corrected, where it mentioned OPENVPN_PLUGIN_VERSION instead of OPENVPN_PLUGINv3_STRUCTVER. v2 - add const ovpnSSLAPI ssl_api at the end of struct openvpn_plugin_args_open_in and not in the "middle" v3 - fix bug in plug-in init, as the SSLAPI was located wrong in the args struct sent to the openvpn_plugin_open_v3() function. v4 - Ensure SSLAPI got a sane/known value if SSL is disabled or unknown Signed-off-by: David Sommerseth <davids@redhat.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1372879030-10576-1-git-send-email-dazo@users.sourceforge.net> URL: http://article.gmane.org/gmane.network.openvpn.devel/7754 Signed-off-by: Gert Doering <gert@greenie.muc.de> (cherry picked from commit 587df08abda3c8f1f85ccdba4d8b82a736c11e2d)
Diffstat (limited to 'src/openvpn/ssl_backend.h')
-rw-r--r--src/openvpn/ssl_backend.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/openvpn/ssl_backend.h b/src/openvpn/ssl_backend.h
index 72235ae..b1dce22 100644
--- a/src/openvpn/ssl_backend.h
+++ b/src/openvpn/ssl_backend.h
@@ -36,10 +36,17 @@
#ifdef ENABLE_CRYPTO_OPENSSL
#include "ssl_openssl.h"
#include "ssl_verify_openssl.h"
+#define SSLAPI SSLAPI_OPENSSL
#endif
#ifdef ENABLE_CRYPTO_POLARSSL
#include "ssl_polarssl.h"
#include "ssl_verify_polarssl.h"
+#define SSLAPI SSLAPI_POLARSSL
+#endif
+
+/* Ensure that SSLAPI got a sane value if SSL is disabled or unknown */
+#ifndef SSLAPI
+#define SSLAPI SSLAPI_NONE
#endif
/**