- Fix -tkinter subpackage
- Bump PKGNAME

ok fgsch@
This commit is contained in:
alek 2005-03-03 22:23:56 +00:00
parent 9df2e2b83d
commit 8d985aab06
3 changed files with 124 additions and 3 deletions

View File

@ -1,8 +1,8 @@
# $OpenBSD: Makefile,v 1.9 2004/11/16 02:10:56 espie Exp $
# $OpenBSD: Makefile,v 1.10 2005/03/03 22:23:56 alek Exp $
VERSION= 2.2
PATCHLEVEL= .3
PKG_PATCHLEVEL= p1
PKG_PATCHLEVEL= p2
.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "sparc64"
PATCH_LIST= patch-* sup64-*

View File

@ -0,0 +1,69 @@
$OpenBSD: patch-Lib_SimpleXMLRPCServer_py,v 1.1 2005/03/03 22:23:56 alek Exp $
--- Lib/SimpleXMLRPCServer.py.orig Sat Sep 29 06:54:33 2001
+++ Lib/SimpleXMLRPCServer.py Fri Feb 18 14:16:05 2005
@@ -161,7 +161,8 @@ class SimpleXMLRPCRequestHandler(BaseHTT
try:
func = _resolve_dotted_attribute(
self.server.instance,
- method
+ method,
+ self.allow_dotted_names
)
except AttributeError:
pass
@@ -178,11 +179,20 @@ class SimpleXMLRPCRequestHandler(BaseHTT
BaseHTTPServer.BaseHTTPRequestHandler.log_request(self, code, size)
-def _resolve_dotted_attribute(obj, attr):
+def _resolve_dotted_attribute(obj, attr, allow_dotted_names=True):
"""Resolves a dotted attribute name to an object. Raises
an AttributeError if any attribute in the chain starts with a '_'.
+
+ If the optional allow_dotted_names argument is false, dots are not
+ supported and this function operates similar to getattr(obj, attr).
"""
- for i in attr.split('.'):
+
+ if allow_dotted_names:
+ attrs = attr.split('.')
+ else:
+ attrs = [attr]
+
+ for i in attrs:
if i.startswith('_'):
raise AttributeError(
'attempt to access private attribute "%s"' % i
@@ -206,7 +216,7 @@ class SimpleXMLRPCServer(SocketServer.TC
self.instance = None
SocketServer.TCPServer.__init__(self, addr, requestHandler)
- def register_instance(self, instance):
+ def register_instance(self, instance, allow_dotted_names=False):
"""Registers an instance to respond to XML-RPC requests.
Only one instance can be installed at a time.
@@ -225,9 +235,23 @@ class SimpleXMLRPCServer(SocketServer.TC
If a registered function matches a XML-RPC request, then it
will be called instead of the registered instance.
+
+ If the optional allow_dotted_names argument is true and the
+ instance does not have a _dispatch method, method names
+ containing dots are supported and resolved, as long as none of
+ the name segments start with an '_'.
+
+ *** SECURITY WARNING: ***
+
+ Enabling the allow_dotted_names options allows intruders
+ to access your module's global variables and may allow
+ intruders to execute arbitrary code on your machine. Only
+ use this option on a secure, closed network.
+
"""
self.instance = instance
+ self.allow_dotted_names = allow_dotted_names
def register_function(self, function, name = None):
"""Registers a function to respond to XML-RPC requests.

View File

@ -1,4 +1,56 @@
@comment $OpenBSD: PLIST-tkinter,v 1.5 2004/09/18 10:07:26 espie Exp $
@comment $OpenBSD: PLIST-tkinter,v 1.6 2005/03/03 22:23:56 alek Exp $
@option no-default-conflict
@conflict python-tkinter->=2.2,<2.3
lib/python2.2/lib-dynload/_tkinter.so
lib/python2.2/lib-tk/
lib/python2.2/lib-tk/Canvas.py
lib/python2.2/lib-tk/Canvas.pyc
lib/python2.2/lib-tk/Canvas.pyo
lib/python2.2/lib-tk/Dialog.py
lib/python2.2/lib-tk/Dialog.pyc
lib/python2.2/lib-tk/Dialog.pyo
lib/python2.2/lib-tk/FileDialog.py
lib/python2.2/lib-tk/FileDialog.pyc
lib/python2.2/lib-tk/FileDialog.pyo
lib/python2.2/lib-tk/FixTk.py
lib/python2.2/lib-tk/FixTk.pyc
lib/python2.2/lib-tk/FixTk.pyo
lib/python2.2/lib-tk/ScrolledText.py
lib/python2.2/lib-tk/ScrolledText.pyc
lib/python2.2/lib-tk/ScrolledText.pyo
lib/python2.2/lib-tk/SimpleDialog.py
lib/python2.2/lib-tk/SimpleDialog.pyc
lib/python2.2/lib-tk/SimpleDialog.pyo
lib/python2.2/lib-tk/Tix.py
lib/python2.2/lib-tk/Tix.pyc
lib/python2.2/lib-tk/Tix.pyo
lib/python2.2/lib-tk/Tkconstants.py
lib/python2.2/lib-tk/Tkconstants.pyc
lib/python2.2/lib-tk/Tkconstants.pyo
lib/python2.2/lib-tk/Tkdnd.py
lib/python2.2/lib-tk/Tkdnd.pyc
lib/python2.2/lib-tk/Tkdnd.pyo
lib/python2.2/lib-tk/Tkinter.py
lib/python2.2/lib-tk/Tkinter.pyc
lib/python2.2/lib-tk/Tkinter.pyo
lib/python2.2/lib-tk/tkColorChooser.py
lib/python2.2/lib-tk/tkColorChooser.pyc
lib/python2.2/lib-tk/tkColorChooser.pyo
lib/python2.2/lib-tk/tkCommonDialog.py
lib/python2.2/lib-tk/tkCommonDialog.pyc
lib/python2.2/lib-tk/tkCommonDialog.pyo
lib/python2.2/lib-tk/tkFileDialog.py
lib/python2.2/lib-tk/tkFileDialog.pyc
lib/python2.2/lib-tk/tkFileDialog.pyo
lib/python2.2/lib-tk/tkFont.py
lib/python2.2/lib-tk/tkFont.pyc
lib/python2.2/lib-tk/tkFont.pyo
lib/python2.2/lib-tk/tkMessageBox.py
lib/python2.2/lib-tk/tkMessageBox.pyc
lib/python2.2/lib-tk/tkMessageBox.pyo
lib/python2.2/lib-tk/tkSimpleDialog.py
lib/python2.2/lib-tk/tkSimpleDialog.pyc
lib/python2.2/lib-tk/tkSimpleDialog.pyo
lib/python2.2/lib-tk/turtle.py
lib/python2.2/lib-tk/turtle.pyc
lib/python2.2/lib-tk/turtle.pyo