From 30326e340fbef934c7eb2ed1afbaab3b4d02ddaf Mon Sep 17 00:00:00 2001 From: Fabien Morin <fabien@nexedi.com> Date: Thu, 7 May 2009 12:30:09 +0000 Subject: [PATCH] fix some mistakes. Nothing is tested for this file This file will be removed because a syncml server will be integrated to erp5 git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26876 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5SyncML/ERP5SyncMLMobileServer.py | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/product/ERP5SyncML/ERP5SyncMLMobileServer.py b/product/ERP5SyncML/ERP5SyncMLMobileServer.py index 3d9e9aea06..10de4e4d80 100755 --- a/product/ERP5SyncML/ERP5SyncMLMobileServer.py +++ b/product/ERP5SyncML/ERP5SyncMLMobileServer.py @@ -20,15 +20,15 @@ class OptionParser(OptionParser): self.error("%s option not supplied" % option) -parser = OptionParser() -parser.add_option("--host", help="address of this small server (typically, it's the ip of this computer)") -parser.add_option("--publication", help="address of the publication (e.g. http://localhost:9080/erp5Serv)") -parser.add_option("-p", "--port", type="int", help="port used by this server (default is 1234)", default=1234) +cmd_parser = OptionParser() +cmd_parser.add_option("--host", help="address of this small server (typically, it's the ip of this computer)") +cmd_parser.add_option("--publication", help="address of the publication (e.g. http://localhost:9080/erp5Serv)") +cmd_parser.add_option("-p", "--port", type="int", help="port used by this server (default is 1234)", default=1234) -(options, args) = parser.parse_args() +(options, args) = cmd_parser.parse_args() -parser.check_required("--publication") -parser.check_required("--host") +cmd_parser.check_required("--publication") +cmd_parser.check_required("--host") @@ -54,6 +54,8 @@ syncml_server_url = 'http://%s:%s' % (Host, Port) #socket : sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) +sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # reuse the same socket + # if already open #END CONFIGURATION SECTION @@ -75,6 +77,9 @@ def xml2wbxml(xml): convert xml string to wbxml using a temporary file """ import os + + # XXX we must check at the begining if xml2wbxml is installed + # it seems that now there is a python biding for this : pywbxml f = open('/tmp/xml2wbxml', 'w') f.write(xml) f.close() @@ -138,7 +143,10 @@ def getClientUrl(text): find the client url in the text and return it """ document = etree.XML(text, parser=parser) + # XXX this xpath expression have to be rewrited in a generic way to handle + # namspace client_url = '%s' % document.xpath('string(//SyncHdr/Source/LocURI)') + # client_url = '%s' % document.xpath('string(//syncml:SyncHdr/syncml:Source/syncml:LocURI)', namespaces={'syncml':'SYNCML:SYNCML1.2'}) return client_url def sendResponse(text, to_url, client_url): @@ -157,7 +165,7 @@ def sendResponse(text, to_url, client_url): text = text.replace(client_url, syncml_server_url) print "text = ",text - to_encode['text'] = text + to_encode['text'] = text to_encode['sync_id'] = 'Person' headers = {'Content-type': 'application/vnd.syncml+xml'} -- 2.30.9