aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-11-02 15:49:09 +0100
committerMartin Willi <martin@revosec.ch>2011-01-05 16:45:41 +0100
commit89fda1abb575be3f628baaf9639c50741c725516 (patch)
tree66c41a9204bf2a5ff632aa5c64acb35d545401fd
parentf2986524d9e7df350a090c31b029a8bb6a3ff1c0 (diff)
downloadstrongswan-89fda1abb575be3f628baaf9639c50741c725516.tar.bz2
strongswan-89fda1abb575be3f628baaf9639c50741c725516.tar.xz
Moved message()-hook invocation to generate_message(), catch pre-generated IKE_SA_INITs, too
-rw-r--r--src/libcharon/sa/ike_sa.c1
-rw-r--r--src/libcharon/sa/task_manager.c2
2 files changed, 1 insertions, 2 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c
index 8d499cce4..04e3d9ebd 100644
--- a/src/libcharon/sa/ike_sa.c
+++ b/src/libcharon/sa/ike_sa.c
@@ -892,6 +892,7 @@ METHOD(ike_sa_t, generate_message, status_t,
{
this->stats[STAT_OUTBOUND] = time_monotonic(NULL);
message->set_ike_sa_id(message, this->ike_sa_id);
+ charon->bus->message(charon->bus, message, FALSE);
return message->generate(message,
this->keymat->get_aead(this->keymat, FALSE), packet);
}
diff --git a/src/libcharon/sa/task_manager.c b/src/libcharon/sa/task_manager.c
index 18703ce36..9b403a741 100644
--- a/src/libcharon/sa/task_manager.c
+++ b/src/libcharon/sa/task_manager.c
@@ -465,7 +465,6 @@ METHOD(task_manager_t, initiate, status_t,
/* 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)
@@ -654,7 +653,6 @@ 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);
message->destroy(message);