summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/python/files')
-rw-r--r--dev-lang/python/files/digest-python-2.2.3-r6 (renamed from dev-lang/python/files/digest-python-2.2.3-r5)0
-rw-r--r--dev-lang/python/files/digest-python-2.3.3-r11
-rw-r--r--dev-lang/python/files/digest-python-2.3.3-r2 (renamed from dev-lang/python/files/digest-python-2.3.3)0
-rw-r--r--dev-lang/python/files/digest-python-2.3.4-r1 (renamed from dev-lang/python/files/digest-python-2.3.4)0
-rw-r--r--dev-lang/python/files/digest-python-2.4-r1 (renamed from dev-lang/python/files/digest-python-2.4)0
-rw-r--r--dev-lang/python/files/python-2.2.3-xmlrpc.patch98
-rw-r--r--dev-lang/python/files/python-2.3-xmlrpc.patch121
-rw-r--r--dev-lang/python/files/python-2.4-xmlrpc.patch121
8 files changed, 340 insertions, 1 deletions
diff --git a/dev-lang/python/files/digest-python-2.2.3-r5 b/dev-lang/python/files/digest-python-2.2.3-r6
index 283c3d783859..283c3d783859 100644
--- a/dev-lang/python/files/digest-python-2.2.3-r5
+++ b/dev-lang/python/files/digest-python-2.2.3-r6
diff --git a/dev-lang/python/files/digest-python-2.3.3-r1 b/dev-lang/python/files/digest-python-2.3.3-r1
deleted file mode 100644
index 8c0e033775a0..000000000000
--- a/dev-lang/python/files/digest-python-2.3.3-r1
+++ /dev/null
@@ -1 +0,0 @@
-MD5 70ada9f65742ab2c77a96bcd6dffd9b1 Python-2.3.3.tar.bz2 7195007
diff --git a/dev-lang/python/files/digest-python-2.3.3 b/dev-lang/python/files/digest-python-2.3.3-r2
index 8c0e033775a0..8c0e033775a0 100644
--- a/dev-lang/python/files/digest-python-2.3.3
+++ b/dev-lang/python/files/digest-python-2.3.3-r2
diff --git a/dev-lang/python/files/digest-python-2.3.4 b/dev-lang/python/files/digest-python-2.3.4-r1
index b7cd9dae4d5c..b7cd9dae4d5c 100644
--- a/dev-lang/python/files/digest-python-2.3.4
+++ b/dev-lang/python/files/digest-python-2.3.4-r1
diff --git a/dev-lang/python/files/digest-python-2.4 b/dev-lang/python/files/digest-python-2.4-r1
index f096fae6214a..f096fae6214a 100644
--- a/dev-lang/python/files/digest-python-2.4
+++ b/dev-lang/python/files/digest-python-2.4-r1
diff --git a/dev-lang/python/files/python-2.2.3-xmlrpc.patch b/dev-lang/python/files/python-2.2.3-xmlrpc.patch
new file mode 100644
index 000000000000..d5eecf5b5676
--- /dev/null
+++ b/dev-lang/python/files/python-2.2.3-xmlrpc.patch
@@ -0,0 +1,98 @@
+diff -c -r1.2 SimpleXMLRPCServer.py
+*** Lib/SimpleXMLRPCServer.py 29 Sep 2001 04:54:33 -0000 1.2
+--- Lib/SimpleXMLRPCServer.py 3 Feb 2005 05:34:18 -0000
+***************
+*** 161,167 ****
+ try:
+ func = _resolve_dotted_attribute(
+ self.server.instance,
+! method
+ )
+ except AttributeError:
+ pass
+--- 161,168 ----
+ try:
+ func = _resolve_dotted_attribute(
+ self.server.instance,
+! method,
+! self.allow_dotted_names
+ )
+ except AttributeError:
+ pass
+***************
+*** 178,188 ****
+ BaseHTTPServer.BaseHTTPRequestHandler.log_request(self, code, size)
+
+
+! def _resolve_dotted_attribute(obj, attr):
+ """Resolves a dotted attribute name to an object. Raises
+ an AttributeError if any attribute in the chain starts with a '_'.
+ """
+! for i in attr.split('.'):
+ if i.startswith('_'):
+ raise AttributeError(
+ 'attempt to access private attribute "%s"' % i
+--- 179,198 ----
+ BaseHTTPServer.BaseHTTPRequestHandler.log_request(self, code, size)
+
+
+! 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).
+ """
+!
+! 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,212 ****
+ self.instance = None
+ SocketServer.TCPServer.__init__(self, addr, requestHandler)
+
+! def register_instance(self, instance):
+ """Registers an instance to respond to XML-RPC requests.
+
+ Only one instance can be installed at a time.
+--- 216,222 ----
+ self.instance = None
+ SocketServer.TCPServer.__init__(self, addr, requestHandler)
+
+! 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,233 ****
+--- 235,257 ----
+
+ 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.
diff --git a/dev-lang/python/files/python-2.3-xmlrpc.patch b/dev-lang/python/files/python-2.3-xmlrpc.patch
new file mode 100644
index 000000000000..61f61f2d8391
--- /dev/null
+++ b/dev-lang/python/files/python-2.3-xmlrpc.patch
@@ -0,0 +1,121 @@
+diff -c -r1.7.8.1 SimpleXMLRPCServer.py
+*** Lib/SimpleXMLRPCServer.py 3 Oct 2004 23:23:00 -0000 1.7.8.1
+--- Lib/SimpleXMLRPCServer.py 3 Feb 2005 05:33:55 -0000
+***************
+*** 107,120 ****
+ import types
+ import os
+
+! def resolve_dotted_attribute(obj, attr):
+ """resolve_dotted_attribute(a, 'b.c.d') => a.b.c.d
+
+ Resolves a dotted attribute name to an object. Raises
+ an AttributeError if any attribute in the chain starts with a '_'.
+ """
+
+! for i in attr.split('.'):
+ if i.startswith('_'):
+ raise AttributeError(
+ 'attempt to access private attribute "%s"' % i
+--- 107,128 ----
+ import types
+ import os
+
+! def resolve_dotted_attribute(obj, attr, allow_dotted_names=True):
+ """resolve_dotted_attribute(a, 'b.c.d') => a.b.c.d
+
+ 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).
+ """
+
+! 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
+***************
+*** 156,162 ****
+ self.funcs = {}
+ self.instance = None
+
+! def register_instance(self, instance):
+ """Registers an instance to respond to XML-RPC requests.
+
+ Only one instance can be installed at a time.
+--- 164,170 ----
+ self.funcs = {}
+ self.instance = None
+
+! 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.
+***************
+*** 174,182 ****
+--- 182,204 ----
+
+ 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.
+***************
+*** 295,301 ****
+ try:
+ method = resolve_dotted_attribute(
+ self.instance,
+! method_name
+ )
+ except AttributeError:
+ pass
+--- 317,324 ----
+ try:
+ method = resolve_dotted_attribute(
+ self.instance,
+! method_name,
+! self.allow_dotted_names
+ )
+ except AttributeError:
+ pass
+***************
+*** 374,380 ****
+ try:
+ func = resolve_dotted_attribute(
+ self.instance,
+! method
+ )
+ except AttributeError:
+ pass
+--- 397,404 ----
+ try:
+ func = resolve_dotted_attribute(
+ self.instance,
+! method,
+! self.allow_dotted_names
+ )
+ except AttributeError:
+ pass
diff --git a/dev-lang/python/files/python-2.4-xmlrpc.patch b/dev-lang/python/files/python-2.4-xmlrpc.patch
new file mode 100644
index 000000000000..61f61f2d8391
--- /dev/null
+++ b/dev-lang/python/files/python-2.4-xmlrpc.patch
@@ -0,0 +1,121 @@
+diff -c -r1.7.8.1 SimpleXMLRPCServer.py
+*** Lib/SimpleXMLRPCServer.py 3 Oct 2004 23:23:00 -0000 1.7.8.1
+--- Lib/SimpleXMLRPCServer.py 3 Feb 2005 05:33:55 -0000
+***************
+*** 107,120 ****
+ import types
+ import os
+
+! def resolve_dotted_attribute(obj, attr):
+ """resolve_dotted_attribute(a, 'b.c.d') => a.b.c.d
+
+ Resolves a dotted attribute name to an object. Raises
+ an AttributeError if any attribute in the chain starts with a '_'.
+ """
+
+! for i in attr.split('.'):
+ if i.startswith('_'):
+ raise AttributeError(
+ 'attempt to access private attribute "%s"' % i
+--- 107,128 ----
+ import types
+ import os
+
+! def resolve_dotted_attribute(obj, attr, allow_dotted_names=True):
+ """resolve_dotted_attribute(a, 'b.c.d') => a.b.c.d
+
+ 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).
+ """
+
+! 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
+***************
+*** 156,162 ****
+ self.funcs = {}
+ self.instance = None
+
+! def register_instance(self, instance):
+ """Registers an instance to respond to XML-RPC requests.
+
+ Only one instance can be installed at a time.
+--- 164,170 ----
+ self.funcs = {}
+ self.instance = None
+
+! 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.
+***************
+*** 174,182 ****
+--- 182,204 ----
+
+ 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.
+***************
+*** 295,301 ****
+ try:
+ method = resolve_dotted_attribute(
+ self.instance,
+! method_name
+ )
+ except AttributeError:
+ pass
+--- 317,324 ----
+ try:
+ method = resolve_dotted_attribute(
+ self.instance,
+! method_name,
+! self.allow_dotted_names
+ )
+ except AttributeError:
+ pass
+***************
+*** 374,380 ****
+ try:
+ func = resolve_dotted_attribute(
+ self.instance,
+! method
+ )
+ except AttributeError:
+ pass
+--- 397,404 ----
+ try:
+ func = resolve_dotted_attribute(
+ self.instance,
+! method,
+! self.allow_dotted_names
+ )
+ except AttributeError:
+ pass