]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/http.cpp
Add missing WXK constants for the control keys
[wxWidgets.git] / src / common / http.cpp
index 49f08f6dfb55e5702cc261a4ec06f376da5b1eae..f70b6fe9da41c3e874985d8e8315e1039c08fa61 100644 (file)
@@ -218,12 +218,20 @@ wxHTTP::SetPostText(const wxString& contentType,
                     const wxString& data,
                     const wxMBConv& conv)
 {
+#if wxUSE_UNICODE
     wxScopedCharBuffer scb = data.mb_str(conv);
-    if ( !scb.length() )
+    const size_t len = scb.length();
+    const char* const buf = scb.data();
+#else // !wxUSE_UNICODE
+    const size_t len = data.length();
+    const char* const buf = data.mb_str(conv);
+#endif // wxUSE_UNICODE/!wxUSE_UNICODE
+
+    if ( !len )
         return false;
 
     m_postBuffer.Clear();
-    m_postBuffer.AppendData(scb.data(), scb.length());
+    m_postBuffer.AppendData(buf, len);
     m_contentType = contentType;
 
     return true;
@@ -380,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;