mercurial/hgweb/common.py
changeset 13570 617a87cb7eb2
parent 13444 75f5f312df5f
child 13599 0bef8f69c078
equal deleted inserted replaced
13569:3ab3b892d223 13570:617a87cb7eb2
    75             message = _statusmessage(code)
    75             message = _statusmessage(code)
    76         Exception.__init__(self, code, message)
    76         Exception.__init__(self, code, message)
    77         self.code = code
    77         self.code = code
    78         self.message = message
    78         self.message = message
    79         self.headers = headers
    79         self.headers = headers
       
    80 
       
    81 class continuereader(object):
       
    82     def __init__(self, f, write):
       
    83         self.f = f
       
    84         self._write = write
       
    85         self.continued = False
       
    86 
       
    87     def read(self, amt=-1):
       
    88         if not self.continued:
       
    89             self.continued = True
       
    90             self._write('HTTP/1.1 100 Continue\r\n\r\n')
       
    91         return self.f.read(amt)
       
    92 
       
    93     def __getattr__(self, attr):
       
    94         if attr in ('close', 'readline', 'readlines', '__iter__'):
       
    95             return getattr(self.f, attr)
       
    96         raise AttributeError()
    80 
    97 
    81 def _statusmessage(code):
    98 def _statusmessage(code):
    82     from BaseHTTPServer import BaseHTTPRequestHandler
    99     from BaseHTTPServer import BaseHTTPRequestHandler
    83     responses = BaseHTTPRequestHandler.responses
   100     responses = BaseHTTPRequestHandler.responses
    84     return responses.get(code, ('Error', 'Unknown error'))[0]
   101     return responses.get(code, ('Error', 'Unknown error'))[0]