Index: smart/fetcher.py =================================================================== --- smart/fetcher.py (revision 896) +++ smart/fetcher.py (working copy) @@ -68,6 +68,7 @@ self._maxactivedownloads = 0 self.time = 0 self._eta = 0 + self._httpheaders = {} def reset(self): self._items.clear() @@ -401,6 +402,12 @@ return True, None return True + def setHttpHeaders(self, http_headers): + self._httpheaders = http_headers + + def getHttpHeaders(self): + return self._httpheaders + class FetchItem(object): def __init__(self, fetcher, url, mirror): @@ -1171,6 +1178,12 @@ else: partsize = 0 + extraheaders = fetcher.getHttpHeaders() + if extraheaders: + for key in extraheaders.keys(): + value = extraheaders[key] + opener.addheader(key, "%s" % value) + remote = opener.open(url.original) if hasattr(remote, "errcode") and remote.errcode == 416: