mercurial/httppeer.py
changeset 37321 e826fe7a08c7
parent 37320 39f7d4ee8bcd
child 37411 3e1688711efd
equal deleted inserted replaced
37320:39f7d4ee8bcd 37321:e826fe7a08c7
   133             f.seek(0)
   133             f.seek(0)
   134         self._index = 0
   134         self._index = 0
   135 
   135 
   136 class httppeer(wireproto.wirepeer):
   136 class httppeer(wireproto.wirepeer):
   137     def __init__(self, ui, path, url, opener):
   137     def __init__(self, ui, path, url, opener):
   138         self._ui = ui
   138         self.ui = ui
   139         self._path = path
   139         self._path = path
   140         self._url = url
   140         self._url = url
   141         self._caps = None
   141         self._caps = None
   142         self._urlopener = opener
   142         self._urlopener = opener
   143         # This is an its own attribute to facilitate extensions overriding
   143         # This is an its own attribute to facilitate extensions overriding
   148         for h in self._urlopener.handlers:
   148         for h in self._urlopener.handlers:
   149             h.close()
   149             h.close()
   150             getattr(h, "close_all", lambda: None)()
   150             getattr(h, "close_all", lambda: None)()
   151 
   151 
   152     def _openurl(self, req):
   152     def _openurl(self, req):
   153         if (self._ui.debugflag
   153         if (self.ui.debugflag
   154             and self._ui.configbool('devel', 'debug.peer-request')):
   154             and self.ui.configbool('devel', 'debug.peer-request')):
   155             dbg = self._ui.debug
   155             dbg = self.ui.debug
   156             line = 'devel-peer-request: %s\n'
   156             line = 'devel-peer-request: %s\n'
   157             dbg(line % '%s %s' % (req.get_method(), req.get_full_url()))
   157             dbg(line % '%s %s' % (req.get_method(), req.get_full_url()))
   158             hgargssize = None
   158             hgargssize = None
   159 
   159 
   160             for header, value in sorted(req.header_items()):
   160             for header, value in sorted(req.header_items()):
   177                 dbg(line % '  %d bytes of data' % length)
   177                 dbg(line % '  %d bytes of data' % length)
   178 
   178 
   179             start = util.timer()
   179             start = util.timer()
   180 
   180 
   181         ret = self._urlopener.open(req)
   181         ret = self._urlopener.open(req)
   182         if self._ui.configbool('devel', 'debug.peer-request'):
   182         if self.ui.configbool('devel', 'debug.peer-request'):
   183             dbg(line % '  finished in %.4f seconds (%s)'
   183             dbg(line % '  finished in %.4f seconds (%s)'
   184                 % (util.timer() - start, ret.code))
   184                 % (util.timer() - start, ret.code))
   185         return ret
   185         return ret
   186 
   186 
   187     # Begin of ipeerconnection interface.
   187     # Begin of ipeerconnection interface.
   188 
       
   189     @util.propertycache
       
   190     def ui(self):
       
   191         return self._ui
       
   192 
   188 
   193     def url(self):
   189     def url(self):
   194         return self._path
   190         return self._path
   195 
   191 
   196     def local(self):
   192     def local(self):