|Subject:||Allow CPAN.pm to detect bad/old mirrors|
In the middle of November mirror.aarnet.edu.au, by far the most common Australian mirror, broke. It stopped syncing with the master site. And it was until 3 weeks later that I actually noticed, because I couldn't install something from the Recent list. It still hasn't been corrected. The oldest that a mirror should ever get is 9 days (one week, plus two more days to handle incorrect timezone settings and miscellania). One a mirror gets to 231 hours old, the CPAN client should flag it as old somehow (per-session, NOT saving it in the config) rotate the mirror to the end of the list of selected mirrors. Then, ONLY if all other mirrors in the list fail or are also old, should it try to pull files from the old mirror. By not saving the changes, if a month down the track the mirror resyncs, then the client will start to use it again. The data required to establish server age is easy to get. If you want to ignore this bug for now and consider it just a tracking module for me, please do. I'm developing parallel functionality to this (mirror autoselection) as part of writing the JSAN::Client module, and I hope to recycle some of this new functionality into CPAN.pm (and the 6CPAN client) down the line. But I thought I should leave it here to let you know I would like to do this.