View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005349 | The Dark Mod | Coding | public | 01.10.2020 05:03 | 01.12.2020 17:44 |
Reporter | stgatilov | Assigned To | stgatilov | ||
Priority | normal | Severity | tweak | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.08 | ||||
Target Version | TDM 2.09 | Fixed in Version | TDM 2.09 | ||
Summary | 0005349: Implement priorities and checksums for FM download mirrors. | ||||
Description | Some mirror owners can't handle too much traffic. It's better to choose random mirror according to weights specified in downloaded XML. Another thing is that downloader should verify checksum if XML file contains it. BTW, probably makes sense implement weighting in tdm_installer too. | ||||
Tags | No tags attached. | ||||
Here is how the XML looks now: <tdm> <availableMissions> <mission id="146" title="A Good Neighbor" releaseDate="2020-03-08" size="81.3" version="2" internalName="good" type="single" author="Amadeus"> <downloadLocation language="English" url="http://www.southquarter.com/tdm/fms/good.pk4" /> <downloadLocation language="English" url="http://bloodgate.com/mirrors/tdm/fms/good.pk4" /> <downloadLocation language="English" url="http://darkmod.taaaki.za.net/fms/good.pk4" /> <downloadLocation language="English" url="http://www.fidcal.com/darkuser/missions/good.pk4" /> </mission> <mission id="101" title="A House of Locked Secrets" releaseDate="2015-05-29" size="195.6" version="1" internalName="ahouseoflockedsecrets" type="multi" author="Moonbo"> <downloadLocation language="English" url="http://www.southquarter.com/tdm/fms/ahouseoflockedsecrets.pk4" /> <downloadLocation language="English" url="http://darkmod.taaaki.za.net/fms/ahouseoflockedsecrets.pk4" /> <downloadLocation language="English" url="http://www.fidcal.com/darkuser/missions/ahouseoflockedsecrets.pk4" /> <downloadLocation language="English" url="http://bloodgate.com/mirrors/tdm/fms/ahouseoflockedsecrets.pk4" /> </mission> <mission id="117" title="A Matter of Hours" releaseDate="2017-04-28" size="1.3" version="1" internalName="matterofhours" type="single" author="Springheel"> <downloadLocation language="English" url="http://www.fidcal.com/darkuser/missions/matterofhours.pk4" /> <downloadLocation language="English" url="http://darkmod.taaaki.za.net/fms/matterofhours.pk4" /> <downloadLocation language="English" url="http://www.southquarter.com/tdm/fms/matterofhours.pk4" /> <downloadLocation language="English" url="http://www.mindplaces.com/save/matterofhours.pk4" /> <downloadLocation language="English" url="http://bloodgate.com/mirrors/tdm/fms/matterofhours.pk4" /> </mission> <mission id="147" title="A Night Of Loot: One Man's Treasure" releaseDate="2020-06-13" size="3.9" version="1" internalName="anol" type="single" author="OGDA"> <downloadLocation language="English" url="http://darkmod.taaaki.za.net/fms/anol.pk4" /> <downloadLocation language="English" url="http://www.fidcal.com/darkuser/missions/anol.pk4" /> <downloadLocation language="English" url="http://www.southquarter.com/tdm/fms/anol.pk4" /> <downloadLocation language="English" url="http://bloodgate.com/mirrors/tdm/pub/pk4/fms/anol.pk4" /> </mission> <mission id="52" title="A Night to Remember" releaseDate="2011-10-31" size="33" version="2" internalName="antr" type="single" author="Fieldmedic"> <downloadLocation language="English" url="http://darkmod.taaaki.za.net/fms/antr.pk4" /> <downloadLocation language="English" url="http://www.fidcal.com/darkuser/missions/antr.pk4" /> <downloadLocation language="English" url="http://www.southquarter.com/tdm/fms/antr.pk4" /> <downloadLocation language="English" url="http://bloodgate.com/mirrors/tdm/fms/antr.pk4" /> <localisationPack url="http://www.fidcal.com/darkuser/missions/antr_l10n.pk4" /> <localisationPack url="http://bloodgate.com/mirrors/tdm/fms/antr_l10n.pk4" /> <localisationPack url="http://darkmod.taaaki.za.net/fms/antr_l10n.pk4" /> </mission> ... |
|
The most appropriate fix would be to add "weight" attribute to "downloadLocation: and "localizationPack". Then: 1) The old TDM versions would ignore it if it is present. 2) The new TDM versions can have a default weight of "1.0" if it is not set. So the change would be fully compatible both ways. |
|
Committed in svn rev 8977. Among several provided URLs, the probability to choose a particular one is proportional to its weight. The syntax for adding weights is like this: <downloadLocation language="English" weight="0.1" url="http://bloodgate.com/mirrors/tdm/fms/good.pk4" /> If weight is not specified, then it gets default unit value (i.e. 1.0). Note that it won't have effect until someone updates missionlist.xml on server. See also this discussion: https://forums.thedarkmod.com/index.php?/topic/20624-store-missions-archive-in-svn/ |
|
Implemented reading and verifying "sha256" attribute of download links (if it is present). In svn commits 9022 & 16023. If checksum does not match, then custom error message is shown (downloaded file is deleted immediately). If attribute is not set, then it is not checked. Normally the whole process is silent. I use unoptimized implementation of SHA256 and compute it on-the-fly. I believe that since download speed is anyway much slower than sha256 computation, computing hash in curl write callback should not increase wall time of download. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
01.10.2020 05:03 | stgatilov | New Issue | |
01.10.2020 05:03 | stgatilov | Status | new => assigned |
01.10.2020 05:03 | stgatilov | Assigned To | => stgatilov |
01.10.2020 05:04 | stgatilov | Description Updated | |
08.11.2020 04:12 | stgatilov | Note Added: 0012866 | |
08.11.2020 04:13 | stgatilov | Note Added: 0012867 | |
14.11.2020 04:07 | stgatilov | Relationship added | related to 0003419 |
14.11.2020 04:12 | stgatilov | Note Added: 0012919 | |
14.11.2020 04:12 | stgatilov | Status | assigned => resolved |
14.11.2020 04:12 | stgatilov | Resolution | open => fixed |
14.11.2020 04:12 | stgatilov | Fixed in Version | => TDM 2.09 |
01.12.2020 17:19 | stgatilov | Summary | Implement priorities for FM download mirrors. => Implement priorities and checksums for FM download mirrors. |
01.12.2020 17:19 | stgatilov | Description Updated | |
01.12.2020 17:44 | stgatilov | Note Added: 0013066 |