http://bugs.winehq.org/show_bug.cgi?id=34969
Bug #: 34969 Summary: wininet: In Trackmania Nations Forever new online user registration fails Product: Wine Version: 1.7.3 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wininet AssignedTo: wine-bugs@winehq.org ReportedBy: bernhardu@vr-web.de Classification: Unclassified
Registration of a new online user is not possible in the step when one has to select the country.
A list of countries/zones is downloaded from trackmaniaforever.com.
This fails for some reason and a message appears: "Nicht verbunden" (Not connected) Normally a selection screen with some countries to select from should be shown.
Up to wine version 1.7.2 this works. It fails since 1.7.3. (Also 1.6.1 is showing this error, while 1.6 did not.)
----------------
A Bisection leads to this commit: c0e1dda04cce1192d477a831ece4b9e2c22353e9 is the first bad commit commit c0e1dda04cce1192d477a831ece4b9e2c22353e9 Author: Hans Leidekker hans@codeweavers.com Date: Wed Sep 18 13:40:24 2013 +0200
wininet: Don't assume that end of chunk means end of stream.
:040000 040000 650f003b8e695edca729ee0314980f24520272b5 511be5b85319511d9c2db7f978d6010d9ca5bc17 M dlls
------------------
When comparing a good and a failing run with WINEDEBUG=+wininet it shows that the last call to InternetReadFile returns FALSE in the bad run and TRUE in the good one.
------------------
When changing in dlls/wininet/http.c line 2817 (as of wine-1.7.6-180-g48ae431) like it was before the commit above, download is also possible and zone selection is shown.
- if(!chunked_stream->chunk_size || chunked_stream->chunk_size == ~0u) { + if(chunked_stream->chunk_size == ~0u) {
------------------
In the test suite the return value for the chunked test is not checked, but returns there also not FALSE.
------------------
Attached is the relevant part of a run with WINEDEBUG=+wininet when it is failing. The game installer tmnationsforever_setup.exe could be freely downloaded. (Error is also not visible with native wininet.dll.)