Blame SOURCES/libreswan-3.23-liveness-1553406.patch

64c1a2
diff -Naur libreswan-3.23-orig/programs/pluto/ikev2_parent.c libreswan-3.23/programs/pluto/ikev2_parent.c
64c1a2
--- libreswan-3.23-orig/programs/pluto/ikev2_parent.c	2018-04-27 14:08:15.514571020 -0400
64c1a2
+++ libreswan-3.23/programs/pluto/ikev2_parent.c	2018-04-27 14:08:53.835299450 -0400
64c1a2
@@ -6076,6 +6076,14 @@
64c1a2
 		md->st = st = NULL;
64c1a2
 	} else if (!responding &&
64c1a2
 		   md->chain[ISAKMP_NEXT_v2D] == NULL) {
64c1a2
+		/* A liveness update response */
64c1a2
+		/* ??? why wouldn't any INFORMATIONAL count, even one that
64c1a2
+		 * is actually deleting SAs?
64c1a2
+		 */
64c1a2
+		DBG(DBG_CONTROLMORE,
64c1a2
+		    DBG_log("Received an INFORMATIONAL response; updating liveness, no longer pending."));
64c1a2
+		st->st_last_liveness = mononow();
64c1a2
+		st->st_pend_liveness = FALSE;
64c1a2
 	} else if (del_ike) {
64c1a2
 		/*
64c1a2
 		 * If we are deleting the Parent SA, the Child SAs will be torn down as well,