aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-11-02 10:44:11 +0100
committerMartin Willi <martin@strongswan.org>2009-11-12 13:37:06 +0000
commit20d144e72fd96569c59434e81f9378b4ad2b353f (patch)
treefb6c51522aee07bb3b3863773c4e113cdd26fd31 /src
parentee3d4ef8016c151a0e19dc91bd0445f4aac1e2ef (diff)
downloadstrongswan-20d144e72fd96569c59434e81f9378b4ad2b353f.tar.bz2
strongswan-20d144e72fd96569c59434e81f9378b4ad2b353f.tar.xz
Invoke message hook before generation, allowing plugins to mangle it
Diffstat (limited to 'src')
-rw-r--r--src/charon/sa/task_manager.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/charon/sa/task_manager.c b/src/charon/sa/task_manager.c
index d12b291cd..3fac12552 100644
--- a/src/charon/sa/task_manager.c
+++ b/src/charon/sa/task_manager.c
@@ -454,6 +454,7 @@ static status_t build_request(private_task_manager_t *this)
/* update exchange type if a task changed it */
this->initiating.type = message->get_exchange_type(message);
+ charon->bus->message(charon->bus, message, FALSE);
status = this->ike_sa->generate_message(this->ike_sa, message,
&this->initiating.packet);
if (status != SUCCESS)
@@ -465,8 +466,6 @@ static status_t build_request(private_task_manager_t *this)
charon->bus->ike_updown(charon->bus, this->ike_sa, FALSE);
return DESTROY_ME;
}
-
- charon->bus->message(charon->bus, message, FALSE);
message->destroy(message);
return retransmit(this, this->initiating.mid);
@@ -644,9 +643,9 @@ static status_t build_response(private_task_manager_t *this, message_t *request)
/* message complete, send it */
DESTROY_IF(this->responding.packet);
this->responding.packet = NULL;
+ charon->bus->message(charon->bus, message, FALSE);
status = this->ike_sa->generate_message(this->ike_sa, message,
&this->responding.packet);
- charon->bus->message(charon->bus, message, FALSE);
message->destroy(message);
if (status != SUCCESS)
{