0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00

Explain structver usage in sample defer plugin.

sample-plugins/defer/simple.c uses OPENVPN_PLUGINv3_STRUCTVER settings
that may not be obvious to a new author.  Add a comment to reduce
possible confusion.
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <1612163389-16421-1-git-send-email-gcox@mozilla.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21540.html

Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Greg Cox 2021-02-01 07:09:49 +00:00 committed by Gert Doering
parent 413580b6a4
commit fdfbd4441c

View File

@ -69,12 +69,18 @@ static plugin_log_t plugin_log = NULL;
* Constants indicating minimum API and struct versions by the functions * Constants indicating minimum API and struct versions by the functions
* in this plugin. Consult openvpn-plugin.h, look for: * in this plugin. Consult openvpn-plugin.h, look for:
* OPENVPN_PLUGIN_VERSION and OPENVPN_PLUGINv3_STRUCTVER * OPENVPN_PLUGIN_VERSION and OPENVPN_PLUGINv3_STRUCTVER
*
* Strictly speaking, this sample code only requires plugin_log, a feature
* of structver version 1. However, '1' lines up with ancient versions
* of openvpn that are past end-of-support. As such, we are requiring
* structver '5' here to indicate a desire for modern openvpn, rather
* than a need for any particular feature found in structver beyond '1'.
*/ */
#define OPENVPN_PLUGIN_VERSION_MIN 3 #define OPENVPN_PLUGIN_VERSION_MIN 3
#define OPENVPN_PLUGIN_STRUCTVER_MIN 5 #define OPENVPN_PLUGIN_STRUCTVER_MIN 5
/* /*
* Our context, where we keep our state. * Our context, where we keep our state.
*/ */
struct plugin_context { struct plugin_context {
@ -160,7 +166,6 @@ openvpn_plugin_open_v3(const int v3structver,
const char **envp = args->envp; /* environment variables */ const char **envp = args->envp; /* environment variables */
struct plugin_context *context; struct plugin_context *context;
/* Check API compatibility -- struct version 5 or higher needed */
if (v3structver < OPENVPN_PLUGIN_STRUCTVER_MIN) if (v3structver < OPENVPN_PLUGIN_STRUCTVER_MIN)
{ {
fprintf(stderr, "%s: this plugin is incompatible with the running version of OpenVPN\n", MODULE); fprintf(stderr, "%s: this plugin is incompatible with the running version of OpenVPN\n", MODULE);
@ -442,7 +447,6 @@ openvpn_plugin_func_v3(const int v3structver,
struct openvpn_plugin_args_func_in const *args, struct openvpn_plugin_args_func_in const *args,
struct openvpn_plugin_args_func_return *ret) struct openvpn_plugin_args_func_return *ret)
{ {
/* Check API compatibility -- struct version 5 or higher needed */
if (v3structver < OPENVPN_PLUGIN_STRUCTVER_MIN) if (v3structver < OPENVPN_PLUGIN_STRUCTVER_MIN)
{ {
fprintf(stderr, "%s: this plugin is incompatible with the running version of OpenVPN\n", MODULE); fprintf(stderr, "%s: this plugin is incompatible with the running version of OpenVPN\n", MODULE);