Queue Mode Config tasks when required
[strongswan.git] / src / libcharon / sa / tasks / main_mode.c
index d31458b..cea0631 100755 (executable)
@@ -29,6 +29,7 @@
 #include <encoding/payloads/id_payload.h>
 #include <encoding/payloads/hash_payload.h>
 #include <sa/tasks/xauth.h>
+#include <sa/tasks/mode_config.h>
 
 typedef struct private_main_mode_t private_main_mode_t;
 
@@ -824,6 +825,12 @@ METHOD(task_t, build_r, status_t,
                                return FAILED;
                        }
 
+                       if (this->peer_cfg->get_virtual_ip(this->peer_cfg))
+                       {
+                               this->ike_sa->queue_task(this->ike_sa,
+                                                       (task_t*)mode_config_create(this->ike_sa, TRUE));
+                       }
+
                        switch (this->auth_method)
                        {
                                case AUTH_XAUTH_INIT_PSK: