Date: Monday, April 23, 2007 @ 00:09:00 Author: dan Path: /home/cvs-pacman/pacman-lib/scripts Modified: rankmirrors (1.8 -> 1.9) rankmirrors: download first 50KB of DB to get more reliable numbers Scott Horowitz <stonecrest@gmail.com> -------------+ rankmirrors | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) Index: pacman-lib/scripts/rankmirrors diff -u pacman-lib/scripts/rankmirrors:1.8 pacman-lib/scripts/rankmirrors:1.9 --- pacman-lib/scripts/rankmirrors:1.8 Sun Mar 11 23:02:58 2007 +++ pacman-lib/scripts/rankmirrors Mon Apr 23 00:09:00 2007 @@ -55,7 +55,8 @@ def talkToServer(serverUrl): opener = urllib2.build_opener() - tmp = opener.open(serverUrl).read() + # retrieve first 50,000 bytes only + tmp = opener.open(serverUrl).read(50000) def getFuncToTime(serverUrl): return lambda : talkToServer(serverUrl) @@ -139,8 +140,23 @@ elif options.times: print ' * ', sys.stdout.flush() + + # add *.db.tar.gz to server name. the repo name is parsed + # from the mirror url; it is the third (or fourth) dir + # from the end, where the url is http://foo/bar/REPO/os/arch + try: + splitted2 = serverUrl.split('/') + if serverUrl[-1] != '/': + repoName = splitted2[-3] + dbFileName = '/' + repoName + '.db.tar.gz' + else: + repoName = splitted2[-4] + dbFileName = repoName + '.db.tar.gz' + except: + dbFileName = '' + try: - serverToTime[serverUrl] = timeCmd(getFuncToTime(serverUrl)) + serverToTime[serverUrl] = timeCmd(getFuncToTime(serverUrl + dbFileName)) if options.verbose: try: print "%.2f" % serverToTime[serverUrl]