diff options
-rw-r--r-- | src/libcharon/plugins/ha/ha_tunnel.c | 2 | ||||
-rw-r--r-- | src/libcharon/plugins/stroke/stroke_control.c | 2 | ||||
-rw-r--r-- | src/libcharon/processing/jobs/start_action_job.c | 2 | ||||
-rw-r--r-- | src/libcharon/sa/ike_sa.c | 3 | ||||
-rw-r--r-- | src/libcharon/sa/ikev2/tasks/child_delete.c | 3 | ||||
-rw-r--r-- | src/libcharon/sa/trap_manager.c | 4 | ||||
-rw-r--r-- | src/libcharon/sa/trap_manager.h | 3 |
7 files changed, 11 insertions, 8 deletions
diff --git a/src/libcharon/plugins/ha/ha_tunnel.c b/src/libcharon/plugins/ha/ha_tunnel.c index e6a09a76e..4e656e73b 100644 --- a/src/libcharon/plugins/ha/ha_tunnel.c +++ b/src/libcharon/plugins/ha/ha_tunnel.c @@ -245,7 +245,7 @@ static void setup_tunnel(private_ha_tunnel_t *this, charon->backends->add_backend(charon->backends, &this->backend.public); /* install an acquiring trap */ - this->trap = charon->traps->install(charon->traps, peer_cfg, child_cfg); + this->trap = charon->traps->install(charon->traps, peer_cfg, child_cfg, 0); } METHOD(ha_tunnel_t, destroy, void, diff --git a/src/libcharon/plugins/stroke/stroke_control.c b/src/libcharon/plugins/stroke/stroke_control.c index 91130d1ee..fdd1635a6 100644 --- a/src/libcharon/plugins/stroke/stroke_control.c +++ b/src/libcharon/plugins/stroke/stroke_control.c @@ -603,7 +603,7 @@ static void charon_route(peer_cfg_t *peer_cfg, child_cfg_t *child_cfg, } else { - if (charon->traps->install(charon->traps, peer_cfg, child_cfg)) + if (charon->traps->install(charon->traps, peer_cfg, child_cfg, 0)) { fprintf(out, "'%s' routed\n", name); } diff --git a/src/libcharon/processing/jobs/start_action_job.c b/src/libcharon/processing/jobs/start_action_job.c index bc4aaf6d6..981473b5c 100644 --- a/src/libcharon/processing/jobs/start_action_job.c +++ b/src/libcharon/processing/jobs/start_action_job.c @@ -73,7 +73,7 @@ METHOD(job_t, execute, job_requeue_t, else { charon->traps->install(charon->traps, peer_cfg, - child_cfg); + child_cfg, 0); } break; case ACTION_NONE: diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index e25191782..22b9e4348 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1575,7 +1575,8 @@ METHOD(ike_sa_t, reestablish, status_t, break; case ACTION_ROUTE: charon->traps->install(charon->traps, this->peer_cfg, - child_sa->get_config(child_sa)); + child_sa->get_config(child_sa), + child_sa->get_reqid(child_sa)); break; default: break; diff --git a/src/libcharon/sa/ikev2/tasks/child_delete.c b/src/libcharon/sa/ikev2/tasks/child_delete.c index 9e53d037e..5e696775c 100644 --- a/src/libcharon/sa/ikev2/tasks/child_delete.c +++ b/src/libcharon/sa/ikev2/tasks/child_delete.c @@ -227,7 +227,8 @@ static status_t destroy_and_reestablish(private_child_delete_t *this) break; case ACTION_ROUTE: charon->traps->install(charon->traps, - this->ike_sa->get_peer_cfg(this->ike_sa), child_cfg); + this->ike_sa->get_peer_cfg(this->ike_sa), child_cfg, + child_sa->get_reqid(child_sa)); break; default: break; diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index ab638ff3e..37426fc47 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -92,7 +92,8 @@ static void destroy_entry(entry_t *entry) } METHOD(trap_manager_t, install, u_int32_t, - private_trap_manager_t *this, peer_cfg_t *peer, child_cfg_t *child) + private_trap_manager_t *this, peer_cfg_t *peer, child_cfg_t *child, + u_int32_t reqid) { entry_t *entry, *found = NULL; ike_cfg_t *ike_cfg; @@ -101,7 +102,6 @@ METHOD(trap_manager_t, install, u_int32_t, linked_list_t *my_ts, *other_ts, *list; enumerator_t *enumerator; status_t status; - u_int32_t reqid = 0; /* try to resolve addresses */ ike_cfg = peer->get_ike_cfg(peer); diff --git a/src/libcharon/sa/trap_manager.h b/src/libcharon/sa/trap_manager.h index 97de45645..0491107fd 100644 --- a/src/libcharon/sa/trap_manager.h +++ b/src/libcharon/sa/trap_manager.h @@ -37,10 +37,11 @@ struct trap_manager_t { * * @param peer peer configuration to initiate on trap * @param child child configuration to install as a trap + * @param reqid optional reqid to use * @return reqid of installed CHILD_SA, 0 if failed */ u_int32_t (*install)(trap_manager_t *this, peer_cfg_t *peer, - child_cfg_t *child); + child_cfg_t *child, u_int32_t reqid); /** * Uninstall a trap policy. |