Use wxSOCKET_WAITALL in wxHTTP to ensure that all data is sent.

POST-ing sufficiently big amounts of data in wxHTTP didn't work because it
couldn't be sent all at once to the server. Use wxSOCKET_WAITALL to ensure
that we do send all of the data.

Closes #14598.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2012-08-30 20:22:40 +00:00
parent 8421cb3c7c
commit d15e514e84
2 changed files with 6 additions and 2 deletions

View File

@ -531,6 +531,7 @@ All:
- Add wxDir::Close() method (Silverstorm82).
- Fix compilation of wxHash{Map,Set} with g++ 4.7 (Nathan Ridge).
- Fix posting large amounts of data in wxHTTP (Platonides).
- Added Nepali translation (Him Prasad Gautam).
All (GUI):

View File

@ -388,8 +388,11 @@ bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
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;