Commit 740e8d67 authored by Sidnei da Silva's avatar Sidnei da Silva

- Make it so webdav-source server is distinguishable from the default http server in the ZMI and event.log
parent e0de78c7
...@@ -380,8 +380,8 @@ class zhttp_channel(http_channel): ...@@ -380,8 +380,8 @@ class zhttp_channel(http_channel):
class zhttp_server(http_server): class zhttp_server(http_server):
"http server" "http server"
SERVER_IDENT='Zope/%s ZServer/%s' % (ZOPE_VERSION,ZSERVER_VERSION) SERVER_IDENT = 'Zope/%s ZServer/%s' % (ZOPE_VERSION, ZSERVER_VERSION)
server_protocol = 'HTTP'
channel_class = zhttp_channel channel_class = zhttp_channel
shutup=0 shutup=0
...@@ -389,16 +389,17 @@ class zhttp_server(http_server): ...@@ -389,16 +389,17 @@ class zhttp_server(http_server):
self.shutup=1 self.shutup=1
http_server.__init__(self, ip, port, resolver, logger_object) http_server.__init__(self, ip, port, resolver, logger_object)
self.shutup=0 self.shutup=0
self.log_info('HTTP server started at %s\n' self.log_info('%s server started at %s\n'
'\tHostname: %s\n\tPort: %d' % ( '\tHostname: %s\n\tPort: %d' % (
time.ctime(time.time()), self.server_protocol,
self.server_name, time.ctime(time.time()),
self.server_port self.server_name,
)) self.server_port
))
def clean_shutdown_control(self,phase,time_in_this_phase): def clean_shutdown_control(self,phase,time_in_this_phase):
if phase==2: if phase==2:
self.log_info('closing HTTP to new connections') self.log_info('closing %s to new connections' % self.server_protocol)
self.close() self.close()
def log_info(self, message, type='info'): def log_info(self, message, type='info'):
...@@ -418,3 +419,6 @@ class zhttp_server(http_server): ...@@ -418,3 +419,6 @@ class zhttp_server(http_server):
# override asyncore limits for nt's listen queue size # override asyncore limits for nt's listen queue size
self.accepting = 1 self.accepting = 1
return self.socket.listen (num) return self.socket.listen (num)
class zwebdav_server(zhttp_server):
server_protocol = 'WebDAV'
...@@ -58,27 +58,29 @@ class ServerFactory: ...@@ -58,27 +58,29 @@ class ServerFactory:
class HTTPServerFactory(ServerFactory): class HTTPServerFactory(ServerFactory):
def __init__(self, section): def __init__(self, section):
from ZServer import HTTPServer
if not section.address: if not section.address:
raise ZConfig.ConfigurationError( raise ZConfig.ConfigurationError(
"No 'address' settings found " "No 'address' settings found "
"within the 'http-server' or 'webdav-source-server' section") "within the 'http-server' or 'webdav-source-server' section")
ServerFactory.__init__(self, section.address) ServerFactory.__init__(self, section.address)
self.server_class = HTTPServer.zhttp_server
self.force_connection_close = section.force_connection_close self.force_connection_close = section.force_connection_close
# webdav-source-server sections won't have webdav_source_clients: # webdav-source-server sections won't have webdav_source_clients:
webdav_clients = getattr(section, "webdav_source_clients", None) webdav_clients = getattr(section, "webdav_source_clients", None)
self.webdav_source_clients = webdav_clients self.webdav_source_clients = webdav_clients
def create(self): def create(self):
from ZServer import HTTPServer
from ZServer.AccessLogger import access_logger from ZServer.AccessLogger import access_logger
handler = self.createHandler() handler = self.createHandler()
handler._force_connection_close = self.force_connection_close handler._force_connection_close = self.force_connection_close
if self.webdav_source_clients: if self.webdav_source_clients:
handler.set_webdav_source_clients(self.webdav_source_clients) handler.set_webdav_source_clients(self.webdav_source_clients)
server = HTTPServer.zhttp_server(ip=self.ip, port=self.port, server = self.server_class(ip=self.ip, port=self.port,
resolver=self.dnsresolver, resolver=self.dnsresolver,
logger_object=access_logger) logger_object=access_logger)
server.install_handler(handler) server.install_handler(handler)
return server return server
...@@ -88,6 +90,12 @@ class HTTPServerFactory(ServerFactory): ...@@ -88,6 +90,12 @@ class HTTPServerFactory(ServerFactory):
class WebDAVSourceServerFactory(HTTPServerFactory): class WebDAVSourceServerFactory(HTTPServerFactory):
def __init__(self, section):
from ZServer import HTTPServer
HTTPServerFactory.__init__(self, section)
self.server_class = HTTPServer.zwebdav_server
def createHandler(self): def createHandler(self):
from ZServer.WebDAVSrcHandler import WebDAVSrcHandler from ZServer.WebDAVSrcHandler import WebDAVSrcHandler
return WebDAVSrcHandler(self.module, '', self.cgienv) return WebDAVSrcHandler(self.module, '', self.cgienv)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment