- Added a set/get for "failtime"

git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/trunk@311 a942ae1a-1317-0410-a47c-b1dcaea8d605
0.x
Cyril Jaquier 2006-08-28 20:22:15 +00:00
parent 9f2d901040
commit 846a3d0477
2 changed files with 63 additions and 122 deletions

View File

@ -62,7 +62,10 @@ class Server:
self.transm.stop() self.transm.stop()
def addJail(self, name): def addJail(self, name):
self.jails[name] = Jail(name) if self.jails.has_key(name):
raise ServerDuplicateJail(name)
else:
self.jails[name] = Jail(name)
def delJail(self, name): def delJail(self, name):
if self.jails.has_key(name): if self.jails.has_key(name):
@ -88,6 +91,18 @@ class Server:
for jail in self.jails.copy(): for jail in self.jails.copy():
self.stopJail(jail) self.stopJail(jail)
def getAction(self, name):
if self.jails.has_key(name):
return self.jails[name].getAction()
else:
raise ServerUnknownJail(name)
def getFilter(self, name):
if self.jails.has_key(name):
return self.jails[name].getFilter()
else:
raise ServerUnknownJail(name)
def isActive(self, name): def isActive(self, name):
if self.jails.has_key(name): if self.jails.has_key(name):
return self.jails[name].isActive() return self.jails[name].isActive()
@ -113,179 +128,98 @@ class Server:
self.jails[name].getFilter().setLogPath(file) self.jails[name].getFilter().setLogPath(file)
def getLogPath(self, name): def getLogPath(self, name):
if self.jails.has_key(name): return self.getFilter(name).getLogPath()
return self.jails[name].getFilter().getLogPath()
else:
raise ServerUnknownJail(name)
def setTimeRegex(self, name, value): def setTimeRegex(self, name, value):
if self.jails.has_key(name): self.getFilter(name).setTimeRegex(value)
self.jails[name].getFilter().setTimeRegex(value)
else:
raise ServerUnknownJail(name)
def getTimeRegex(self, name): def getTimeRegex(self, name):
if self.jails.has_key(name): return self.getFilter(name).getTimeRegex()
return self.jails[name].getFilter().getTimeRegex()
else:
raise ServerUnknownJail(name)
def setTimePattern(self, name, value): def setTimePattern(self, name, value):
if self.jails.has_key(name): self.getFilter(name).setTimePattern(value)
self.jails[name].getFilter().setTimePattern(value)
else:
raise ServerUnknownJail(name)
def getTimePattern(self, name): def getTimePattern(self, name):
if self.jails.has_key(name): return self.getFilter(name).getTimePattern()
return self.jails[name].getFilter().getTimePattern()
else: def setFindTime(self, name, value):
raise ServerUnknownJail(name) self.getFilter(name).setFindTime(value)
def getFindTime(self):
return self.getFilter(name).getFindTime()
def setFailRegex(self, name, value): def setFailRegex(self, name, value):
if self.jails.has_key(name): self.getFilter(name).setFailRegex(value)
self.jails[name].getFilter().setFailRegex(value)
else:
raise ServerUnknownJail(name)
def getFailRegex(self, name): def getFailRegex(self, name):
if self.jails.has_key(name): return self.getFilter(name).getFailRegex()
return self.jails[name].getFilter().getFailRegex()
else:
raise ServerUnknownJail(name)
def setMaxRetry(self, name, value): def setMaxRetry(self, name, value):
if self.jails.has_key(name): self.getFilter(name).setMaxRetry(value)
self.jails[name].getFilter().setMaxRetry(value)
else:
raise ServerUnknownJail(name)
def getMaxRetry(self, name): def getMaxRetry(self, name):
if self.jails.has_key(name): return self.getFilter(name).getMaxRetry()
return self.jails[name].getFilter().getMaxRetry()
else:
raise ServerUnknownJail(name)
def setMaxTime(self, name, value): def setMaxTime(self, name, value):
if self.jails.has_key(name): self.getFilter(name).setMaxTime(value)
self.jails[name].getFilter().setMaxTime(value)
else:
raise ServerUnknownJail(name)
def getMaxTime(self, name): def getMaxTime(self, name):
if self.jails.has_key(name): return self.getFilter(name).getMaxTime()
return self.jails[name].getFilter().getMaxTime()
else:
raise ServerUnknownJail(name)
# Action # Action
def addAction(self, name, value): def addAction(self, name, value):
if self.jails.has_key(name): self.getAction(name).addAction(value)
self.jails[name].getAction().addAction(value)
else:
raise ServerUnknownJail(name)
def getLastAction(self, name): def getLastAction(self, name):
if self.jails.has_key(name): return self.getAction(name).getLastAction()
return self.jails[name].getAction().getLastAction()
else:
raise ServerUnknownJail(name)
def delAction(self, name, value): def delAction(self, name, value):
if self.jails.has_key(name): self.getAction(name).delAction(value)
self.jails[name].getAction().delAction(value)
else:
raise ServerUnknownJail(name)
def setCInfo(self, name, action, key, value): def setCInfo(self, name, action, key, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setCInfo(key, value)
self.jails[name].getAction().getAction(action).setCInfo(key, value)
else:
raise ServerUnknownJail(name)
def getCInfo(self, name, action, key): def getCInfo(self, name, action, key):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getCInfo(key)
return self.jails[name].getAction().getAction(action).getCInfo(key)
else:
raise ServerUnknownJail(name)
def delCInfo(self, name, action, key): def delCInfo(self, name, action, key):
if self.jails.has_key(name): self.getAction(name).getAction(action).delCInfo(key)
self.jails[name].getAction().getAction(action).delCInfo(key)
else:
raise ServerUnknownJail(name)
def setBanTime(self, name, value): def setBanTime(self, name, value):
if self.jails.has_key(name): self.getAction(name).setBanTime(value)
self.jails[name].getAction().setBanTime(value)
else:
raise ServerUnknownJail(name)
def getBanTime(self, name): def getBanTime(self, name):
if self.jails.has_key(name): return self.getAction(name).getBanTime()
return self.jails[name].getAction().getBanTime()
else:
raise ServerUnknownJail(name)
def setActionStart(self, name, action, value): def setActionStart(self, name, action, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setActionStart(value)
self.jails[name].getAction().getAction(action).setActionStart(value)
else:
raise ServerUnknownJail(name)
def getActionStart(self, name, action): def getActionStart(self, name, action):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getActionStart()
return self.jails[name].getAction().getAction(action).getActionStart()
else:
raise ServerUnknownJail(name)
def setActionStop(self, name, action, value): def setActionStop(self, name, action, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setActionStop(value)
self.jails[name].getAction().getAction(action).setActionStop(value)
else:
raise ServerUnknownJail(name)
def getActionStop(self, name, action): def getActionStop(self, name, action):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getActionStop()
return self.jails[name].getAction().getAction(action).getActionStop()
else:
raise ServerUnknownJail(name)
def setActionCheck(self, name, action, value): def setActionCheck(self, name, action, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setActionCheck(value)
self.jails[name].getAction().getAction(action).setActionCheck(value)
else:
raise ServerUnknownJail(name)
def getActionCheck(self, name, action): def getActionCheck(self, name, action):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getActionCheck()
return self.jails[name].getAction().getAction(action).getActionCheck()
else:
raise ServerUnknownJail(name)
def setActionBan(self, name, action, value): def setActionBan(self, name, action, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setActionBan(value)
self.jails[name].getAction().getAction(action).setActionBan(value)
else:
raise ServerUnknownJail(name)
def getActionBan(self, name, action): def getActionBan(self, name, action):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getActionBan()
return self.jails[name].getAction().getAction(action).getActionBan()
else:
raise ServerUnknownJail(name)
def setActionUnban(self, name, action, value): def setActionUnban(self, name, action, value):
if self.jails.has_key(name): self.getAction(name).getAction(action).setActionUnban(value)
self.jails[name].getAction().getAction(action).setActionUnban(value)
else:
raise ServerUnknownJail(name)
def getActionUnban(self, name, action): def getActionUnban(self, name, action):
if self.jails.has_key(name): return self.getAction(name).getAction(action).getActionUnban()
return self.jails[name].getAction().getAction(action).getActionUnban()
else:
raise ServerUnknownJail(name)
# Status # Status
def status(self): def status(self):
@ -439,6 +373,9 @@ class Server:
return True return True
class ServerDuplicateJail(Exception):
pass
class ServerUnknownJail(Exception): class ServerUnknownJail(Exception):
pass pass

View File

@ -149,6 +149,10 @@ class Transmitter:
value = action[2] value = action[2]
self.server.setMaxTime(name, int(value)) self.server.setMaxTime(name, int(value))
return self.server.getMaxTime(name) return self.server.getMaxTime(name)
elif action[1] == "findtime":
value = action[2]
self.server.setFindTime(name, int(value))
return self.server.getFindTime(name)
elif action[1] == "maxretry": elif action[1] == "maxretry":
value = action[2] value = action[2]
self.server.setMaxRetry(name, int(value)) self.server.setMaxRetry(name, int(value))
@ -201,7 +205,7 @@ class Transmitter:
value = action[3] value = action[3]
self.server.setActionUnban(name, act, value) self.server.setActionUnban(name, act, value)
return self.server.getActionUnban(name, act) return self.server.getActionUnban(name, act)
raise Exception("Invalid command (no set action)") raise Exception("Invalid command (no set action or not yet implemented)")
def actionGet(self, action): def actionGet(self, action):
name = action[0] name = action[0]
@ -211,7 +215,7 @@ class Transmitter:
# Filter # Filter
if action[1] == "logpath": if action[1] == "logpath":
return self.server.getLogPath(name) return self.server.getLogPath(name)
raise Exception("Invalid command (no get action)") raise Exception("Invalid command (no get action or not yet implemented)")
def status(self, action): def status(self, action):
if len(action) == 0: if len(action) == 0: