comparison mercurial/keepalive.py @ 34466:1232f7fa00c3

cleanup: use urllibcompat for renamed methods on urllib request objects Differential Revision: https://phab.mercurial-scm.org/D891
author Augie Fackler <augie@google.com>
date Sun, 01 Oct 2017 12:14:21 -0400
parents 5326e4ef1dab
children 03112a2c9c83
comparison
equal deleted inserted replaced
34465:80d4681150b9 34466:1232f7fa00c3
91 import threading 91 import threading
92 92
93 from .i18n import _ 93 from .i18n import _
94 from . import ( 94 from . import (
95 pycompat, 95 pycompat,
96 urllibcompat,
96 util, 97 util,
97 ) 98 )
98 99
99 httplib = util.httplib 100 httplib = util.httplib
100 urlerr = util.urlerr 101 urlerr = util.urlerr
204 #### Transaction Execution 205 #### Transaction Execution
205 def http_open(self, req): 206 def http_open(self, req):
206 return self.do_open(HTTPConnection, req) 207 return self.do_open(HTTPConnection, req)
207 208
208 def do_open(self, http_class, req): 209 def do_open(self, http_class, req):
209 host = req.get_host() 210 host = urllibcompat.gethost(req)
210 if not host: 211 if not host:
211 raise urlerr.urlerror('no host given') 212 raise urlerr.urlerror('no host given')
212 213
213 try: 214 try:
214 h = self._cm.get_ready_conn(host) 215 h = self._cm.get_ready_conn(host)
315 skipheaders = {} 316 skipheaders = {}
316 for n in ('host', 'accept-encoding'): 317 for n in ('host', 'accept-encoding'):
317 if n in headers: 318 if n in headers:
318 skipheaders['skip_' + n.replace('-', '_')] = 1 319 skipheaders['skip_' + n.replace('-', '_')] = 1
319 try: 320 try:
320 if req.has_data(): 321 if urllibcompat.hasdata(req):
321 data = req.get_data() 322 data = urllibcompat.getdata(req)
322 h.putrequest( 323 h.putrequest(
323 req.get_method(), req.get_selector(), **skipheaders) 324 req.get_method(), urllibcompat.getselector(req),
325 **skipheaders)
324 if 'content-type' not in headers: 326 if 'content-type' not in headers:
325 h.putheader('Content-type', 327 h.putheader('Content-type',
326 'application/x-www-form-urlencoded') 328 'application/x-www-form-urlencoded')
327 if 'content-length' not in headers: 329 if 'content-length' not in headers:
328 h.putheader('Content-length', '%d' % len(data)) 330 h.putheader('Content-length', '%d' % len(data))
329 else: 331 else:
330 h.putrequest( 332 h.putrequest(
331 req.get_method(), req.get_selector(), **skipheaders) 333 req.get_method(), urllibcompat.getselector(req),
334 **skipheaders)
332 except socket.error as err: 335 except socket.error as err:
333 raise urlerr.urlerror(err) 336 raise urlerr.urlerror(err)
334 for k, v in headers.items(): 337 for k, v in headers.items():
335 h.putheader(k, v) 338 h.putheader(k, v)
336 h.endheaders() 339 h.endheaders()
337 if req.has_data(): 340 if urllibcompat.hasdata(req):
338 h.send(data) 341 h.send(data)
339 342
340 class HTTPHandler(KeepAliveHandler, urlreq.httphandler): 343 class HTTPHandler(KeepAliveHandler, urlreq.httphandler):
341 pass 344 pass
342 345