From: Martin Willi Date: Mon, 8 Oct 2012 09:31:18 +0000 (+0200) Subject: Add stroke IKE rekey counters X-Git-Tag: 5.0.2dr4~324 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a32a8d4a673190d02587c18c9953b648cf93669e;p=thirdparty%2Fstrongswan.git Add stroke IKE rekey counters --- diff --git a/src/libcharon/plugins/stroke/stroke_counter.c b/src/libcharon/plugins/stroke/stroke_counter.c index fb8a47a161..b46ca0d6c0 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(),