mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
IpAclManager erweitert
picontrolserver auf IpAclManager umgeschrieben
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
# (c) Sven Sager, License: LGPLv3
|
||||
#
|
||||
"""XML-RPC Server anpassungen fuer Absicherung."""
|
||||
import proginit
|
||||
from helper import IpAclManager
|
||||
from concurrent import futures
|
||||
from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
|
||||
@@ -15,14 +16,11 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
|
||||
|
||||
"""Erstellt einen erweiterten XMLRPCServer."""
|
||||
|
||||
aclmgr = IpAclManager()
|
||||
|
||||
def __init__(
|
||||
self, addr, logRequests=True, allow_none=False,
|
||||
use_builtin_types=False, acl=""):
|
||||
use_builtin_types=False, ipacl=IpAclManager()):
|
||||
"""Init SaveXMLRPCServer class."""
|
||||
|
||||
SaveXMLRPCServer.aclmgr.acl = acl
|
||||
proginit.logger.debug("enter SaveXMLRPCServer.__init__()")
|
||||
|
||||
# Vererbte Klasse instantiieren
|
||||
super().__init__(
|
||||
@@ -36,9 +34,12 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
|
||||
)
|
||||
|
||||
# Klassenvariablen
|
||||
self.aclmgr = ipacl
|
||||
self.tpe = futures.ThreadPoolExecutor(max_workers=1)
|
||||
self.fut = None
|
||||
|
||||
proginit.logger.debug("leave SaveXMLRPCServer.__init__()")
|
||||
|
||||
def isAlive(self):
|
||||
"""Prueft ob der XML RPC Server laeuft.
|
||||
@return True, wenn Server noch laeuft"""
|
||||
@@ -46,6 +47,8 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
|
||||
|
||||
def start(self):
|
||||
"""Startet den XML-RPC Server."""
|
||||
proginit.logger.debug("enter SaveXMLRPCServer.start()")
|
||||
|
||||
if self.fut is None:
|
||||
self.server_bind()
|
||||
self.server_activate()
|
||||
@@ -53,8 +56,12 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
|
||||
else:
|
||||
raise RuntimeError("savexmlrpcservers can only be started once")
|
||||
|
||||
proginit.logger.debug("leave SaveXMLRPCServer.start()")
|
||||
|
||||
def stop(self):
|
||||
"""Stoppt den XML-RPC Server."""
|
||||
proginit.logger.debug("enter SaveXMLRPCServer.stop()")
|
||||
|
||||
if self.fut is not None:
|
||||
self.shutdown()
|
||||
self.tpe.shutdown()
|
||||
@@ -62,6 +69,8 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
|
||||
else:
|
||||
raise RuntimeError("save xml rpc server was not started")
|
||||
|
||||
proginit.logger.debug("leave SaveXMLRPCServer.stop()")
|
||||
|
||||
|
||||
class SaveXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
|
||||
|
||||
@@ -75,7 +84,7 @@ class SaveXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
|
||||
return False
|
||||
|
||||
# IP-Adresse prüfen
|
||||
int_acl = SaveXMLRPCServer.aclmgr.get_acllevel(self.address_string())
|
||||
int_acl = self.server.aclmgr.get_acllevel(self.address_string())
|
||||
if int_acl >= 0:
|
||||
return True
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user