During childsa last use checks, iked debug logs results, per SA, after a
successful pfkey_sa_last_used call.

This patch makes logging behavior more closely match that, on error.

I chose log_warn instead of log_debug since iked will complain about the
nonzero errno after pfkey_reply:
        pfkey_sa_last_used: message: No such process

With this patch an operator can at least troubleshoot which SAs are
causing the trouble.

Comments? Make sense?

thank you, all
matthew weaver

---

Index: ikev2.c
===================================================================
RCS file: /cvs/src/sbin/iked/ikev2.c,v
retrieving revision 1.223
diff -u -p -u -r1.223 ikev2.c
--- ikev2.c     2 May 2020 13:01:37 -0000       1.223
+++ ikev2.c     26 May 2020 15:53:42 -0000
@@ -4347,8 +4347,15 @@ ikev2_ike_sa_alive(struct iked *env, voi
        TAILQ_FOREACH(csa, &sa->sa_childsas, csa_entry) {
                if (!csa->csa_loaded)
                        continue;
-               if (pfkey_sa_last_used(env->sc_pfkey, csa, &last_used) != 0)
+               if (pfkey_sa_last_used(env->sc_pfkey, csa, &last_used) != 0) {
+                       log_warn(
+                           "%s: %s CHILD SA spi %s failed to determine "
+                           "last use", __func__,
+                           csa->csa_dir == IPSP_DIRECTION_IN ?
+                           "incoming" : "outgoing",
+                           print_spi(csa->csa_spi.spi, csa->csa_spi.spi_size));
                        continue;
+               }
                diff = (uint32_t)(gettime() - last_used);
                log_debug("%s: %s CHILD SA spi %s last used %llu second(s) ago",
                    __func__,

Reply via email to