From: Michael Tremer Date: Mon, 3 Feb 2025 10:10:19 +0000 (+0000) Subject: mirrors: Use existing URLs to compose mirror URLs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c512c05f2231167d616762aa617fbea51e6d5aa;p=pbs.git mirrors: Use existing URLs to compose mirror URLs Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/mirrors.py b/src/buildservice/mirrors.py index 331116ef..bfa1e1a2 100644 --- a/src/buildservice/mirrors.py +++ b/src/buildservice/mirrors.py @@ -4,6 +4,7 @@ import asyncio import datetime import functools import logging +import os.path import random import socket import tornado.netutil @@ -154,12 +155,16 @@ class Mirror(database.Base, database.BackendMixin, database.SoftDeleteMixin): def url(self): return self.make_url() - def make_url(self, path=""): + def make_url(self, *paths): url = "https://%s%s/" % ( self.hostname, self.path ) + # Merge the path together + path = os.path.join(*paths) + + # Remove any leading slashes if path.startswith("/"): path = path[1:] diff --git a/src/web/repos.py b/src/web/repos.py index 434e6324..cf8f20bb 100644 --- a/src/web/repos.py +++ b/src/web/repos.py @@ -293,8 +293,7 @@ class MirrorlistHandler(base.NoAuthMixin, BaseHandler): "version" : 1, "mirrors" : [ { - "url" : urllib.parse.urljoin( - mirror.url, os.path.join("repos", repo.path, arch)), + "url" : mirror.make_url("repos", repo.path, arch), "location" : mirror.country_code, } for mirror in await self.backend.mirrors.get_mirrors_for_address(self.current_address)