You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-proxy/http-replicator/files/http-replicator-3-unique-ca...

32 lines
1.2 KiB

Author: Matthew Ogilvie
Date: Sun Dec 28 20:14:15 2014 -0700
honor x-unique-cache-name header in flat mode, if present
This allows things like different versions of the adobe-flash
downloader that are given different names in a flat download
directory (like in gentoo) to work in an http-replicator cache
as well. As long as the fetcher passes the custom name through
the experimental header...
See gentoo bug # 442874
diff --git a/http-replicator b/http-replicator
index 19ae427..befe9f2 100755
--- a/http-replicator
+++ b/http-replicator
@@ -311,7 +311,12 @@ class HttpClient (Http):
self.log.info('requested range: bytes %s to %s' % self.range) # log request
head = ''
- for tail in self.path.split('/'): # iterate over items in path
+ adjUrlPath = self.path
+ if not self.direct and self.flat:
+ uniqueCacheName = body.get('x-unique-cache-name')
+ if uniqueCacheName:
+ adjUrlPath = uniqueCacheName
+ for tail in adjUrlPath.split('/'): # iterate over items in path
head = os.path.join(head, tail) # build target path
if head in self.alias: # path up till now hos an alias
head = self.alias[head] # replace by alias