What about just adding a CNAME (Alias) DNS entries for repo.tinycorelinux.net pointing to:
[countrycode].repo.tinycorelinux.net
Then have multiple A/CNAME records for each mirror in that country.
For example:
$ORIGIN tinycorelinux.net.
; ...
;
$ORIGIN repo.tinycorelinux.net
; catchall wildcard
* IN CNAME mirror.repo.tinycorelinux.org. ; ALL MIRRORS FOR ROUND ROBIN SELECTION
;
; primary rsync server
rsync IN CNAME distro.ibiblio.org ; Primary rsync repository on ibiblio.org
;
; mirrors cname list.
mirror IN CNAME us.repo.tinycorelinux.net. ; United States Mirrors
mirror IN CNAME cn.repo.tinycorelinux.net. ; China Mirrors
mirror IN CNAME id.repo.tinycorelinux.net. ; Indonesia Mirrors
mirror IN CNAME nl.repo.timycorelinux.net. ; Netherlands Mirrors
mirror IN CNAME ru.repo.tinycorelinux.net. ; Russian Mirrors
mirror IN CNAME au.repo.tinycorelinux.net. ; Austrailian Mirrors
;
; country specific mirrors
us IN CNAME www.gtlib.gatech.edu. ; United States
cn IN CNAME mirrors.163.com. ; China
id IN CNAME kambing.ui.ac.id. ; Indonesia
nl IN CNAME ftp.nluug.nl. ; Netherlands
nl IN CNAME ftp.vim.org. ; Netherlands
ru IN CNAME l4u-00.jinr.ru. ; Russia
au IN CNAME tinycore.mirror.uber.com.au ; Australia
Require each repo participant to accept HTTP-GET Requests destined for:
repo.tinycorelinux.net/ and [countrycode].repo.tinycorelinux.net/
For those with local repos, let them provide a CNAME to tclrepo in thier DNS root zone.
This could be further expanded for logical connectivity by modifying the tce-load Logic binary. Upon attempt to connect to the repo to perform an install or whatnot, simply pull the DNS bindings for 'tclrepo' and 'repo.tinycorelinux.net' send 2 pings out to each host and utilize which ever has the least average latency utilize for the rest of that session. If a local repo exists, it will win. If a file download fails on one, roll to the next DNS Record, but when moving to a different file, always start back at the least latent repo.
Then just let the systems acting as external facing mirrors run rsync pointed to rsync.repo.tinycorelinux.com to maintain sync of thier local repository.
This accomplishes two things:
- enforces those wanting to run local repos to utilize the public mirrors instead of the ibiblio repo.
- encourages people to run external facing mirrors.
- allows a local repo to provide extremely quick boot time when running term servers.
It might also be beneficial to provide logging data when a repo host/file is failing, by logging to a file locally and submitting that file via POST after completing the install. In priority to the primary repo.
The local repo owner could then decide if that should be sent on to the mirror upstream via some conf file.
Anyways.. just an idea... If this is something people would utilize and it doesn't conflict with the current concept as far as implementation goes, I'd be happy to put something together.