On Mon, 2007-07-09 at 00:45 +0200, Jacek Caban wrote:
Hi Misha,
Misha Koshelev wrote:
Just wanted to let y'all know (so hopefully I'm not duplicating any effort) I'm working on an HttpProtocol implementation for urlmon (Vector NTI has a bug that requires POST to work for url monikers, and I don't want to submit patches to a function that has _hack at the end of it :) ).
Great!
Right now I have an implementation that conforms to Jacek's somewhat extensive tests already in dlls/urlmon/tests/protocol.c and also has the same error functionality as native per my tests (I would change wininet functions that native calls to return NULL and see what native urlmon returns). Now I will try out some other flags (Jacek's tests are very extensive, but only test ASYNC with PULLDATA etc.) to see what else I need to do.
I have its incomplete implementation since about 1,5 years, but your version seems to be about as functional as mine. The reason I didn't finish it is that I went the native way and wininet is quite not yet ready for it (it doesn't handle InternetReadFile on async connection correctly) and I didn't have the time to work on it. Also HttpProtocol handles connection always asynchronously, it doesn't matter what flags are passed (I mean at least ASYNC and PULLDATA flags), it's Binding object's job to make connection sync for the client object.
Whoops, so much for not reduplicating effort.
I guess if the flags don't matter, I will probably send what I have to wine-patches in a day or a few then, and then I would appreciate your comments on it.
I did notice that native urlmon seems to behave differently when running on XP or on wine (a lot more Switch being called on XP, and I assume intermediate data notifications which I also assume are missing on native urlmon running on wine, but I did not pursue this further).
Let me know if I can help somehow. I also have some tests how URLMoniker/Binding objects handle http protocol (we're quite near to make these tests pass for async connections).
Maybe I will need to look at these once I have the HttpProtocol stuff ironed out.
Thanks, Jacek
Thanks for your reply.
Misha