mercurial/hgweb/server.py
changeset 4870 8f430b1b3025
parent 4868 192cd95c2ba8
child 4871 d787d9ad67cc
equal deleted inserted replaced
4869:be591b740e0f 4870:8f430b1b3025
    35     def writelines(self, seq):
    35     def writelines(self, seq):
    36         for msg in seq:
    36         for msg in seq:
    37             self.handler.log_error("HG error:  %s", msg)
    37             self.handler.log_error("HG error:  %s", msg)
    38 
    38 
    39 class _hgwebhandler(object, BaseHTTPServer.BaseHTTPRequestHandler):
    39 class _hgwebhandler(object, BaseHTTPServer.BaseHTTPRequestHandler):
       
    40 
       
    41     url_scheme = 'http'
       
    42     
    40     def __init__(self, *args, **kargs):
    43     def __init__(self, *args, **kargs):
    41         self.protocol_version = 'HTTP/1.1'
    44         self.protocol_version = 'HTTP/1.1'
    42         BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kargs)
    45         BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kargs)
    43 
    46 
    44     def log_error(self, format, *args):
    47     def log_error(self, format, *args):
   102             hval = hval.replace('\n', '').strip()
   105             hval = hval.replace('\n', '').strip()
   103             if hval:
   106             if hval:
   104                 env[hkey] = hval
   107                 env[hkey] = hval
   105         env['SERVER_PROTOCOL'] = self.request_version
   108         env['SERVER_PROTOCOL'] = self.request_version
   106         env['wsgi.version'] = (1, 0)
   109         env['wsgi.version'] = (1, 0)
   107         env['wsgi.url_scheme'] = 'http'
   110         env['wsgi.url_scheme'] = type(self).url_scheme
   108         env['wsgi.input'] = self.rfile
   111         env['wsgi.input'] = self.rfile
   109         env['wsgi.errors'] = _error_logger(self)
   112         env['wsgi.errors'] = _error_logger(self)
   110         env['wsgi.multithread'] = isinstance(self.server,
   113         env['wsgi.multithread'] = isinstance(self.server,
   111                                              SocketServer.ThreadingMixIn)
   114                                              SocketServer.ThreadingMixIn)
   112         env['wsgi.multiprocess'] = isinstance(self.server,
   115         env['wsgi.multiprocess'] = isinstance(self.server,
   166             self.length = self.length - len(data)
   169             self.length = self.length - len(data)
   167         self.wfile.write(data)
   170         self.wfile.write(data)
   168         self.wfile.flush()
   171         self.wfile.flush()
   169 
   172 
   170 class _shgwebhandler(_hgwebhandler):
   173 class _shgwebhandler(_hgwebhandler):
       
   174 
       
   175     url_scheme = 'https'
       
   176     
   171     def setup(self):
   177     def setup(self):
   172         self.connection = self.request
   178         self.connection = self.request
   173         self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
   179         self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
   174         self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)
   180         self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)
   175 
   181