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 757e687..a34f985 100644
--- a/src/openvpn/multi.c
+++ b/src/openvpn/multi.c
@@ -1635,15 +1635,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);

@@ -1700,6 +1691,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);
 }

 /*
@@ -1742,6 +1737,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.1


Reply via email to