fix a TypeError bugs like "Failed to execute ban jail 'pam-generic' action 'iptables-allports'"

getAttempt returns not a list (numeric), so by call of both lambda we have a TypeError except;
simplifying code;
pull/722/head
sebres 2014-05-15 19:41:00 +02:00
parent 2526dbae92
commit 213c4315c3
1 changed files with 10 additions and 13 deletions

View File

@ -255,23 +255,20 @@ class Actions(JailThread, Mapping):
if ticket != False: if ticket != False:
aInfo = CallingMap() aInfo = CallingMap()
bTicket = BanManager.createBanTicket(ticket) bTicket = BanManager.createBanTicket(ticket)
aInfo["ip"] = bTicket.getIP() ip = bTicket.getIP()
aInfo["ip"] = ip
aInfo["failures"] = bTicket.getAttempt() aInfo["failures"] = bTicket.getAttempt()
aInfo["time"] = bTicket.getTime() aInfo["time"] = bTicket.getTime()
aInfo["matches"] = "\n".join(bTicket.getMatches()) aInfo["matches"] = "\n".join(bTicket.getMatches())
if self._jail.database is not None: if self._jail.database is not None:
aInfo["ipmatches"] = lambda: "\n".join( aInfo["ipmatches"] = lambda jail=self._jail: "\n".join(
self._jail.database.getBansMerged( jail.database.getBansMerged(ip=ip).getMatches())
ip=bTicket.getIP()).getMatches()) aInfo["ipjailmatches"] = lambda jail=self._jail: "\n".join(
aInfo["ipjailmatches"] = lambda: "\n".join( jail.database.getBansMerged(ip=ip, jail=jail).getMatches())
self._jail.database.getBansMerged( aInfo["ipfailures"] = lambda jail=self._jail: \
ip=bTicket.getIP(), jail=self._jail).getMatches()) jail.database.getBansMerged(ip=ip).getAttempt()
aInfo["ipfailures"] = lambda: "\n".join( aInfo["ipjailfailures"] = lambda jail=self._jail: \
self._jail.database.getBansMerged( jail.database.getBansMerged(ip=ip, jail=jail).getAttempt()
ip=bTicket.getIP()).getAttempt())
aInfo["ipjailfailures"] = lambda: "\n".join(
self._jail.database.getBansMerged(
ip=bTicket.getIP(), jail=self._jail).getAttempt())
if self.__banManager.addBanTicket(bTicket): if self.__banManager.addBanTicket(bTicket):
logSys.notice("[%s] Ban %s" % (self._jail.name, aInfo["ip"])) logSys.notice("[%s] Ban %s" % (self._jail.name, aInfo["ip"]))
for name, action in self._actions.iteritems(): for name, action in self._actions.iteritems():