mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 20:03:13 +02:00
94cebf8261
This is a new "samples" plugin which does not do many useful things,
besides
- show how a plugin is programmed
- how the various messages get dispatched
- how to pass back information from a client-connect/v2 plugin
- how to do async-cc plugins [not yet implemented]
the operation of the plugin is controlled by UV_WANT_* environment
variables
controlled by the client ("--setenv UV_WANT_CC_FAIL 1 --push-peer-info"),
to "fail CLIENT_CONNECT" or "use async-cc for CLIENT_CONNECT_V2" or
"send 'disable' back from ...") - which is useful for automated testing
of server success/defer/fail code paths for the CLIENT_CONNECT_* functions.
See samples/sample-plugins/client-connect/README for details how to do
this.
v2:
- implement async / deferred operation both for CLIENT_CONNECT and
CLIENT_CONNECT_V2 plugin calls
- implement returning openvpn-controlled (setenv) config snippets
(so the client side can verify in automated testing that the plugin
operated correctly, without hard-coding something in the plugin code)
v3:
- remove -Wno-unused-variable from Makefile
- remove unused "char ** argv" (commented out, but kept as reference)
v4:
- upgrade to use the build infra brought by commit 0b5141d8f9
- remove local Makefile
- include "config.h" to get what is needed to get rid of the strdup()
warning
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <20200917161909.11573-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21047.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
44 lines
1.7 KiB
Plaintext
44 lines
1.7 KiB
Plaintext
OpenVPN plug-in examples.
|
|
|
|
Examples provided:
|
|
|
|
* authentication and logging
|
|
simple/simple.c -- using the --auth-user-pass-verify callback, verify
|
|
that the username/password is "foo"/"bar".
|
|
defer/simple.c -- using the --auth-user-pass-verify callback,
|
|
test deferred authentication.
|
|
log/log.c -- Extended variant of simple/simple.c which adds more
|
|
logging of what is happening inside the plug-in
|
|
log/log_v3.c -- A variant of log/log.c, which makes use of the
|
|
OpenVPN plug-in v3 API. This will also log even more
|
|
information related to certificates in use.
|
|
|
|
* client-connect (and logging)
|
|
client-connect/sample-client-connect -- demonstrate how to use the
|
|
CLIENT_CONNECT and CLIENT_CONNECT_V2 hooks to achieve
|
|
"per client configuration / logging / ..." actions,
|
|
both in synchronous and async/deferred mode
|
|
|
|
* cryptography related
|
|
simple/base64.c -- Example using the OpenVPN exported base64 encode/decode
|
|
functions
|
|
keying-material-exporter-demo/keyingmaterialexporter.c
|
|
-- Example based on TLS Keying Material Exporters over HTTP [RFC-5705]
|
|
(openvpn/doc/keying-material-exporter.txt). For more details, see
|
|
keying-material-exporter-demo/README
|
|
|
|
|
|
To build on *BSD/Linux platforms (requires GNU Make):
|
|
|
|
gmake (builds a default set of plug-ins)
|
|
gmake simple/simple.so
|
|
|
|
To build on Windows platform (MinGW):
|
|
|
|
cd simple; ./winbuild simple.so
|
|
|
|
To use in OpenVPN, add to config file:
|
|
|
|
plugin simple.so (Linux/BSD/etc.)
|
|
plugin simple.dll
|