SaveState();
// we may use non blocking sockets only if we can dispatch events from them
- SetFlags( wxIsMainThread() && wxApp::IsMainLoopRunning() ? wxSOCKET_NONE
- : wxSOCKET_BLOCK );
+ int flags = wxIsMainThread() && wxApp::IsMainLoopRunning() ? wxSOCKET_NONE
+ : wxSOCKET_BLOCK;
+ // and we must use wxSOCKET_WAITALL to ensure that all data is sent
+ flags |= wxSOCKET_WAITALL;
+ SetFlags(flags);
Notify(false);
wxString buf;
size_t m_httpsize;
unsigned long m_read_bytes;
- wxHTTPStream(wxHTTP *http) : wxSocketInputStream(*http), m_http(http) {}
+ wxHTTPStream(wxHTTP *http) : wxSocketInputStream(*http)
+ {
+ m_http = http;
+ m_httpsize = 0;
+ m_read_bytes = 0;
+ }
+
size_t GetSize() const { return m_httpsize; }
virtual ~wxHTTPStream(void) { m_http->Abort(); }