summaryrefslogtreecommitdiffstats
path: root/sys/netipsec/key.c
diff options
context:
space:
mode:
authorvanhu <vanhu@FreeBSD.org>2008-08-05 15:36:50 +0000
committervanhu <vanhu@FreeBSD.org>2008-08-05 15:36:50 +0000
commit3a946f98dc7d355c76b373b26abead5eb6f369d9 (patch)
tree6eafa3420b9f5f9891fdfb0622f00fb17ac0a17a /sys/netipsec/key.c
parentf42aa30836975cb77d62d14efad30fd7c3cc2f4e (diff)
downloadFreeBSD-src-3a946f98dc7d355c76b373b26abead5eb6f369d9.zip
FreeBSD-src-3a946f98dc7d355c76b373b26abead5eb6f369d9.tar.gz
Add lifetime informations to generated SPD entries when SPDDUMP
Approved by: gnn (mentor) MFC after: 4 weeks
Diffstat (limited to 'sys/netipsec/key.c')
-rw-r--r--sys/netipsec/key.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/netipsec/key.c b/sys/netipsec/key.c
index 2921d02..dc66a39 100644
--- a/sys/netipsec/key.c
+++ b/sys/netipsec/key.c
@@ -2412,6 +2412,7 @@ key_setdumpsp(sp, type, seq, pid)
u_int32_t seq, pid;
{
struct mbuf *result = NULL, *m;
+ struct seclifetime lt;
m = key_setsadbmsg(type, 0, SADB_SATYPE_UNSPEC, seq, pid, sp->refcnt);
if (!m)
@@ -2437,6 +2438,22 @@ key_setdumpsp(sp, type, seq, pid)
goto fail;
m_cat(result, m);
+ if(sp->lifetime){
+ lt.addtime=sp->created;
+ lt.usetime= sp->lastused;
+ m = key_setlifetime(&lt, SADB_EXT_LIFETIME_CURRENT);
+ if (!m)
+ goto fail;
+ m_cat(result, m);
+
+ lt.addtime=sp->lifetime;
+ lt.usetime= sp->validtime;
+ m = key_setlifetime(&lt, SADB_EXT_LIFETIME_HARD);
+ if (!m)
+ goto fail;
+ m_cat(result, m);
+ }
+
if ((result->m_flags & M_PKTHDR) == 0)
goto fail;
OpenPOWER on IntegriCloud