Author: poeml Date: 2009-02-24 09:37:05 -0700 (Tue, 24 Feb 2009) New Revision: 6561 Modified: trunk/tools/download-redirector-v2/BUGS trunk/tools/download-redirector-v2/mod_mirrorbrain/mod_mirrorbrain.c Log: mod_mirrorbrain: - fix selection of mirrors into the metalinks, which didn't respect the *_only flags so far. Modified: trunk/tools/download-redirector-v2/BUGS =================================================================== --- trunk/tools/download-redirector-v2/BUGS 2009-02-24 16:33:01 UTC (rev 6560) +++ trunk/tools/download-redirector-v2/BUGS 2009-02-24 16:37:05 UTC (rev 6561) _at_@ -20,8 +20,6 @@ * check if the Vary header on Accept is added on all requests! -* country_only mirrors show up in metalinks - * mod_geoip should be required as mod_form - and Apache should check at startup. On the other hand, it could be optional, because mod_mirrorbrain also works without mod_geoip (distributing requests world-wide, according to Modified: trunk/tools/download-redirector-v2/mod_mirrorbrain/mod_mirrorbrain.c =================================================================== --- trunk/tools/download-redirector-v2/mod_mirrorbrain/mod_mirrorbrain.c 2009-02-24 16:33:01 UTC (rev 6560) +++ trunk/tools/download-redirector-v2/mod_mirrorbrain/mod_mirrorbrain.c 2009-02-24 16:37:05 UTC (rev 6561) _at_@ -1251,14 +1251,14 @@ /* same AS? */ else if ((strcmp(new->as, as) == 0) - && (new->prefix_only != 1)) { + && !new->prefix_only) { *(void **)apr_array_push(mirrors_same_as) = new; } /* same country? */ else if ((strcasecmp(new->country_code, country_code) == 0) - && (new->as_only != 1) - && (new->prefix_only != 1)) { + && !new->as_only + && !new->prefix_only) { *(void **)apr_array_push(mirrors_same_country) = new; } _at_@ -1282,19 +1282,19 @@ /* to be actually considered for this group, the mirror must be willing * to take redirects from foreign country */ else if ((strcasecmp(new->region, continent_code) == 0) - && (new->country_only != 1) - && (new->as_only != 1) - && (new->prefix_only != 1)) { + && !new->country_only + && !new->as_only + && !new->prefix_only) { *(void **)apr_array_push(mirrors_same_region) = new; } /* to be considered as "worldwide" mirror, it must be willing * to take redirects from foreign regions. * (N.B. region_only implies country_only) */ - else if ((new->region_only != 1) - && (new->country_only != 1) - && (new->as_only != 1) - && (new->prefix_only != 1)) { + else if (!new->region_only + && !new->country_only + && !new->as_only + && !new->prefix_only) { *(void **)apr_array_push(mirrors_elsewhere) = new; } _at_@ -1629,8 +1629,10 @@ (strcmp(as, "--") == 0) ? "unknown" : as); mirrorp = (mirror_entry_t **)mirrors_same_as->elts; for (i = 0; i < mirrors_same_as->nelts; i++) { + mirror = mirrorp[i]; + if (mirror->prefix_only) + continue; if (pref) pref--; - mirror = mirrorp[i]; ap_rprintf(r, " <url type=\"http\" location=\"%s\" preference=\"%d\">%s%s</url>\n", mirror->country_code, pref, _at_@ -1642,8 +1644,10 @@ (strcmp(country_code, "--") == 0) ? "unknown" : country_code); mirrorp = (mirror_entry_t **)mirrors_same_country->elts; for (i = 0; i < mirrors_same_country->nelts; i++) { + mirror = mirrorp[i]; + if (mirror->prefix_only || mirror->as_only) + continue; if (pref) pref--; - mirror = mirrorp[i]; ap_rprintf(r, " <url type=\"http\" location=\"%s\" preference=\"%d\">%s%s</url>\n", mirror->country_code, pref, _at_@ -1654,8 +1658,10 @@ (strcmp(continent_code, "--") == 0) ? "unknown" : continent_code); mirrorp = (mirror_entry_t **)mirrors_same_region->elts; for (i = 0; i < mirrors_same_region->nelts; i++) { + mirror = mirrorp[i]; + if (mirror->prefix_only || mirror->as_only || mirror->country_only) + continue; if (pref) pref--; - mirror = mirrorp[i]; ap_rprintf(r, " <url type=\"http\" location=\"%s\" preference=\"%d\">%s%s</url>\n", mirror->country_code, pref, _at_@ -1665,8 +1671,12 @@ ap_rputs("\n <!-- Mirrors in the rest of the world: -->\n", r); mirrorp = (mirror_entry_t **)mirrors_elsewhere->elts; for (i = 0; i < mirrors_elsewhere->nelts; i++) { + mirror = mirrorp[i]; + if (mirror->prefix_only || mirror->as_only + || mirror->country_only || mirror->region_only) { + continue; + } if (pref) pref--; - mirror = mirrorp[i]; ap_rprintf(r, " <url type=\"http\" location=\"%s\" preference=\"%d\">%s%s</url>\n", mirror->country_code, pref, _______________________________________________ Opensuse-svn mailing list Opensuse-svn_at_forge.novell.com http://forge.novell.com/mailman/listinfo/opensuse-svn _______________________________________________ mirrorbrain-commits mailing list Note: To remove yourself from this list, send a mail with the content unsubscribe to the address mirrorbrain-commits-request_at_mirrorbrain.orgReceived on Tue Feb 24 2009 - 16:37:35 GMT
This archive was generated by hypermail 2.3.0 : Thu Mar 25 2010 - 19:18:16 GMT