]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Fix bug 10504: match download's sourceurl mangling in, updxlrator
authorJustin Luth <jluth@mail.com>
Fri, 29 Dec 2017 14:12:27 +0000 (17:12 +0300)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 7 Jan 2018 19:27:47 +0000 (19:27 +0000)
Updatexlrator stores its files in a hash of the URL.

The download utility mangles the URL for [+/~], but
the updxlrator only does it for [/]. Thus, download
stores the result as one hash, and updxlrator looks for it
with a different hash. The result is that the file is
re-downloaded every time by both the client, and updxlrator.

This is fixed by making updxlrator mangle the url in the
same way as the downloader. apt-get install g++ would
be a good test for this.

Signed-off-by: Justin Luth  <jluth@mail.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/updxlrator/updxlrator

index 2ddc6d8e4425d133d2673c7bc913949723d23970..b728902f6d5207805f730f076fe390f92bdfd0fe 100644 (file)
@@ -345,7 +345,9 @@ sub check_cache
        my $sourceurl=$_[0];
        my $cfmirror=$_[4];
 
        my $sourceurl=$_[0];
        my $cfmirror=$_[4];
 
+       $sourceurl =~ s@\%2b@+@ig;
        $sourceurl =~ s@\%2f@/@ig;
        $sourceurl =~ s@\%2f@/@ig;
+       $sourceurl =~ s@\%7e@~@ig;
        $updfile = substr($sourceurl,rindex($sourceurl,"/")+1);
        $updfile =~ s@\%20@ @ig;
 
        $updfile = substr($sourceurl,rindex($sourceurl,"/")+1);
        $updfile =~ s@\%20@ @ig;