View Issue Details

IDProjectCategoryView StatusLast Update
0003261The Dark ModTDM Updaterpublic15.05.2013 11:34
Reportertels Assigned Totels  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionSVN 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003261: Updater and in-game downloader choke on some HTTP responses
DescriptionThe updater and the in-game downloader only handle 200 OK responses, and seem to treat anything else as an error.

This means when the server sends a code like 301, 302, 303, 307 or 308, the new URL is not followed, instead the download is either aborted, or handled incorrectly (by saving the accompaning HTML code as f.i. tdm_mirrors.txt and then not being able to parse it).

Inaddition, if the server sends a 404 (not found), the client might choose the saem server again (if there are f.i. only 2 download mirrors for one file, there is a 50% chance this happens).

This can cause "chains" of 404 to hit one server, e.g. the client tries multiple times to download the same file from the same server.
Steps To ReproduceChange the return code on a server to 30X (I can setup a "permanent URL" tha always devilvers one of these for testing purposes if that helps) and watch the download fail.

This is important if you want f.i. temp. redirect all traffic to a new server.
Additional InformationAny 301, 302, 303, 307 and 308 should result in the client just going to the new URL (we can for now ignore temporarily or not temporarily and just tread it always as temporarily).

Any 404 should result in that server not being choosen again until you start TDM or the updater anew (e.g. cache this response during run-time for this URL and don't try it again).
TagsNo tags attached.

Relationships

related to 0003417 confirmed Downloading Too Late says it failed, but it actually succeeded 

Activities

tels

tels

15.05.2013 11:34

reporter   ~0005468

Both the ingame downloader and the updater now support redirects via curl, revision #5792.

The in-game downloader does not suffer from the 404 issue, because it builds a list of the given URLs and then tries them all only once in a specific order.

The 404 issue can still happen for the updater, but its a minor issue - I'll let someone else deal with this.

Issue History

Date Modified Username Field Change
01.11.2012 15:17 tels New Issue
15.05.2013 09:03 tels Relationship added related to 0003417
15.05.2013 09:25 tels Assigned To => tels
15.05.2013 09:25 tels Status new => assigned
15.05.2013 09:25 tels Product Version => SVN
15.05.2013 09:25 tels Target Version => TDM 2.00
15.05.2013 11:34 tels Note Added: 0005468
15.05.2013 11:34 tels Status assigned => resolved
15.05.2013 11:34 tels Fixed in Version => TDM 2.00
15.05.2013 11:34 tels Resolution open => fixed