Ejemplo n.º 1
0
Archivo: index.php Proyecto: rik/tuxedo
     if (!$client_ip) {
         $client_ip = $_SERVER['REMOTE_ADDR'];
     }
     $client_region = getRegionFromIP($client_ip);
     $fallback_region = getFallbackRegion($client_region);
     $use_this_region = throttleGeoIPRegion($client_region);
     $region_id = false;
     if ($use_this_region && $client_region) {
         $region_id = $client_region;
     } else {
         if (!$use_this_region && $fallback_region) {
             $region_id = $fallback_region;
         }
     }
     if ($region_id) {
         $mirrors = $sdo->get("\n                        SELECT\n                            mirror_mirrors.id,\n                            baseurl,\n                            rating\n                        FROM \n                            mirror_mirrors\n                        JOIN\n                            mirror_location_mirror_map ON mirror_mirrors.id = mirror_location_mirror_map.mirror_id\n                        LEFT JOIN\n                            mirror_lmm_lang_exceptions AS lang_exc ON (mirror_location_mirror_map.id = lang_exc.location_mirror_map_id AND NOT lang_exc.language = '%s')\n                        INNER JOIN\n                            geoip_mirror_region_map ON (geoip_mirror_region_map.mirror_id = mirror_mirrors.id)\n                        WHERE\n                            mirror_location_mirror_map.location_id = %d AND\n                            geoip_mirror_region_map.region_id = %d AND\n                            mirror_mirrors.active='1' AND \n                            mirror_location_mirror_map.active ='1' \n                        ORDER BY rating", array($where_lang, $location['id'], $client_region), MYSQL_ASSOC, 'id');
     }
 }
 // If we're here we've fallen back to global
 $fallback_global = getGlobalFallbackProhibited($client_region);
 if (empty($mirrors) && !$fallback_global) {
     // either no region chosen or no mirror found in the given region
     $mirrors = $sdo->get("\n                    SELECT\n                        mirror_mirrors.id,\n                        baseurl,\n                        rating\n                    FROM \n                        mirror_mirrors,\n                        mirror_location_mirror_map\n                    LEFT JOIN\n                        mirror_lmm_lang_exceptions AS lang_exc ON (mirror_location_mirror_map.id = lang_exc.location_mirror_map_id AND NOT lang_exc.language = '%s')\n                    WHERE\n                        mirror_mirrors.id = mirror_location_mirror_map.mirror_id AND\n                        mirror_location_mirror_map.location_id = %d AND\n                        mirror_mirrors.active='1' AND \n                        mirror_location_mirror_map.active ='1' \n                    ORDER BY rating", array($where_lang, $location['id']), MYSQL_ASSOC, 'id');
 }
 $mirrors_rand = array();
 $sum = 0;
 foreach ($mirrors as $buf) {
     $mirrors_rand[$buf['id']] = $buf['rating'];
     $sum += $buf['rating'];
 }
 $mirror_rand_id = getRandElement($mirrors_rand, $sum);