merge gh-4164: new tag <jail.name> available in ignorecommand or actions (same as <name> there)

This commit is contained in:
sebres 2026-04-11 14:49:13 +02:00
commit adfffe5267
2 changed files with 5 additions and 4 deletions

View file

@ -394,6 +394,7 @@ class Actions(JailThread, Mapping):
# raw ticket info:
"raw-ticket": lambda self: repr(self.__ticket),
# jail info:
"jail.name": lambda self: self.__jail.name,
"jail.banned": lambda self: self.__jail.actions.banManager.size(),
"jail.banned_total": lambda self: self.__jail.actions.banManager.getBanTotal(),
"jail.found": lambda self: self.__jail.filter.failManager.size(),

View file

@ -617,14 +617,14 @@ class IgnoreIP(LogCaptureTestCase):
self.pruneLog()
self.assertFalse(self.filter.inIgnoreIPList(FailTicket("2001:db8::ffff")))
self.assertLogged("returned successfully 1")
# by user-name (ignore tester):
self.filter.ignoreCommand = 'if [ "<F-USER>" = "tester" ]; then exit 0; fi; exit 1'
# by user-name (ignore tester), also test jail.name tag:
self.filter.ignoreCommand = 'echo "jail:<jail.name>"; if [ "<F-USER>" = "tester" ]; then exit 0; fi; exit 1'
self.pruneLog()
self.assertTrue(self.filter.inIgnoreIPList(FailTicket("tester", data={'user': 'tester'})))
self.assertLogged("returned successfully 0")
self.assertLogged("stdout: %r" % 'jail:DummyJail', "returned successfully 0", all=True)
self.pruneLog()
self.assertFalse(self.filter.inIgnoreIPList(FailTicket("root", data={'user': 'root'})))
self.assertLogged("returned successfully 1", all=True)
self.assertLogged("stdout: %r" % 'jail:DummyJail', "returned successfully 1", all=True)
def testIgnoreCache(self):
# like both test-cases above, just cached (so once per key)...