Module Name: src Committed By: knakahara Date: Thu Dec 8 08:05:03 UTC 2022
Modified Files: src/sys/netipsec: ipsecif.c key.c key.h Log Message: Fix: update lastused of ipsecif(4) IPv6 out SP. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/netipsec/ipsecif.c cvs rdiff -u -r1.278 -r1.279 src/sys/netipsec/key.c cvs rdiff -u -r1.37 -r1.38 src/sys/netipsec/key.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netipsec/ipsecif.c diff -u src/sys/netipsec/ipsecif.c:1.20 src/sys/netipsec/ipsecif.c:1.21 --- src/sys/netipsec/ipsecif.c:1.20 Wed Dec 7 08:30:15 2022 +++ src/sys/netipsec/ipsecif.c Thu Dec 8 08:05:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsecif.c,v 1.20 2022/12/07 08:30:15 knakahara Exp $ */ +/* $NetBSD: ipsecif.c,v 1.21 2022/12/08 08:05:03 knakahara Exp $ */ /* * Copyright (c) 2017 Internet Initiative Japan Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ipsecif.c,v 1.20 2022/12/07 08:30:15 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ipsecif.c,v 1.21 2022/12/08 08:05:03 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -395,7 +395,10 @@ ipsecif4_output(struct ipsec_variant *va /* * The SPs in ipsec_variant are prevented from freed by * ipsec_variant->iv_psref. So, KEY_SP_REF() is unnecessary here. + * + * However, lastused should be updated. */ + key_sp_touch(sp); KASSERT(sp->policy != IPSEC_POLICY_NONE); KASSERT(sp->policy != IPSEC_POLICY_ENTRUST); Index: src/sys/netipsec/key.c diff -u src/sys/netipsec/key.c:1.278 src/sys/netipsec/key.c:1.279 --- src/sys/netipsec/key.c:1.278 Wed Oct 19 21:28:02 2022 +++ src/sys/netipsec/key.c Thu Dec 8 08:05:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: key.c,v 1.278 2022/10/19 21:28:02 christos Exp $ */ +/* $NetBSD: key.c,v 1.279 2022/12/08 08:05:03 knakahara Exp $ */ /* $FreeBSD: key.c,v 1.3.2.3 2004/02/14 22:23:23 bms Exp $ */ /* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.278 2022/10/19 21:28:02 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.279 2022/12/08 08:05:03 knakahara Exp $"); /* * This code is referred to RFC 2367 @@ -871,6 +871,13 @@ key_sp_refcnt(const struct secpolicy *sp return 0; } +void +key_sp_touch(struct secpolicy *sp) +{ + + sp->lastused = time_uptime; +} + static void key_spd_pserialize_perform(void) { Index: src/sys/netipsec/key.h diff -u src/sys/netipsec/key.h:1.37 src/sys/netipsec/key.h:1.38 --- src/sys/netipsec/key.h:1.37 Mon Aug 9 20:49:10 2021 +++ src/sys/netipsec/key.h Thu Dec 8 08:05:03 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: key.h,v 1.37 2021/08/09 20:49:10 andvar Exp $ */ +/* $NetBSD: key.h,v 1.38 2022/12/08 08:05:03 knakahara Exp $ */ /* $FreeBSD: key.h,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $ */ /* $KAME: key.h,v 1.21 2001/07/27 03:51:30 itojun Exp $ */ @@ -67,6 +67,7 @@ void key_free_sp(struct secpolicy *); u_int key_sp_refcnt(const struct secpolicy *); void key_sp_ref(struct secpolicy *, const char *, int); void key_sp_unref(struct secpolicy *, const char *, int); +void key_sp_touch(struct secpolicy *); void key_sa_ref(struct secasvar *, const char *, int); void key_sa_unref(struct secasvar *, const char *, int); u_int key_sa_refcnt(const struct secasvar *);