X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fb0a11d3a06bb86eee92d71dffaf71918437c8c..ce7208d49d5ce2ca1dc0b3b83f14f1d04f29c4bf:/src/common/socket.cpp diff --git a/src/common/socket.cpp b/src/common/socket.cpp index 8e87adb874..28a929198c 100644 --- a/src/common/socket.cpp +++ b/src/common/socket.cpp @@ -17,24 +17,28 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #if wxUSE_SOCKETS -#include "wx/app.h" +#include "wx/socket.h" + +#ifndef WX_PRECOMP + #include "wx/object.h" + #include "wx/string.h" + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/event.h" + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/timer.h" + #include "wx/module.h" +#endif + #include "wx/apptrait.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/timer.h" -#include "wx/utils.h" -#include "wx/module.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/event.h" #include "wx/sckaddr.h" -#include "wx/socket.h" #include "wx/datetime.h" // DLL options compatibility check: @@ -326,11 +330,9 @@ wxUint32 wxSocketBase::_Read(void* buffer, wxUint32 nbytes) // Return now in one of the following cases: // - the socket is invalid, - // - we got all the data, - // - we got *some* data and we are not using wxSOCKET_WAITALL. + // - we got all the data if ( !m_socket || - !nbytes || - ((total != 0) && !(m_flags & wxSOCKET_WAITALL)) ) + !nbytes ) return total; // Possible combinations (they are checked in this order) @@ -693,7 +695,7 @@ bool wxSocketBase::_Wait(long seconds, else timeout = m_timeout * 1000; - bool has_event_loop = wxTheApp ? (wxTheApp->GetTraits() ? true : false) : false; + bool has_event_loop = wxTheApp->GetTraits() ? (wxTheApp->GetTraits()->GetSocketGUIFunctionsTable() ? true : false) : false; // Wait in an active polling loop. // @@ -710,7 +712,7 @@ bool wxSocketBase::_Wait(long seconds, bool done = false; bool valid_result = false; - if (!has_event_loop) + if (!has_event_loop) { // This is used to avoid a busy loop on wxBase - having a select // timeout of 50 ms per iteration should be enough. @@ -756,11 +758,11 @@ bool wxSocketBase::_Wait(long seconds, done = true; else { - if (has_event_loop) + if (has_event_loop) { PROCESS_EVENTS(); } - else + else { // If there's less than 50 ms left, just call select with that timeout. if (time_left < 50) @@ -1193,7 +1195,7 @@ bool wxSocketBase::SetOption(int level, int optname, const void *optval, int optlen) { wxASSERT_MSG( m_socket, _T("Socket not initialised") ); - + if (m_socket->SetSockOpt(level, optname, optval, optlen) != GSOCK_NOERROR) { @@ -1379,7 +1381,7 @@ wxDatagramSocket& wxDatagramSocket::SendTo( const wxSockAddress& addr, wxUint32 nBytes ) { wxASSERT_MSG( m_socket, _T("Socket not initialised") ); - + m_socket->SetPeer(addr.GetAddress()); Write(buf, nBytes); return (*this);