]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
ike-config: Support IKE_AUX exchange between IKE_SA_INIT and IKE_AUTH
authorTobias Brunner <tobias@strongswan.org>
Mon, 25 Jun 2018 10:32:27 +0000 (12:32 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 14 May 2019 08:44:19 +0000 (10:44 +0200)
This changes the MID of the first IKE_AUTH message.

src/libcharon/sa/ikev2/tasks/ike_config.c

index 3fb4b94461a0b1f70ff545a33dc6e9ce7a0dbe3e..21c3eb85d71acfe365692aac51fb99e07a1d756a 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2012-2018 Tobias Brunner
  * Copyright (C) 2007 Martin Willi
  * Copyright (C) 2006-2007 Fabian Hartmann, Noah Heusser
  * HSR Hochschule fuer Technik Rapperswil
@@ -239,8 +240,8 @@ static void process_payloads(private_ike_config_t *this, message_t *message)
 METHOD(task_t, build_i, status_t,
        private_ike_config_t *this, message_t *message)
 {
-       if (message->get_message_id(message) == 1)
-       {       /* in first IKE_AUTH only */
+       if (message->get_exchange_type(message) == IKE_AUTH)
+       {
                cp_payload_t *cp = NULL;
                enumerator_t *enumerator;
                attribute_handler_t *handler;
@@ -250,6 +251,9 @@ METHOD(task_t, build_i, status_t,
                linked_list_t *vips;
                host_t *host;
 
+               /* in first IKE_AUTH only */
+               this->public.task.build = (void*)return_need_more;
+
                vips = linked_list_create();
 
                /* reuse virtual IP if we already have one */
@@ -328,9 +332,11 @@ METHOD(task_t, build_i, status_t,
 METHOD(task_t, process_r, status_t,
        private_ike_config_t *this, message_t *message)
 {
-       if (message->get_message_id(message) == 1)
-       {       /* in first IKE_AUTH only */
+       if (message->get_exchange_type(message) == IKE_AUTH)
+       {
                process_payloads(this, message);
+               /* in first IKE_AUTH only */
+               this->public.task.process = (void*)return_need_more;
        }
        return NEED_MORE;
 }