diff options
| author | P. Christeas <p_christ@hol.gr> | 2009-08-31 16:29:56 +0300 |
|---|---|---|
| committer | P. Christeas <p_christ@hol.gr> | 2009-08-31 16:29:56 +0300 |
| commit | 0a838fba3aab924cdac524d27fcc22dee9e91c20 (patch) | |
| tree | 4afa2b2edb530ab7cbf7232f42ef3a7aa05753a6 /bin/service/http_server.py | |
| parent | a267ef5d05e952df01e7f74c321ce77ae33a76ff (diff) | |
Fix https transports, certificates etc.
Now we can serve https: the send_error() must be fixed so that
content-lenth is specified, certificates are configurable and
connections get properly shutdown so that the client won't wait
forever.
bzr revid: p_christ@hol.gr-20090831132956-00atxsfcy3qkdw4j
Diffstat (limited to 'bin/service/http_server.py')
| -rw-r--r-- | bin/service/http_server.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/bin/service/http_server.py b/bin/service/http_server.py index 76cf5b2fc91..74a0f572771 100644 --- a/bin/service/http_server.py +++ b/bin/service/http_server.py @@ -88,6 +88,12 @@ class SecureMultiHandler2(SecureMultiHTTPHandler): def log_message(self, format, *args): netsvc.Logger().notifyChannel('https',netsvc.LOG_DEBUG,format % args) + def getcert_fnames(self): + tc = tools.config + fcert = tc.get_misc('httpsd','sslcert', 'ssl/server.cert') + fkey = tc.get_misc('httpsd','sslkey', 'ssl/server.key') + return (fcert,fkey) + class HttpDaemon(threading.Thread, netsvc.Server): def __init__(self, interface, port): threading.Thread.__init__(self) @@ -141,6 +147,23 @@ class HttpSDaemon(threading.Thread, netsvc.Server): netsvc.Logger().notifyChannel('httpd-ssl', netsvc.LOG_CRITICAL, "Error occur when starting the server daemon: %s" % (e,)) raise + def attach(self, path, gw): + pass + + def stop(self): + self.running = False + if os.name != 'nt': + self.server.socket.shutdown( hasattr(socket, 'SHUT_RDWR') and socket.SHUT_RDWR or 2 ) + self.server.socket.close() + + def run(self): + #self.server.register_introspection_functions() + + self.running = True + while self.running: + self.server.handle_request() + return True + httpd = None httpsd = None @@ -175,7 +198,7 @@ def reg_http_service(hts, secure_only = False): return import SimpleXMLRPCServer -class XMLRPCRequestHandler(netsvc.OpenERPDispatcher,SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): +class XMLRPCRequestHandler(netsvc.OpenERPDispatcher,FixSendError,SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): rpc_paths = [] protocol_version = 'HTTP/1.1' def _dispatch(self, method, params): |
