ikev2: Fix reauthentication if peer assigns a different virtual IP
authorTobias Brunner <tobias@strongswan.org>
Tue, 15 Apr 2014 14:00:47 +0000 (16:00 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 15 Apr 2014 14:19:06 +0000 (16:19 +0200)
commit4469e3d0507ad869488d3e7524a061e18fb3ee21
tree8295cf515c2be9013bc131291c3fba0de8bc53b1
parent37cb91d737808c7fa710fb276d2d3136155829db
ikev2: Fix reauthentication if peer assigns a different virtual IP

Before this change a reqid set on the create_child_t task was used as
indicator of the CHILD_SA being rekeyed.  Only if that was not the case
would the local traffic selector be changed to 0.0.0.0/0|::/0 (as we
don't know which virtual IP the gateway will eventually assign).
On the other hand, in case of a rekeying the VIP is expected to remain
the same, so the local TS would simply equal the VIP.

Since c949a4d5016e33c5 reauthenticated CHILD_SAs also have the reqid
set.  Which meant that the local TS would contain the previously
assigned VIP, basically rendering the gateway unable to assign a
different VIP to the client as the resulting TS would not match
the client's proposal anymore.

Fixes #553.
src/libcharon/sa/ikev2/tasks/child_create.c