Kompatibilität zu Python 3.2 (wheezy) hergestellt

ACL Prüfung jetzt gegen client_address[0]
Bei Ordnerupload wurden \ von Windowspfaden nicht umgewandelt
This commit is contained in:
2018-04-07 19:22:07 +02:00
parent aea6ef768d
commit 9d07808f82
6 changed files with 12 additions and 11 deletions

View File

@@ -125,7 +125,7 @@ Static Methods</h3>
<a NAME="SaveXMLRPCServer.__init__" ID="SaveXMLRPCServer.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer (Constructor)</h3>
<b>SaveXMLRPCServer</b>(<i>addr, logRequests=True, allow_none=False, use_builtin_types=False, ipacl=None</i>)
<b>SaveXMLRPCServer</b>(<i>addr, logRequests=True, allow_none=False, ipacl=None</i>)
<p>
Init SaveXMLRPCServer class.
</p><dl>

View File

@@ -105,4 +105,4 @@ xrpcserver.SaveXMLRPCServer.isAlive?4()
xrpcserver.SaveXMLRPCServer.register_function?4(acl_level, function, name=None)
xrpcserver.SaveXMLRPCServer.start?4()
xrpcserver.SaveXMLRPCServer.stop?4()
xrpcserver.SaveXMLRPCServer?1(addr, logRequests=True, allow_none=False, use_builtin_types=False, ipacl=None)
xrpcserver.SaveXMLRPCServer?1(addr, logRequests=True, allow_none=False, ipacl=None)

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project revpipyload -->
<!-- Saved: 2018-04-05, 14:57:19 -->
<!-- Saved: 2018-04-07, 19:21:46 -->
<!-- Copyright (C) 2018 Sven Sager, akira@narux.de -->
<Project version="5.1">
<Language>en_US</Language>
@@ -9,7 +9,7 @@
<ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>Console</ProjectType>
<Description>Dieser Loader wird über das Init-System geladen und führt das angegebene Pythonprogramm aus. Es ist für den RevolutionPi gedacht um automatisch das SPS-Programm zu starten.</Description>
<Version>0.6.4</Version>
<Version>0.6.5</Version>
<Author>Sven Sager</Author>
<Email>akira@narux.de</Email>
<Eol index="1"/>

View File

@@ -50,7 +50,7 @@ from time import asctime
from xmlrpc.client import Binary
from xrpcserver import SaveXMLRPCServer
pyloadversion = "0.6.4"
pyloadversion = "0.6.5"
class RevPiPyLoad():
@@ -743,6 +743,9 @@ class RevPiPyLoad():
if filedata is None or filename is None:
return False
# Windowszeichen prüfen
filename = filename.replace("\\", "/")
# Absoluten Pfad prüfen
dirname = os.path.join(self.plcworkdir, os.path.dirname(filename))
if self.plcworkdir not in os.path.abspath(dirname):

View File

@@ -17,8 +17,7 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
"""Erstellt einen erweiterten XMLRPCServer."""
def __init__(
self, addr, logRequests=True, allow_none=False,
use_builtin_types=False, ipacl=None):
self, addr, logRequests=True, allow_none=False, ipacl=None):
"""Init SaveXMLRPCServer class.
@param ipacl AclManager <class 'IpAclManager'>"""
proginit.logger.debug("enter SaveXMLRPCServer.__init__()")
@@ -34,7 +33,6 @@ class SaveXMLRPCServer(SimpleXMLRPCServer):
allow_none=allow_none,
encoding="utf-8",
bind_and_activate=False,
use_builtin_types=use_builtin_types
)
# Klassenvariablen
@@ -128,13 +126,13 @@ class SaveXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
# ACL für IP-Adresse übernehmen
self.server.requestacl = \
self.server.aclmgr.get_acllevel(self.address_string())
self.server.aclmgr.get_acllevel(self.client_address[0])
if self.server.requestacl >= 0:
return True
else:
self.send_error(
401, "IP '{}' not allowed".format(self.address_string())
401, "IP '{}' not allowed".format(self.client_address[0])
)
return False

View File

@@ -27,7 +27,7 @@ setup(
license="LGPLv3",
name="revpipyload",
version="0.6.4",
version="0.6.5",
scripts=["data/revpipyload"],