head	1.1;
access;
symbols
	pkgsrc-2026Q1:1.1.0.174
	pkgsrc-2026Q1-base:1.1
	pkgsrc-2025Q4:1.1.0.172
	pkgsrc-2025Q4-base:1.1
	pkgsrc-2025Q3:1.1.0.170
	pkgsrc-2025Q3-base:1.1
	pkgsrc-2025Q2:1.1.0.168
	pkgsrc-2025Q2-base:1.1
	pkgsrc-2025Q1:1.1.0.166
	pkgsrc-2025Q1-base:1.1
	pkgsrc-2024Q4:1.1.0.164
	pkgsrc-2024Q4-base:1.1
	pkgsrc-2024Q3:1.1.0.162
	pkgsrc-2024Q3-base:1.1
	pkgsrc-2024Q2:1.1.0.160
	pkgsrc-2024Q2-base:1.1
	pkgsrc-2024Q1:1.1.0.158
	pkgsrc-2024Q1-base:1.1
	pkgsrc-2023Q4:1.1.0.156
	pkgsrc-2023Q4-base:1.1
	pkgsrc-2023Q3:1.1.0.154
	pkgsrc-2023Q3-base:1.1
	pkgsrc-2023Q2:1.1.0.152
	pkgsrc-2023Q2-base:1.1
	pkgsrc-2023Q1:1.1.0.150
	pkgsrc-2023Q1-base:1.1
	pkgsrc-2022Q4:1.1.0.148
	pkgsrc-2022Q4-base:1.1
	pkgsrc-2022Q3:1.1.0.146
	pkgsrc-2022Q3-base:1.1
	pkgsrc-2022Q2:1.1.0.144
	pkgsrc-2022Q2-base:1.1
	pkgsrc-2022Q1:1.1.0.142
	pkgsrc-2022Q1-base:1.1
	pkgsrc-2021Q4:1.1.0.140
	pkgsrc-2021Q4-base:1.1
	pkgsrc-2021Q3:1.1.0.138
	pkgsrc-2021Q3-base:1.1
	pkgsrc-2021Q2:1.1.0.136
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.134
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.132
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.130
	pkgsrc-2020Q3-base:1.1
	pkgsrc-2020Q2:1.1.0.126
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.106
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.128
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.124
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.122
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.120
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.118
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.116
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.114
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.112
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.110
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.108
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.104
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.102
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.100
	pkgsrc-2016Q4-base:1.1
	pkgsrc-2016Q3:1.1.0.98
	pkgsrc-2016Q3-base:1.1
	pkgsrc-2016Q2:1.1.0.96
	pkgsrc-2016Q2-base:1.1
	pkgsrc-2016Q1:1.1.0.94
	pkgsrc-2016Q1-base:1.1
	pkgsrc-2015Q4:1.1.0.92
	pkgsrc-2015Q4-base:1.1
	pkgsrc-2015Q3:1.1.0.90
	pkgsrc-2015Q3-base:1.1
	pkgsrc-2015Q2:1.1.0.88
	pkgsrc-2015Q2-base:1.1
	pkgsrc-2015Q1:1.1.0.86
	pkgsrc-2015Q1-base:1.1
	pkgsrc-2014Q4:1.1.0.84
	pkgsrc-2014Q4-base:1.1
	pkgsrc-2014Q3:1.1.0.82
	pkgsrc-2014Q3-base:1.1
	pkgsrc-2014Q2:1.1.0.80
	pkgsrc-2014Q2-base:1.1
	pkgsrc-2014Q1:1.1.0.78
	pkgsrc-2014Q1-base:1.1
	pkgsrc-2013Q4:1.1.0.76
	pkgsrc-2013Q4-base:1.1
	pkgsrc-2013Q3:1.1.0.74
	pkgsrc-2013Q3-base:1.1
	pkgsrc-2013Q2:1.1.0.72
	pkgsrc-2013Q2-base:1.1
	pkgsrc-2013Q1:1.1.0.70
	pkgsrc-2013Q1-base:1.1
	pkgsrc-2012Q4:1.1.0.68
	pkgsrc-2012Q4-base:1.1
	pkgsrc-2012Q3:1.1.0.66
	pkgsrc-2012Q3-base:1.1
	pkgsrc-2012Q2:1.1.0.64
	pkgsrc-2012Q2-base:1.1
	pkgsrc-2012Q1:1.1.0.62
	pkgsrc-2012Q1-base:1.1
	pkgsrc-2011Q4:1.1.0.60
	pkgsrc-2011Q4-base:1.1
	pkgsrc-2011Q3:1.1.0.58
	pkgsrc-2011Q3-base:1.1
	pkgsrc-2011Q2:1.1.0.56
	pkgsrc-2011Q2-base:1.1
	pkgsrc-2011Q1:1.1.0.54
	pkgsrc-2011Q1-base:1.1
	pkgsrc-2010Q4:1.1.0.52
	pkgsrc-2010Q4-base:1.1
	pkgsrc-2010Q3:1.1.0.50
	pkgsrc-2010Q3-base:1.1
	pkgsrc-2010Q2:1.1.0.48
	pkgsrc-2010Q2-base:1.1
	pkgsrc-2010Q1:1.1.0.46
	pkgsrc-2010Q1-base:1.1
	pkgsrc-2009Q4:1.1.0.44
	pkgsrc-2009Q4-base:1.1
	pkgsrc-2009Q3:1.1.0.42
	pkgsrc-2009Q3-base:1.1
	pkgsrc-2009Q2:1.1.0.40
	pkgsrc-2009Q2-base:1.1
	pkgsrc-2009Q1:1.1.0.38
	pkgsrc-2009Q1-base:1.1
	pkgsrc-2008Q4:1.1.0.36
	pkgsrc-2008Q4-base:1.1
	pkgsrc-2008Q3:1.1.0.34
	pkgsrc-2008Q3-base:1.1
	cube-native-xorg:1.1.0.32
	cube-native-xorg-base:1.1
	pkgsrc-2008Q2:1.1.0.30
	pkgsrc-2008Q2-base:1.1
	cwrapper:1.1.0.28
	pkgsrc-2008Q1:1.1.0.26
	pkgsrc-2008Q1-base:1.1
	pkgsrc-2007Q4:1.1.0.24
	pkgsrc-2007Q4-base:1.1
	pkgsrc-2007Q3:1.1.0.22
	pkgsrc-2007Q3-base:1.1
	pkgsrc-2007Q2:1.1.0.20
	pkgsrc-2007Q2-base:1.1
	pkgsrc-2007Q1:1.1.0.18
	pkgsrc-2007Q1-base:1.1
	pkgsrc-2006Q4:1.1.0.16
	pkgsrc-2006Q4-base:1.1
	pkgsrc-2006Q3:1.1.0.14
	pkgsrc-2006Q3-base:1.1
	pkgsrc-2006Q2:1.1.0.12
	pkgsrc-2006Q2-base:1.1
	pkgsrc-2006Q1:1.1.0.10
	pkgsrc-2006Q1-base:1.1
	pkgsrc-2005Q4:1.1.0.8
	pkgsrc-2005Q4-base:1.1
	pkgsrc-2005Q3:1.1.0.6
	pkgsrc-2005Q3-base:1.1
	pkgsrc-2005Q2:1.1.0.4
	pkgsrc-2005Q2-base:1.1
	pkgsrc-2005Q1:1.1.0.2
	pkgsrc-2005Q1-base:1.1;
