aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libcharon/sa/ikev1/tasks/aggressive_mode.c10
-rw-r--r--src/libcharon/sa/ikev1/tasks/main_mode.c10
2 files changed, 16 insertions, 4 deletions
diff --git a/src/libcharon/sa/ikev1/tasks/aggressive_mode.c b/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
index d6ed9aa84..ec3154846 100644
--- a/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
+++ b/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
@@ -478,7 +478,7 @@ METHOD(task_t, process_r, status_t,
case AUTH_XAUTH_RESP_RSA:
case AUTH_HYBRID_RESP_RSA:
/* wait for XAUTH request */
- return SUCCESS;
+ break;
default:
if (charon->ike_sa_manager->check_uniqueness(
charon->ike_sa_manager, this->ike_sa, FALSE))
@@ -494,8 +494,14 @@ METHOD(task_t, process_r, status_t,
lib->processor->queue_job(lib->processor, (job_t*)
adopt_children_job_create(
this->ike_sa->get_id(this->ike_sa)));
- return SUCCESS;
+ break;
+ }
+ 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));
}
+ return SUCCESS;
}
default:
return FAILED;
diff --git a/src/libcharon/sa/ikev1/tasks/main_mode.c b/src/libcharon/sa/ikev1/tasks/main_mode.c
index a65b3a68b..fc487e1e9 100644
--- a/src/libcharon/sa/ikev1/tasks/main_mode.c
+++ b/src/libcharon/sa/ikev1/tasks/main_mode.c
@@ -506,7 +506,7 @@ METHOD(task_t, build_r, status_t,
case AUTH_XAUTH_RESP_RSA:
case AUTH_HYBRID_RESP_RSA:
/* wait for XAUTH request */
- return SUCCESS;
+ break;
default:
if (charon->ike_sa_manager->check_uniqueness(
charon->ike_sa_manager, this->ike_sa, FALSE))
@@ -522,8 +522,14 @@ METHOD(task_t, build_r, status_t,
lib->processor->queue_job(lib->processor, (job_t*)
adopt_children_job_create(
this->ike_sa->get_id(this->ike_sa)));
- return SUCCESS;
+ break;
+ }
+ 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));
}
+ return SUCCESS;
}
default:
return FAILED;