Opened 9 years ago

Closed 7 years ago

#463 closed defect (fixed)

Fix mirror script, add local mirror support

Reported by: zzz Owned by: str4d
Priority: major Milestone:
Component: www/i2p Version: 0.8.4
Keywords: censorship Cc:
Parent Tickets: Sensitive: no

Description

Mirrors all point to mirror.i2p2.de which redirects to Google code.

Two problems:

1) When mirror.i2p2.de is down, the download links don't work no matter what mirror you use

2) Google blocks certain countries

We need a better way to mirror and to serve all countries.

Subtickets

Change History (7)

comment:1 Changed 8 years ago by mrwhite

Component: unspecifiedwww
Keywords: censorship added
Milestone: 0.8.70.8.12

comment:2 Changed 8 years ago by welterde

Milestone: 0.8.12

comment:3 Changed 7 years ago by zzz

launchpad may be used as another mirror. Need a way to have user select mirror.

comment:4 Changed 7 years ago by str4d

The mirror code was integrated into the website revamp (#807) in changeset:c9da2094332f5310db830adf9b7838888be81fe9 and changeset:633c80d2081f5dce7fd6f088a7bada7abb42f14d - download links go to a mirror selection page which lists all configured mirrors for all configured protocols. The actual mirror links themselves are internal links which redirect to the external source. So any download link on the website will work as long as the website is reachable (which it would have to be anyway to get the download link).

The "any" link for each protocol currently picks a random mirror out of all the mirrors for that protocol. Would it be worth using the lang setting of the user to narrow down the pool of mirrors that are randomly picked from (falling back to all mirrors if there are no country-specific mirrors available)? That would require converting the lang codes into a set of country codes (e.g. "en" → ["us", "uk", "au"] etc.), which might require an internal dictionary.

comment:5 Changed 7 years ago by str4d

Owner: changed from welterde to str4d
Status: newassigned

comment:6 Changed 7 years ago by str4d

Status: assignedaccepted

comment:7 Changed 7 years ago by zzz

Resolution: fixed
Status: acceptedclosed

After additional changes today, looks good. Now awaiting #807 for the website to go live. Closing this one while #807 remains open.


Notes on implementation and possible future enhancements:

<zzz> still confused. why aren't the links direct though? why go thru the server and redirect?
<str4d> Because that's what welterde had set up.
<str4d> And it also gives us some stats about what mirrors users are using.
<zzz> ok. doesn't seem necessary but not a big deal either
<str4d> (i.e. by looking at what redirect URLs are requested, we can determine how the mirrors are being used)
<str4d> Mostly there though because welterde had the code mostly ready for it. I *could* rewrite it to generate direct links, but given that what we have works I don't think it's a problem.
<str4d> Anything else required to satisfy #463?
<zzz> I think that does it. It's nice to imagine some sort of fancy auto-selector but I don't think we have nearly enough info to know what is blocked where.
<zzz> Users that can't get to google almost certainly know that, so just indicating that on the d/l page, together with the mirror page you've developed, is sufficient
<zzz> nice job
<str4d> Thanks _
<str4d> Now we just need weltende to magically have free time :D
<str4d> (afk now, could you close the ticket zzz? Thanks)
<zzz> sure

Note: See TracTickets for help on using tickets.