aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-06-28 17:19:20 +0200
committerMartin Willi <martin@revosec.ch>2011-06-28 17:19:20 +0200
commit6a5c8ee7a53d3652bd95eeb97a77c2d18b7737d4 (patch)
treeb41e5c84751ac982c825bcf59693dd79772335a2 /src/libcharon
parent06356a29810a216be8d3cc582a39b987f7e3115a (diff)
downloadstrongswan-6a5c8ee7a53d3652bd95eeb97a77c2d18b7737d4.tar.bz2
strongswan-6a5c8ee7a53d3652bd95eeb97a77c2d18b7737d4.tar.xz
Initialize trap_manager listener with INIT macro, too
Diffstat (limited to 'src/libcharon')
-rw-r--r--src/libcharon/sa/trap_manager.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c
index 4cefb35d7..bb5c3f0b5 100644
--- a/src/libcharon/sa/trap_manager.c
+++ b/src/libcharon/sa/trap_manager.c
@@ -155,8 +155,8 @@ METHOD(trap_manager_t, install, u_int32_t,
other->destroy(other);
/* while we don't know the finally negotiated protocol (ESP|AH), we
- * could iterate all proposals for a best guest (TODO). But as we
- * support ESP only for now, we set here. */
+ * could iterate all proposals for a best guess (TODO). But as we
+ * support ESP only for now, we set it here. */
child_sa->set_protocol(child_sa, PROTO_ESP);
child_sa->set_mode(child_sa, child->get_mode(child));
status = child_sa->add_policies(child_sa, my_ts, other_ts);
@@ -375,15 +375,16 @@ trap_manager_t *trap_manager_create(void)
.acquire = _acquire,
.destroy = _destroy,
},
+ .listener = {
+ .traps = this,
+ .listener = {
+ .ike_state_change = _ike_state_change,
+ .child_state_change = _child_state_change,
+ },
+ },
.traps = linked_list_create(),
.lock = rwlock_create(RWLOCK_TYPE_DEFAULT),
);
-
- /* register listener for IKE state changes */
- this->listener.traps = this;
- memset(&this->listener.listener, 0, sizeof(listener_t));
- this->listener.listener.ike_state_change = _ike_state_change;
- this->listener.listener.child_state_change = _child_state_change;
charon->bus->add_listener(charon->bus, &this->listener.listener);
return &this->public;