ike: Add getter for the current message ID to task manager

This commit is contained in:
Tobias Brunner
2017-02-08 15:03:25 +01:00
parent e9d13476cb
commit 05a2be82c2
3 changed files with 23 additions and 1 deletions
+7
View 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, METHOD(task_manager_t, reset, void,
private_task_manager_t *this, uint32_t initiate, uint32_t respond) 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, .initiate = _initiate,
.retransmit = _retransmit, .retransmit = _retransmit,
.incr_mid = _incr_mid, .incr_mid = _incr_mid,
.get_mid = _get_mid,
.reset = _reset, .reset = _reset,
.adopt_tasks = _adopt_tasks, .adopt_tasks = _adopt_tasks,
.adopt_child_tasks = _adopt_child_tasks, .adopt_child_tasks = _adopt_child_tasks,
+7
View 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. * 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, .initiate = _initiate,
.retransmit = _retransmit, .retransmit = _retransmit,
.incr_mid = _incr_mid, .incr_mid = _incr_mid,
.get_mid = _get_mid,
.reset = _reset, .reset = _reset,
.adopt_tasks = _adopt_tasks, .adopt_tasks = _adopt_tasks,
.adopt_child_tasks = _adopt_child_tasks, .adopt_child_tasks = _adopt_child_tasks,
+9 -1
View File
@@ -239,6 +239,14 @@ struct task_manager_t {
*/ */
void (*incr_mid)(task_manager_t *this, bool initiate); 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. * 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 initiate message ID / DPD seq to initiate exchanges (send)
* @param respond message ID / DPD seq to respond to exchanges (expect) * @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. * Check if we are currently waiting for a reply.