mirror of
https://github.com/OpenVPN/openvpn.git
synced 2026-05-28 04:03:29 -04:00
Provide OpenVPN runtime version information to plug-ins
Also updated the log_v3 sample-plugin to demonstrate how this works. $ openvpn --plugin log_v3.so --dev tun Fri Jul 10 15:17:28 2015 OpenVPN 2.3_git [git:dev/plugin-version/f05d8623a29078bf+]..... ...more.openvpn.logging... log_v3: OpenVPN 2.3_git (Major: 2, Minor: 3, Patch: git:dev/plugin-version/f05d8623a29078bf+) ...more.openvpn.logging... $ Signed-off-by: David Sommerseth <davids@redhat.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1436534548-21507-3-git-send-email-openvpn.list@topphemmelig.net> URL: http://article.gmane.org/gmane.network.openvpn.devel/9904 Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
9de35d4633
commit
6a40276c75
4 changed files with 37 additions and 2 deletions
|
|
@ -33,6 +33,9 @@ AC_DEFINE([OPENVPN_VERSION_RESOURCE], [PRODUCT_VERSION_RESOURCE], [Version in wi
|
|||
AC_SUBST([OPENVPN_VERSION_MAJOR], [PRODUCT_VERSION_MAJOR], [OpenVPN major version])
|
||||
AC_SUBST([OPENVPN_VERSION_MINOR], [PRODUCT_VERSION_MINOR], [OpenVPN minor version])
|
||||
AC_SUBST([OPENVPN_VERSION_PATCH], [PRODUCT_VERSION_PATCH], [OpenVPN patch level - may be a string or integer])
|
||||
AC_DEFINE([OPENVPN_VERSION_MAJOR], [PRODUCT_VERSION_MAJOR], [OpenVPN major version - integer])
|
||||
AC_DEFINE([OPENVPN_VERSION_MINOR], [PRODUCT_VERSION_MINOR], [OpenVPN minor version - integer])
|
||||
AC_DEFINE([OPENVPN_VERSION_PATCH], ["PRODUCT_VERSION_PATCH"], [OpenVPN patch level - may be a string or integer])
|
||||
|
||||
AC_CONFIG_AUX_DIR([.])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
|
|
|||
|
|
@ -215,8 +215,11 @@ struct openvpn_plugin_string_list
|
|||
* which identifies the SSL implementation OpenVPN is compiled
|
||||
* against.
|
||||
*
|
||||
* 3 Added ovpn_version, ovpn_version_major, ovpn_version_minor
|
||||
* and ovpn_version_patch to provide the runtime version of
|
||||
* OpenVPN to plug-ins.
|
||||
*/
|
||||
#define OPENVPN_PLUGINv3_STRUCTVER 2
|
||||
#define OPENVPN_PLUGINv3_STRUCTVER 3
|
||||
|
||||
/**
|
||||
* Definitions needed for the plug-in callback functions.
|
||||
|
|
@ -311,6 +314,10 @@ struct openvpn_plugin_args_open_in
|
|||
const char ** const envp;
|
||||
struct openvpn_plugin_callbacks *callbacks;
|
||||
const ovpnSSLAPI ssl_api;
|
||||
const char *ovpn_version;
|
||||
const unsigned int ovpn_version_major;
|
||||
const unsigned int ovpn_version_minor;
|
||||
const char * const ovpn_version_patch;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ openvpn_plugin_open_v3 (const int v3structver,
|
|||
|
||||
/* Check that we are API compatible */
|
||||
if( v3structver != OPENVPN_PLUGINv3_STRUCTVER ) {
|
||||
printf("log_v3: ** ERROR ** Incompatible plug-in interface between this plug-in and OpenVPN\n");
|
||||
return OPENVPN_PLUGIN_FUNC_ERROR;
|
||||
}
|
||||
|
||||
|
|
@ -90,6 +91,11 @@ openvpn_plugin_open_v3 (const int v3structver,
|
|||
return OPENVPN_PLUGIN_FUNC_ERROR;
|
||||
}
|
||||
|
||||
/* Print some version information about the OpenVPN process using this plug-in */
|
||||
printf("log_v3: OpenVPN %s (Major: %i, Minor: %i, Patch: %s)\n",
|
||||
args->ovpn_version, args->ovpn_version_major,
|
||||
args->ovpn_version_minor, args->ovpn_version_patch);
|
||||
|
||||
/* Which callbacks to intercept. */
|
||||
ret->type_mask =
|
||||
OPENVPN_PLUGIN_MASK (OPENVPN_PLUGIN_UP) |
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
#elif defined(_MSC_VER)
|
||||
#include "config-msvc.h"
|
||||
#endif
|
||||
#ifdef HAVE_CONFIG_VERSION_H
|
||||
#include "config-version.h"
|
||||
#endif
|
||||
|
||||
#include "syshead.h"
|
||||
|
||||
|
|
@ -347,6 +350,17 @@ static struct openvpn_plugin_callbacks callbacks = {
|
|||
plugin_vlog
|
||||
};
|
||||
|
||||
|
||||
/* Provide a wrapper macro for a version patch level string to plug-ins.
|
||||
* This is located here purely to not make the code too messy with #ifndef
|
||||
* inside a struct declaration
|
||||
*/
|
||||
#ifndef CONFIGURE_GIT_REVISION
|
||||
# define _OPENVPN_PATCH_LEVEL OPENVPN_VERSION_PATCH
|
||||
#else
|
||||
# define _OPENVPN_PATCH_LEVEL "git:" CONFIGURE_GIT_REVISION CONFIGURE_GIT_FLAGS
|
||||
#endif
|
||||
|
||||
static void
|
||||
plugin_open_item (struct plugin *p,
|
||||
const struct plugin_option *o,
|
||||
|
|
@ -375,7 +389,12 @@ plugin_open_item (struct plugin *p,
|
|||
(const char ** const) o->argv,
|
||||
(const char ** const) envp,
|
||||
&callbacks,
|
||||
SSLAPI };
|
||||
SSLAPI,
|
||||
PACKAGE_VERSION,
|
||||
OPENVPN_VERSION_MAJOR,
|
||||
OPENVPN_VERSION_MINOR,
|
||||
_OPENVPN_PATCH_LEVEL
|
||||
};
|
||||
struct openvpn_plugin_args_open_return retargs;
|
||||
|
||||
CLEAR(retargs);
|
||||
|
|
|
|||
Loading…
Reference in a new issue