aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/sa/task_manager.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2007-09-24 12:15:25 +0000
committerMartin Willi <martin@strongswan.org>2007-09-24 12:15:25 +0000
commitd9d69536b0ecdb298cc40acf81d42c1a09e69a05 (patch)
treebaef0652a1f32ba9c254967d54ff0c7bf62914aa /src/charon/sa/task_manager.c
parente5f1ead26f4b03167e9fe6dff96b3b270298c653 (diff)
downloadstrongswan-d9d69536b0ecdb298cc40acf81d42c1a09e69a05.tar.bz2
strongswan-d9d69536b0ecdb298cc40acf81d42c1a09e69a05.tar.xz
improved MOBIKE roaming between interfaces
Diffstat (limited to 'src/charon/sa/task_manager.c')
-rw-r--r--src/charon/sa/task_manager.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/charon/sa/task_manager.c b/src/charon/sa/task_manager.c
index a44f88b15..30e870422 100644
--- a/src/charon/sa/task_manager.c
+++ b/src/charon/sa/task_manager.c
@@ -809,10 +809,17 @@ static status_t process_message(private_task_manager_t *this, message_t *msg)
}
else if ((mid == this->responding.mid - 1) && this->responding.packet)
{
+ packet_t *clone;
+ host_t *me, *other;
+
DBG1(DBG_IKE, "received retransmit of request with ID %d, "
"retransmitting response", mid);
- charon->sender->send(charon->sender,
- this->responding.packet->clone(this->responding.packet));
+ clone = this->responding.packet->clone(this->responding.packet);
+ me = msg->get_destination(msg);
+ other = msg->get_source(msg);
+ clone->set_source(clone, me->clone(me));
+ clone->set_destination(clone, other->clone(other));
+ charon->sender->send(charon->sender, clone);
}
else
{