From a32a8d4a673190d02587c18c9953b648cf93669e Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 8 Oct 2012 11:31:18 +0200 Subject: Add stroke IKE rekey counters --- src/libcharon/plugins/stroke/stroke_counter.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src') diff --git a/src/libcharon/plugins/stroke/stroke_counter.c b/src/libcharon/plugins/stroke/stroke_counter.c index fb8a47a16..b46ca0d6c 100644 --- a/src/libcharon/plugins/stroke/stroke_counter.c +++ b/src/libcharon/plugins/stroke/stroke_counter.c @@ -65,6 +65,29 @@ struct private_stroke_counter_t { spinlock_t *lock; }; +METHOD(listener_t, ike_rekey, bool, + private_stroke_counter_t *this, ike_sa_t *old, ike_sa_t *new) +{ + stroke_counter_type_t type; + ike_sa_id_t *id; + + id = new->get_id(new); + if (id->is_initiator(id)) + { + type = COUNTER_INIT_IKE_SA_REKEY; + } + else + { + type = COUNTER_RESP_IKE_SA_REKEY; + } + + this->lock->lock(this->lock); + this->counter[type]++; + this->lock->unlock(this->lock); + + return TRUE; +} + METHOD(stroke_counter_t, destroy, void, private_stroke_counter_t *this) { @@ -81,6 +104,9 @@ stroke_counter_t *stroke_counter_create() INIT(this, .public = { + .listener = { + .ike_rekey = _ike_rekey, + }, .destroy = _destroy, }, .lock = spinlock_create(), -- cgit v1.2.3