If multi_client_connect_call_plugin_v1() goes to "deferred mode", *and* there is no OPENVPN_CLIENT_CONNECT_DEFER handler, we would read the "client specific options" file after every (succeeded-because-not-present) call to plugin_call().
Move this to "after we have checked the deferred-cc file, and we know for sure that we have CC_RET_SUCCEEDED". Signed-off-by: Gert Doering <g...@greenie.muc.de> --- src/openvpn/multi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c index 9bda38b0..cfb34720 100644 --- a/src/openvpn/multi.c +++ b/src/openvpn/multi.c @@ -2065,8 +2065,6 @@ multi_client_connect_call_plugin_v1(struct multi_context *m, &argv, NULL, mi->context.c2.es); if (plug_ret == OPENVPN_PLUGIN_FUNC_SUCCESS) { - multi_client_connect_post(m, mi, ccs->config_file, - option_types_found); ret = CC_RET_SUCCEEDED; } else if (plug_ret == OPENVPN_PLUGIN_FUNC_DEFERRED) @@ -2100,6 +2098,13 @@ multi_client_connect_call_plugin_v1(struct multi_context *m, { ret = CC_RET_DEFERRED; } + + /* if we still think we have succeeded, do postprocessing */ + if (ret == CC_RET_SUCCEEDED) + { + multi_client_connect_post(m, mi, ccs->config_file, + option_types_found); + } cleanup: argv_free(&argv); -- 2.26.2 _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel