X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/635f2bad9037c6911097b6903057d8ab09336a86..d970f7d5cb36104e5da4760b1fb83c6ec55ef97c:/src/common/socket.cpp diff --git a/src/common/socket.cpp b/src/common/socket.cpp index 080518cd0e..7e82eb01c6 100644 --- a/src/common/socket.cpp +++ b/src/common/socket.cpp @@ -32,11 +32,11 @@ #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/timer.h" -#include "wx/module.h" #include "wx/sckaddr.h" #include "wx/datetime.h" @@ -1105,6 +1105,12 @@ wxSocketServer::wxSocketServer(const wxSockAddress& addr_man, if (GetFlags() & wxSOCKET_REUSEADDR) { m_socket->SetReusable(); } + if (GetFlags() & wxSOCKET_BROADCAST) { + m_socket->SetBroadcast(); + } + if (GetFlags() & wxSOCKET_NOBIND) { + m_socket->DontDoBind(); + } if (m_socket->SetServer() != GSOCK_NOERROR) { @@ -1275,6 +1281,14 @@ bool wxSocketClient::DoConnect(wxSockAddress& addr_man, wxSockAddress* local, bo { m_socket->SetReusable(); } + if (GetFlags() & wxSOCKET_BROADCAST) + { + m_socket->SetBroadcast(); + } + if (GetFlags() & wxSOCKET_NOBIND) + { + m_socket->DontDoBind(); + } // If no local address was passed and one has been set, use the one that was Set if (!local && m_localAddress.GetAddress()) @@ -1344,14 +1358,26 @@ wxDatagramSocket::wxDatagramSocket( const wxSockAddress& addr, // Create the socket m_socket = GSocket_new(); - if(!m_socket) + if (!m_socket) { wxFAIL_MSG( _T("datagram socket not new'd") ); return; } // Setup the socket as non connection oriented m_socket->SetLocal(addr.GetAddress()); - if( m_socket->SetNonOriented() != GSOCK_NOERROR ) + if (flags & wxSOCKET_REUSEADDR) + { + m_socket->SetReusable(); + } + if (GetFlags() & wxSOCKET_BROADCAST) + { + m_socket->SetBroadcast(); + } + if (GetFlags() & wxSOCKET_NOBIND) + { + m_socket->DontDoBind(); + } + if ( m_socket->SetNonOriented() != GSOCK_NOERROR ) { delete m_socket; m_socket = NULL;