* gnu/packages/admin.scm (fail2ban): New variable. * gnu/packages/patches/fail2ban-0.11.2_CVE-2021-32749.patch, gnu/packages/patches/fail2ban-0.11.2_fix-setuptools-drop-2to3.patch, gnu/packages/patches/fail2ban-0.11.2_fix-test-suite.patch, gnu/packages/patches/fail2ban-paths-guix-conf.patch, gnu/packages/patches/fail2ban-python310-server-action.patch, gnu/packages/patches/fail2ban-python310-server-actions.patch, gnu/packages/patches/fail2ban-python310-server-jails.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 747d4683221b5584f9663695fb48145689b42ceb Mon Sep 17 00:00:00 2001
 | |
| From: sebres <info@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 1464a96d1f..39fc795865 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()
 | |
|  
 |