mercurial/hgweb/server.py
changeset 2434 a2df85adface
parent 2404 ffc3b2f1ab6a
child 2505 01b856927970
equal deleted inserted replaced
2433:d09da6fc1061 2434:a2df85adface
    25         path, query = uri, ''
    25         path, query = uri, ''
    26     return urllib.unquote(path), query
    26     return urllib.unquote(path), query
    27 
    27 
    28 class _hgwebhandler(object, BaseHTTPServer.BaseHTTPRequestHandler):
    28 class _hgwebhandler(object, BaseHTTPServer.BaseHTTPRequestHandler):
    29     def __init__(self, *args, **kargs):
    29     def __init__(self, *args, **kargs):
       
    30         self.protocol_version = 'HTTP/1.1'
    30         BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kargs)
    31         BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kargs)
    31 
    32 
    32     def log_error(self, format, *args):
    33     def log_error(self, format, *args):
    33         errorlog = self.server.errorlog
    34         errorlog = self.server.errorlog
    34         errorlog.write("%s - - [%s] %s\n" % (self.address_string(),
    35         errorlog.write("%s - - [%s] %s\n" % (self.address_string(),
    83                 accept = accept + line[7:].split(',')
    84                 accept = accept + line[7:].split(',')
    84         env['HTTP_ACCEPT'] = ','.join(accept)
    85         env['HTTP_ACCEPT'] = ','.join(accept)
    85 
    86 
    86         req = hgrequest(self.rfile, self.wfile, env)
    87         req = hgrequest(self.rfile, self.wfile, env)
    87         self.send_response(200, "Script output follows")
    88         self.send_response(200, "Script output follows")
    88         self.server.make_and_run_handler(req)
    89         self.close_connection = self.server.make_and_run_handler(req)
    89 
    90 
    90 def create_server(ui, repo):
    91 def create_server(ui, repo):
    91     use_threads = True
    92     use_threads = True
    92 
    93 
    93     def openlog(opt, default):
    94     def openlog(opt, default):
   133                 hgwebobj = self.repoviewmaker(repo.__class__(repo.ui,
   134                 hgwebobj = self.repoviewmaker(repo.__class__(repo.ui,
   134                                                              repo.origroot))
   135                                                              repo.origroot))
   135             else:
   136             else:
   136                 raise hg.RepoError(_('no repo found'))
   137                 raise hg.RepoError(_('no repo found'))
   137             hgwebobj.run(req)
   138             hgwebobj.run(req)
       
   139             return req.will_close
   138 
   140 
   139     class IPv6HTTPServer(MercurialHTTPServer):
   141     class IPv6HTTPServer(MercurialHTTPServer):
   140         address_family = getattr(socket, 'AF_INET6', None)
   142         address_family = getattr(socket, 'AF_INET6', None)
   141 
   143 
   142         def __init__(self, *args, **kwargs):
   144         def __init__(self, *args, **kwargs):