This patch moves multi_client_connect_setenv into multi_client_connect_early_setup and makes sure that every client-connect handling function updates the virtual address selection.
Background: This unifies how the client-connect handling functions work. Signed-off-by: Fabian Knittel <fabian.knit...@lettink.de> --- src/openvpn/multi.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c index 8cc61d7..e9fbdc6 100644 --- a/src/openvpn/multi.c +++ b/src/openvpn/multi.c @@ -1646,15 +1646,6 @@ multi_connection_established (struct multi_context *m, struct multi_instance *mi multi_client_connect_source_ccd (m, mi, &option_types_found); - /* - * Select a virtual address from either --ifconfig-push in - * --client-config-dir file or --ifconfig-pool. - */ - multi_select_virtual_addr (m, mi); - - /* do --client-connect setenvs */ - multi_client_connect_setenv (m, mi); - multi_client_connect_call_plugin_v1 (m, mi, &option_types_found, &cc_succeeded, &cc_succeeded_count); @@ -1711,6 +1702,10 @@ multi_client_connect_early_setup (struct multi_context *m, /* reset pool handle to null */ mi->vaddr_handle = -1; + + /* do --client-connect setenvs */ + multi_select_virtual_addr (m, mi); + multi_client_connect_setenv (m, mi); } /* @@ -1753,6 +1748,12 @@ multi_client_connect_source_ccd (struct multi_context *m, option_types_found, mi->context.c2.es); + /* + * Select a virtual address from either --ifconfig-push in + * --client-config-dir file or --ifconfig-pool. + */ + multi_select_virtual_addr (m, mi); + multi_set_virtual_addr_env (m, mi); } gc_free (&gc); -- 2.1.4