locks; strict;
comment	@# @;


1.1
date	2005.02.04.17.24.16;	author drochner;	state Exp;
branches;
next	;


desc
@@


1.1
log
@update to last snapshot, and apply a (homegrown) patch which tries to
work around the limitations of the security-patched SimpleXMLRPCServer
@
text
@$NetBSD$

--- kenosis/node.py.orig	2005-02-04 17:40:36.000000000 +0100
+++ kenosis/node.py
@@@@ -309,7 +309,8 @@@@ class NullHandler:
 class NodeRpcFrontend:
     def __init__(self, nodeKernel):
         self.nodeKernel_ = nodeKernel
-        self.kenosis = RpcServerAdapter(
+	self.services = {}
+        self.services["kenosis"] = RpcServerAdapter(
             adaptee=NodeRpcFilter(nodeKernel=nodeKernel),
             nodeKernel=self.nodeKernel_, serviceName="kenosis")
 
@@@@ -319,22 +320,28 @@@@ class NodeRpcFrontend:
     def registerNamedHandler(self, name, handler):
         if nameIsPrivate(name=name):
             raise Exception("invalid handler: %s" % name)
-        setattr(
-            self, name,
-            RpcServerAdapter(adaptee=handler, nodeKernel=self.nodeKernel_, serviceName=name))
+        self.services[name] = \
+            RpcServerAdapter(adaptee=handler, nodeKernel=self.nodeKernel_, serviceName=name)
+
+    def _dispatch(self, name, args):
+	(sname, rest) = name.split('.', 1)
+	fn = SimpleXMLRPCServer.resolve_dotted_attribute(
+		self.services[sname], rest)
+	return fn(*args)
+
 
     def _listMethods(self):
         ret = []
-        for attrName in dir(self):
-            attr = getattr(self, attrName)
+        for attrName in keys(self.services):
+            attr = self.services[attrName]
             if isinstance(attr, RpcServerAdapter): 
                 for methodName in attr._listPublicMethod():
                     ret.append("%s.%s" % (attrName, methodName))
         return ret
 
     def _methodHelp(self, method):
-        for attrName in dir(self):
-            attr = getattr(self, attrName)
+        for attrName in keys(self.services):
+            attr = self.services[attrName]
             if isinstance(attr, RpcServerAdapter): 
                 for methodName in attr._listPublicMethod():
                     n = "%s.%s" % (attrName, methodName)
@
