Notification time stamped 2023-03-31 22:34:03 UTC
From 1a7cc53458e9df82063a0aa277c2d0c3f1ee08dd Mon Sep 17 00:00:00 2001
From: Richard Shaw <hobbes1069(a)gmail.com>
Date: Jan 06 2021 13:08:55 +0000
Subject: Add patch to SCM.
---
diff --git a/f259dac74721c00f0184bf45277137771fc747fe.patch
b/f259dac74721c00f0184bf45277137771fc747fe.patch
new file mode 100644
index 0000000..ba399ae
--- /dev/null
+++ b/f259dac74721c00f0184bf45277137771fc747fe.patch
@@ -0,0 +1,48 @@
+From 747d4683221b5584f9663695fb48145689b42ceb Mon Sep 17 00:00:00 2001
+From: sebres <info(a)sebres.de>
+Date: Mon, 4 Jan 2021 02:42:38 +0100
+Subject: [PATCH] fixes century selector of %ExY and %Exy in datepattern for
+ tests, considering interval from 2005 (alternate now) to now; + better
+ grouping algorithm for resulting century RE
+
+---
+ fail2ban/server/strptime.py | 24 ++++++++++++++++++++++--
+ 1 file changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/fail2ban/server/strptime.py b/fail2ban/server/strptime.py
+index 1464a96d1..39fc79586 100644
+--- a/fail2ban/server/strptime.py
++++ b/fail2ban/server/strptime.py
+@@ -36,10 +36,30 @@ def _getYearCentRE(cent=(0,3), distance=3, now=(MyTime.now(),
MyTime.alternateNo
+ Thereby respect possible run in the test-cases (alternate date used there)
+ """
+ cent = lambda year, f=cent[0], t=cent[1]: str(year)[f:t]
++ def grp(exprset):
++ c = None
++ if len(exprset) > 1:
++ for i in exprset:
++ if c is None or i[0:-1] == c:
++ c = i[0:-1]
++ else:
++ c = None
++ break
++ if not c:
++ for i in exprset:
++ if c is None or i[0] == c:
++ c = i[0]
++ else:
++ c = None
++ break
++ if c:
++ return "%s%s" % (c, grp([i[len(c):] for i in exprset]))
++ return ("(?:%s)" % "|".join(exprset) if len(exprset[0]) > 1
else "[%s]" % "".join(exprset)) \
++ if len(exprset) > 1 else "".join(exprset)
+ exprset = set( cent(now[0].year + i) for i in (-1, distance) )
+ if len(now) and now[1]:
+- exprset |= set( cent(now[1].year + i) for i in (-1, distance) )
+- return "(?:%s)" % "|".join(exprset) if len(exprset) > 1 else
"".join(exprset)
++ exprset |= set( cent(now[1].year + i) for i in xrange(-1, now[0].year-now[1].year+1,
distance) )
++ return grp(sorted(list(exprset)))
+
+ timeRE = TimeRE()
+
https://src.fedoraproject.org/rpms/fail2ban/c/1a7cc53458e9df82063a0aa277c...