Re: [PATCH 2/5] urlmon: Use BSCF_ values passed to report_data to keep track of download state.

2007-08-02 Thread Jacek Caban

Hi Misha,

Misha Koshelev wrote:

This simplifies the code a bit by getting rid of an enum and a corresponding 
variable in the IBinding
implementation, as we can successfully use the bscf values that are passed to 
report_data to get all
the information.

Additionally, the original implementation was somewhat incorrect at least for 
the case of the Http protocol
as far as sending OnStopBinding


This patch is already accepted, but unfortunately it's wrong. Tests 
changed in the attached patch succeed on native urlmon.dll and fail on 
current Wine. Probably only BSCF_LASTDATANOTIFICATION flag should be 
used. Other OnProgress callbacks should be called depending on the real 
binding state, not the one reported by protocol handler.


Jacek
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index 187fb03..dcae846 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -255,6 +255,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol 
*iface, LPCWSTR szUrl,
 SET_EXPECT(OnDataAvailable);
 SET_EXPECT(OnStopBinding);
 
+bscf = BSCF_LASTDATANOTIFICATION;
 hres = IInternetProtocolSink_ReportData(pOIProtSink, bscf, 13, 13);
 ok(hres == S_OK, ReportData failed: %08x\n, hres);
 



[PATCH 2/5] urlmon: Use BSCF_ values passed to report_data to keep track of download state.

2007-08-02 Thread Misha Koshelev

 Hi Misha,
 
 Misha Koshelev wrote:
  This simplifies the code a bit by getting rid of an enum and a 
  corresponding variable in the IBinding
  implementation, as we can successfully use the bscf values that are passed 
  to report_data to get all
  the information.
 
  Additionally, the original implementation was somewhat incorrect at least 
  for the case of the Http protocol
  as far as sending OnStopBinding
 
 This patch is already accepted, but unfortunately it's wrong. Tests 
 changed in the attached patch succeed on native urlmon.dll and fail on 
 current Wine. Probably only BSCF_LASTDATANOTIFICATION flag should be 
 used. Other OnProgress callbacks should be called depending on the real 
 binding state, not the one reported by protocol handler.
 
 Jacek
 -- next part --
 diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
 index 187fb03..dcae846 100644
 --- a/dlls/urlmon/tests/url.c
 +++ b/dlls/urlmon/tests/url.c
 @@ -255,6 +255,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol 
 *iface, LPCWSTR szUrl,
  SET_EXPECT(OnDataAvailable);
  SET_EXPECT(OnStopBinding);
  
 +bscf = BSCF_LASTDATANOTIFICATION;
  hres = IInternetProtocolSink_ReportData(pOIProtSink, bscf, 13, 13);
  ok(hres == S_OK, ReportData failed: %08x\n, hres);
  
Yes, I am sorry about this patch. I actually figured out that it was wrong this 
morning and
was going to send an email out to wine-devel but since it was already committed 
just decided to send out
a revert patch + more conservative fixes that are necessary tonight. I will 
prob be sending them
soon. Again, sorry about the patch. Thanks for the email.

Misha