http://bugs.winehq.org/show_bug.cgi?id=3711
Summary: Musicmatch fails to install (missing registry key, HTTP_HttpOpenRequest() problem) Product: Wine Version: CVS Platform: Other URL: http://www.musicmatch.com/download/free OS/Version: other Status: NEW Keywords: download Severity: normal Priority: P2 Component: wine-net AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
The bug was easy to reproduce after the failure by cd'ing into where Musicmatch had started to install itself, and running the MMUpdateMgr.exe app directly; it failed very quickly, so logging with +all was useful.
0009:Call advapi32.RegQueryValueExA(00000074,7b92f860 "ProxyEnable",00000000,7b92f4ac,00000000,00000000) ret=0041d673 0009:trace:reg:RegQueryValueExA (0x74,"ProxyEnable",(nil),0x7b92f4ac,(nil),(nil)=0) 0009:Call ntdll.RtlInitAnsiString(7b92f0f0,7b92f860 "ProxyEnable") ret=7b5f0344 0009:Ret ntdll.RtlInitAnsiString() retval=00000000 ret=7b5f0344 0009:Call ntdll.RtlAnsiStringToUnicodeString(7bd98bf8,7b92f0f0,00000000) ret=7b5f035e 0009:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=7b5f035e 0009:Call ntdll.NtQueryValueKey(00000074,7bd98bf8,00000002,7b92f0f8,00000100,7b92f0ec) ret=7b5f038e 0009:trace:reg:NtQueryValueKey (0x74,L"ProxyEnable",2,0x7b92f0f8,256) 0009: get_key_value( hkey=0x74, name=L"ProxyEnable" ) 0009: get_key_value() = OBJECT_NAME_NOT_FOUND { type=-1, total=0, data={} } 0009:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=7b5f038e 0009:Call ntdll.RtlNtStatusToDosError(c0000034) ret=7b5f0442 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000002 ret=7b5f0442 0009:Ret advapi32.RegQueryValueExA() retval=00000002 ret=0041d673
============================================================== Throwing Musicmatch Exception: ------------------------------ - Description: RegQueryValueEx(SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable) returned 2. - File: \mmjb\src\global_services\Core\Common\RegistryKey.cpp - Function: core::registry::RegistryKey::GetValueType - Line: 683 ==============================================================
Well, that's pretty clear! Looking at http://www.winguides.com/registry/display.php/292/ I see that registry key is supposed to be under HKEY_CURRENT_USER. Adding it fixes things. Here's what I see if I export the registry and look for that key:
[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Internet Settings] @="" "ProxyEnable"=dword:00000000
S-1-5-4 is the predefined "Interactive" SID, so this looks fine. And sure enough, the following patch makes wineprefixcreate set the ProxyEnable flag on first init:
--- tools/wine.inf 19 Oct 2005 19:07:30 -0000 1.44 +++ tools/wine.inf 31 Oct 2005 02:49:59 -0000 @@ -253,6 +253,7 @@ HKLM,System\CurrentControlSet\Control\VMM32Files,,,"" HKLM,System\CurrentControlSet\Services\VxD\MSTCP,,,"" HKCU,Software\Wine\shdocvw,"MozillaUrl",,"http://source.winehq.org/mozactivex" +HKCU,Software\Microsoft\Windows\CurrentVersion\Internet Settings,"ProxyEnable",0x10001,0x00000000
[Nls] HKLM,System\CurrentControlSet\Control\Nls\Codepage,"37",,""
(I haven't sent that patch in yet.) The next problem is that the updater (really, Marimba) can't connect to download the real app. The console shows:
err:wininet:HTTP_HttpOpenRequestW Unable to escape string!(L"/mmjb/ev/dlm?product=MMJB&productVer=&channel=&event=updateFail&type=1025:
&uid=CBE6E800-49C1-11DA-C687-000FB04C44B7&mfg=MMD&version=2.20.0043&connection=LAN&updatemode=seed") (-2147467261)