mercurial/httppeer.py
changeset 25500 00ecc894138d
parent 25085 e05734cd7902
child 25660 328739ea70c3
equal deleted inserted replaced
25499:0fa964d6fd48 25500:00ecc894138d
    28     def __init__(self, ui, path):
    28     def __init__(self, ui, path):
    29         self.path = path
    29         self.path = path
    30         self.caps = None
    30         self.caps = None
    31         self.handler = None
    31         self.handler = None
    32         self.urlopener = None
    32         self.urlopener = None
       
    33         self.requestbuilder = None
    33         u = util.url(path)
    34         u = util.url(path)
    34         if u.query or u.fragment:
    35         if u.query or u.fragment:
    35             raise util.Abort(_('unsupported URL component: "%s"') %
    36             raise util.Abort(_('unsupported URL component: "%s"') %
    36                              (u.query or u.fragment))
    37                              (u.query or u.fragment))
    37 
    38 
    40 
    41 
    41         self.ui = ui
    42         self.ui = ui
    42         self.ui.debug('using %s\n' % self._url)
    43         self.ui.debug('using %s\n' % self._url)
    43 
    44 
    44         self.urlopener = url.opener(ui, authinfo)
    45         self.urlopener = url.opener(ui, authinfo)
       
    46         self.requestbuilder = urllib2.Request
    45 
    47 
    46     def __del__(self):
    48     def __del__(self):
    47         if self.urlopener:
    49         if self.urlopener:
    48             for h in self.urlopener.handlers:
    50             for h in self.urlopener.handlers:
    49                 h.close()
    51                 h.close()
   109             headers['Vary'] = ','.join(varyheaders)
   111             headers['Vary'] = ','.join(varyheaders)
   110         else:
   112         else:
   111             q += sorted(args.items())
   113             q += sorted(args.items())
   112         qs = '?%s' % urllib.urlencode(q)
   114         qs = '?%s' % urllib.urlencode(q)
   113         cu = "%s%s" % (self._url, qs)
   115         cu = "%s%s" % (self._url, qs)
   114         req = urllib2.Request(cu, data, headers)
   116         req = self.requestbuilder(cu, data, headers)
   115         if data is not None:
   117         if data is not None:
   116             self.ui.debug("sending %s bytes\n" % size)
   118             self.ui.debug("sending %s bytes\n" % size)
   117             req.add_unredirected_header('Content-Length', '%d' % size)
   119             req.add_unredirected_header('Content-Length', '%d' % size)
   118         try:
   120         try:
   119             resp = self.urlopener.open(req)
   121             resp = self.urlopener.open(req)