aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/task_manager_v1.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-11-24 16:32:14 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:31:07 +0100
commita2f8fc97112b63966566a71bdcf20aedd1f413c2 (patch)
treec8351ee2fdaf6391f1da80c30a47aae7ddc69269 /src/libcharon/sa/task_manager_v1.c
parentabf97847863e59fb9fab95a68c4e1e242975aa45 (diff)
downloadstrongswan-a2f8fc97112b63966566a71bdcf20aedd1f413c2.tar.bz2
strongswan-a2f8fc97112b63966566a71bdcf20aedd1f413c2.tar.xz
Use a dedicated IKEv1 vendor ID task to fix using IKEv2 payloads in IKEv1
Diffstat (limited to 'src/libcharon/sa/task_manager_v1.c')
-rw-r--r--src/libcharon/sa/task_manager_v1.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libcharon/sa/task_manager_v1.c b/src/libcharon/sa/task_manager_v1.c
index 2b22bcdb5..eaab362e6 100644
--- a/src/libcharon/sa/task_manager_v1.c
+++ b/src/libcharon/sa/task_manager_v1.c
@@ -23,6 +23,7 @@
#include <sa/tasks/main_mode.h>
#include <sa/tasks/quick_mode.h>
#include <sa/tasks/xauth_request.h>
+#include <sa/tasks/ike_vendor_v1.h>
#include <processing/jobs/retransmit_job.h>
typedef struct exchange_t exchange_t;
@@ -285,6 +286,7 @@ METHOD(task_manager_t, initiate, status_t,
switch (this->ike_sa->get_state(this->ike_sa))
{
case IKE_CREATED:
+ activate_task(this, TASK_VENDOR_V1);
if (activate_task(this, TASK_MAIN_MODE))
{
exchange = ID_PROT;
@@ -533,7 +535,7 @@ static status_t process_request(private_task_manager_t *this,
switch (message->get_exchange_type(message))
{
case ID_PROT:
- task = (task_t *)ike_vendor_create(this->ike_sa, FALSE);
+ task = (task_t *)ike_vendor_v1_create(this->ike_sa, FALSE);
this->passive_tasks->insert_last(this->passive_tasks, task);
task = (task_t *)main_mode_create(this->ike_sa, FALSE);
this->passive_tasks->insert_last(this->passive_tasks, task);