aboutsummaryrefslogtreecommitdiff
path: root/ssl.c
diff options
context:
space:
mode:
authorjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>2005-12-28 06:58:19 +0000
committerjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>2005-12-28 06:58:19 +0000
commitd92819fa1adc5d2ee8f1c2bbd0d32829635eacf1 (patch)
tree63e57ec0746a84cd2cca41b95b8377cbddbb7732 /ssl.c
parentMinor ChangeLog edit. (diff)
downloadopenvpn-d92819fa1adc5d2ee8f1c2bbd0d32829635eacf1.tar.xz
Added OPENVPN_PLUGIN_TLS_FINAL plugin callback.
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@862 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'ssl.c')
-rw-r--r--ssl.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/ssl.c b/ssl.c
index 7be2394..5f8b5d1 100644
--- a/ssl.c
+++ b/ssl.c
@@ -3087,7 +3087,17 @@ key_method_2_read (struct buffer *buf, struct tls_multi *multi, struct tls_sessi
buf_clear (buf);
/*
- * generate tunnel keys if client
+ * Call OPENVPN_PLUGIN_TLS_FINAL plugin if defined, for final
+ * veto opportunity over authentication decision.
+ */
+ if (ks->authenticated && plugin_defined (session->opt->plugins, OPENVPN_PLUGIN_TLS_FINAL))
+ {
+ if (plugin_call (session->opt->plugins, OPENVPN_PLUGIN_TLS_FINAL, NULL, NULL, session->opt->es))
+ ks->authenticated = false;
+ }
+
+ /*
+ * Generate tunnel keys if client
*/
if (!session->opt->server)
{