]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
ike: Add getter for the current message ID to task manager
authorTobias Brunner <tobias@strongswan.org>
Fri, 16 Sep 2016 14:18:32 +0000 (16:18 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 8 Feb 2017 14:03:25 +0000 (15:03 +0100)
src/libcharon/sa/ikev1/task_manager_v1.c
src/libcharon/sa/ikev2/task_manager_v2.c
src/libcharon/sa/task_manager.h

index ba393196df3b256c1f315a417afab0eae8b1f099..7c8eebabab9ab6ef44fae8f32dbbe1c5951dabf4 100644 (file)
@@ -1896,6 +1896,12 @@ METHOD(task_manager_t, incr_mid, void,
 {
 }
 
+METHOD(task_manager_t, get_mid, uint32_t,
+       private_task_manager_t *this, bool initiate)
+{
+       return initiate ? this->initiating.mid : this->responding.mid;
+}
+
 METHOD(task_manager_t, reset, void,
        private_task_manager_t *this, uint32_t initiate, uint32_t respond)
 {
@@ -1999,6 +2005,7 @@ task_manager_v1_t *task_manager_v1_create(ike_sa_t *ike_sa)
                                .initiate = _initiate,
                                .retransmit = _retransmit,
                                .incr_mid = _incr_mid,
+                               .get_mid = _get_mid,
                                .reset = _reset,
                                .adopt_tasks = _adopt_tasks,
                                .adopt_child_tasks = _adopt_child_tasks,
index 60a262ffc8cea52eddd34e72d3d2b5cb2a88dab5..c101ebf2ba61382edbbbcaf99e44ee0dbadf19f6 100644 (file)
@@ -1200,6 +1200,12 @@ METHOD(task_manager_t, incr_mid, void,
        }
 }
 
+METHOD(task_manager_t, get_mid, uint32_t,
+       private_task_manager_t *this, bool initiate)
+{
+       return initiate ? this->initiating.mid : this->responding.mid;
+}
+
 /**
  * Handle the given IKE fragment, if it is one.
  *
@@ -2046,6 +2052,7 @@ task_manager_v2_t *task_manager_v2_create(ike_sa_t *ike_sa)
                                .initiate = _initiate,
                                .retransmit = _retransmit,
                                .incr_mid = _incr_mid,
+                               .get_mid = _get_mid,
                                .reset = _reset,
                                .adopt_tasks = _adopt_tasks,
                                .adopt_child_tasks = _adopt_child_tasks,
index 86077d373a52f6153c231ef04688c20bd854cab0..7e926229131491eaa776f852872d1a1337e7577d 100644 (file)
@@ -239,6 +239,14 @@ struct task_manager_t {
         */
        void (*incr_mid)(task_manager_t *this, bool initiate);
 
+       /**
+        * Get the current message ID counter, in- or outbound.
+        *
+        * @param initiate              TRUE to get the initiating ID
+        * @return                              current message ID
+        */
+       uint32_t (*get_mid)(task_manager_t *this, bool initiate);
+
        /**
         * Reset message ID counters of the task manager.
         *
@@ -253,7 +261,7 @@ struct task_manager_t {
         * @param initiate              message ID / DPD seq to initiate exchanges (send)
         * @param respond               message ID / DPD seq to respond to exchanges (expect)
         */
-       void (*reset) (task_manager_t *this, uint32_t initiate, uint32_t respond);
+       void (*reset)(task_manager_t *this, uint32_t initiate, uint32_t respond);
 
        /**
         * Check if we are currently waiting for a reply.