- Added wxSearchCtrl::[Get|Set]DescriptiveText.
- Fixed detection of number of processors under Linux 2.6
- Fixed Base64 computation in wxHTTP (p_michalczyk)
+- Fix handling of wxSOCKET_REUSEADDR in wxDatagramSocket (troelsk)
wxMSW
// 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 ( m_socket->SetNonOriented() != GSOCK_NOERROR )
{
delete m_socket;
m_socket = NULL;
/* allow a socket to re-bind if the socket is in the TIME_WAIT
state after being previously closed.
*/
- if (m_reusable) {
- setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(u_long));
+ if (m_reusable)
+ {
+ setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(arg));
}
/* Bind to the local address,
// If the reuse flag is set, use the applicable socket reuse flag
if (m_reusable)
{
- setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(u_long));
+ setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(arg));
}
// If a local address has been set, then we need to bind to it before calling connect
ioctlsocket(m_fd, FIONBIO, (u_long FAR *) &arg);
gs_gui_functions->Enable_Events(this);
+ if (m_reusable)
+ {
+ setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(arg));
+ }
+
/* Bind to the local address,
* and retrieve the actual address bound.
*/