xmlrpclib for python 2.2; initial checkin
diff --git a/Demo/xmlrpc/xmlrpcserver.py b/Demo/xmlrpc/xmlrpcserver.py
new file mode 100644
index 0000000..fa30419
--- /dev/null
+++ b/Demo/xmlrpc/xmlrpcserver.py
@@ -0,0 +1,75 @@
+#
+# XML-RPC SERVER
+# $Id$
+#
+# a simple XML-RPC server for Python
+#
+# History:
+# 1999-02-01 fl  added to xmlrpclib distribution
+#
+# written by Fredrik Lundh, January 1999.
+#
+# Copyright (c) 1999 by Secret Labs AB.
+# Copyright (c) 1999 by Fredrik Lundh.
+#
+# fredrik@pythonware.com
+# http://www.pythonware.com
+#
+# --------------------------------------------------------------------
+# Permission to use, copy, modify, and distribute this software and
+# its associated documentation for any purpose and without fee is
+# hereby granted.  This software is provided as is.
+# --------------------------------------------------------------------
+#
+
+import SocketServer, BaseHTTPServer
+import xmlrpclib
+import sys
+
+class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
+
+    def do_POST(self):
+        try:
+            # get arguments
+            data = self.rfile.read(int(self.headers["content-length"]))
+            params, method = xmlrpclib.loads(data)
+
+            # generate response
+            try:
+                response = self.call(method, params)
+                # wrap response in a singleton tuple
+                response = (response,)
+            except:
+                # report exception back to server
+                response = xmlrpclib.dumps(
+                    xmlrpclib.Fault(1, "%s:%s" % (sys.exc_type, sys.exc_value))
+                    )
+            else:
+                response = xmlrpclib.dumps(
+                    response,
+                    methodresponse=1
+                    )
+        except:
+            # internal error, report as HTTP server error
+            self.send_response(500)
+            self.end_headers()
+        else:
+            # got a valid XML RPC response
+            self.send_response(200)
+            self.send_header("Content-type", "text/xml")
+            self.send_header("Content-length", str(len(response)))
+            self.end_headers()
+            self.wfile.write(response)
+
+            # shut down the connection (from Skip Montanaro)
+            self.wfile.flush()
+            self.connection.shutdown(1)
+
+    def call(self, method, params):
+        # override this method to implement RPC methods
+        print "CALL", method, params
+        return params
+
+if __name__ == '__main__':
+    server = SocketServer.TCPServer(('', 8000), RequestHandler)
+    server.serve_forever()