added new listener callbacks to track SAs
authorMartin Willi <martin@strongswan.org>
Wed, 8 Jul 2009 12:08:31 +0000 (14:08 +0200)
committerMartin Willi <martin@strongswan.org>
Thu, 9 Jul 2009 13:25:15 +0000 (15:25 +0200)
src/charon/bus/listeners/listener.h

index fea3a69..1cab0a2 100644 (file)
@@ -108,6 +108,46 @@ struct listener_t {
                                           diffie_hellman_t *dh, chunk_t nonce_i, chunk_t nonce_r);
        
        /**
+        * Hook called if an IKE_SA gets up or down.
+        *
+        * @param ike_sa        IKE_SA coming up/going down
+        * @param up            TRUE for an up event, FALSE for a down event
+        * @return                      TRUE to stay registered, FALSE to unregister
+        */
+       bool (*ike_updown)(listener_t *this, ike_sa_t *ike_sa, bool up);
+       
+       /**
+        * Hook called when an IKE_SA gets rekeyed.
+        *
+        * @param old           rekeyed IKE_SA getting obsolete
+        * @param new           new IKE_SA replacing old
+        * @return                      TRUE to stay registered, FALSE to unregister
+        */
+       bool (*ike_rekey)(listener_t *this, ike_sa_t *old, ike_sa_t *new);
+       
+       /**
+        * Hook called when a CHILD_SA gets up or down.
+        *
+        * @param ike_sa        IKE_SA containing the handled CHILD_SA
+        * @param child_sa      CHILD_SA coming up/going down
+        * @param up            TRUE for an up event, FALSE for a down event
+        * @return                      TRUE to stay registered, FALSE to unregister
+        */
+       bool (*child_updown)(listener_t *this, ike_sa_t *ike_sa,
+                                                child_sa_t *child_sa, bool up);
+       
+       /**
+        * Hook called when an CHILD_SA gets rekeyed.
+        *
+        * @param ike_sa        IKE_SA containing the rekeyed CHILD_SA
+        * @param old           rekeyed CHILD_SA getting obsolete
+        * @param new           new CHILD_SA replacing old
+        * @return                      TRUE to stay registered, FALSE to unregister
+        */
+       bool (*child_rekey)(listener_t *this, ike_sa_t *ike_sa,
+                                               child_sa_t *old, child_sa_t *new);
+       
+       /**
         * Hook called to invoke additional authorization rules.
         *
         * An authorization hook gets invoked several times: After each