[Yum-devel] [PATCH] User-Agent: add simultaneous connection count and limit
Zdeněk Pavlas
zpavlas at redhat.com
Wed May 23 09:12:28 UTC 2012
Internal 'user_agent_x' option is appended to the user agent.
Parallel downloader sets this before starting a connection,
so server logs contain something like:
User-Agent: urlgrabber/3.9.1 yum/3.4.3; connection 1 of 2
(at most 2 connections allowed, this is the 1st one)
---
urlgrabber/grabber.py | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index c5470b1..4764468 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -919,6 +919,7 @@ class URLGrabberOptions:
self.close_connection = 0
self.range = None
self.user_agent = 'urlgrabber/%s' % __version__
+ self.user_agent_x = ''
self.ip_resolve = None
self.keepalive = 1
self.proxies = None
@@ -1314,7 +1315,7 @@ class PyCurlFileObject(object):
if DEBUG:
self.curl_obj.setopt(pycurl.VERBOSE, True)
if opts.user_agent:
- self.curl_obj.setopt(pycurl.USERAGENT, opts.user_agent)
+ self.curl_obj.setopt(pycurl.USERAGENT, opts.user_agent + opts.user_agent_x)
if opts.ip_resolve:
# Default is: IPRESOLVE_WHATEVER
ipr = opts.ip_resolve.lower()
@@ -2009,7 +2010,7 @@ class _ExternalDownloader:
'url', 'filename',
'timeout', 'close_connection', 'keepalive',
'throttle', 'bandwidth', 'range', 'reget',
- 'user_agent', 'http_headers', 'ftp_headers',
+ 'user_agent', 'user_agent_x', 'http_headers', 'ftp_headers',
'proxy', 'prefix', 'username', 'password',
'ssl_ca_cert',
'ssl_cert', 'ssl_cert_type',
@@ -2138,6 +2139,7 @@ def parallel_wait(meter = 'text'):
host_con[key] = host_con.get(key, 0) + 1
opts.tries = tries
opts.progress_obj = meter and meter.newMeter()
+ opts.user_agent_x = '; connection %d of %d' % (host_con[key], limit)
if DEBUG: DEBUG.info('attempt %i/%s: %s', opts.tries, opts.retry, opts.url)
dl.start(opts)
--
1.7.4.4
More information about the Yum-devel
mailing list