To indulge my habit of trying the newest Google software releases under
Wine, I decided to give the new Google Web Accelerator a shot with the
latest CVS.
The first issue that I ran into (patches sent to wine-devel!) was the
lack of StgCreateStorageEx and StgOpenStorageEx. This seems to be used
by Google to store their extra web cache data.
Once I replaced the stubs with proper functions, the application started
up and started caching data. From what I can tell, it even contacts the
Google server for the compressed updates. It doesn't seem to "save
time" in any way - I think this might have something to do with the
inefficiency within the structured storage implementation (100% CPU for
a short period of time as you request pages). My theory is that the
application picks the request that returns first - Google's optimized
version or the web page's response.
It seems to die after a few minutes of browsing with what appears to be
an async IO error. The strange thing is that the error code looks like
a memory location rather than a winsock error:
fixme:winsock:NtStatusToWSAError Status code 77ce16c0 converted to DOS
error code 77ce16c0
fixme:winsock:WS2_async_send status: c0000120
[matthew@epsilon temp]$ cd /tmp/wine/dlls/winsock
I tried to trace through what happens in an asynchronous send operation,
but I couldn't figure out how the status of the response was translated
back to the "->Internal" field of the OVERLAPPED structure. Any hints?
Thanks,
Matt.