Unconditional assert means fail.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba
2006-03-22 17:55:05 +00:00
parent c31be54ae0
commit 7fb0a11d3a

View File

@@ -1,12 +1,12 @@
/////////////////////////////////////////////////////////////////////////////
// Name: socket.cpp
// Name: src/common/socket.cpp
// Purpose: Socket handler classes
// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia
// Created: April 1997
// Copyright: (C) 1999-1997, Guilhem Lavaux
// (C) 2000-1999, Guillermo Rodriguez Garcia
// RCS_ID: $Id$
// License: see wxWindows licence
// License: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ==========================================================================
@@ -24,7 +24,6 @@
#include "wx/app.h"
#include "wx/apptrait.h"
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/string.h"
#include "wx/timer.h"
@@ -779,10 +778,10 @@ bool wxSocketBase::_Wait(long seconds,
bool wxSocketBase::Wait(long seconds, long milliseconds)
{
return _Wait(seconds, milliseconds, GSOCK_INPUT_FLAG |
GSOCK_OUTPUT_FLAG |
GSOCK_CONNECTION_FLAG |
GSOCK_LOST_FLAG);
return _Wait(seconds, milliseconds, GSOCK_INPUT_FLAG |
GSOCK_OUTPUT_FLAG |
GSOCK_CONNECTION_FLAG |
GSOCK_LOST_FLAG);
}
bool wxSocketBase::WaitForRead(long seconds, long milliseconds)
@@ -803,12 +802,12 @@ bool wxSocketBase::WaitForRead(long seconds, long milliseconds)
bool wxSocketBase::WaitForWrite(long seconds, long milliseconds)
{
return _Wait(seconds, milliseconds, GSOCK_OUTPUT_FLAG);
return _Wait(seconds, milliseconds, GSOCK_OUTPUT_FLAG);
}
bool wxSocketBase::WaitForLost(long seconds, long milliseconds)
{
return _Wait(seconds, milliseconds, GSOCK_LOST_FLAG);
return _Wait(seconds, milliseconds, GSOCK_LOST_FLAG);
}
// --------------------------------------------------------------------------
@@ -841,16 +840,16 @@ bool wxSocketBase::GetPeer(wxSockAddress& addr_man) const
bool wxSocketBase::GetLocal(wxSockAddress& addr_man) const
{
GAddress *local;
GAddress *local;
if (!m_socket)
return false;
if (!m_socket)
return false;
local = m_socket->GetLocal();
addr_man.SetAddress(local);
GAddress_destroy(local);
local = m_socket->GetLocal();
addr_man.SetAddress(local);
GAddress_destroy(local);
return true;
return true;
}
//
@@ -859,36 +858,36 @@ bool wxSocketBase::GetLocal(wxSockAddress& addr_man) const
void wxSocketBase::SaveState()
{
wxSocketState *state;
wxSocketState *state;
state = new wxSocketState();
state = new wxSocketState();
state->m_flags = m_flags;
state->m_notify = m_notify;
state->m_eventmask = m_eventmask;
state->m_clientData = m_clientData;
state->m_flags = m_flags;
state->m_notify = m_notify;
state->m_eventmask = m_eventmask;
state->m_clientData = m_clientData;
m_states.Append(state);
m_states.Append(state);
}
void wxSocketBase::RestoreState()
{
wxList::compatibility_iterator node;
wxSocketState *state;
wxList::compatibility_iterator node;
wxSocketState *state;
node = m_states.GetLast();
if (!node)
return;
node = m_states.GetLast();
if (!node)
return;
state = (wxSocketState *)node->GetData();
state = (wxSocketState *)node->GetData();
m_flags = state->m_flags;
m_notify = state->m_notify;
m_eventmask = state->m_eventmask;
m_clientData = state->m_clientData;
m_flags = state->m_flags;
m_notify = state->m_notify;
m_eventmask = state->m_eventmask;
m_clientData = state->m_clientData;
m_states.Erase(node);
delete state;
m_states.Erase(node);
delete state;
}
//
@@ -897,15 +896,15 @@ void wxSocketBase::RestoreState()
void wxSocketBase::SetTimeout(long seconds)
{
m_timeout = seconds;
m_timeout = seconds;
if (m_socket)
m_socket->SetTimeout(m_timeout * 1000);
if (m_socket)
m_socket->SetTimeout(m_timeout * 1000);
}
void wxSocketBase::SetFlags(wxSocketFlags flags)
{
m_flags = flags;
m_flags = flags;
}
@@ -936,9 +935,9 @@ void LINKAGEMODE wx_socket_callback(GSocket * WXUNUSED(socket),
GSocketEvent notification,
char *cdata)
{
wxSocketBase *sckobj = (wxSocketBase *)cdata;
wxSocketBase *sckobj = (wxSocketBase *)cdata;
sckobj->OnRequest((wxSocketNotify) notification);
sckobj->OnRequest((wxSocketNotify) notification);
}
void wxSocketBase::OnRequest(wxSocketNotify notification)
@@ -1009,18 +1008,18 @@ void wxSocketBase::OnRequest(wxSocketNotify notification)
void wxSocketBase::Notify(bool notify)
{
m_notify = notify;
m_notify = notify;
}
void wxSocketBase::SetNotify(wxSocketEventFlags flags)
{
m_eventmask = flags;
m_eventmask = flags;
}
void wxSocketBase::SetEventHandler(wxEvtHandler& handler, int id)
{
m_handler = &handler;
m_id = id;
m_handler = &handler;
m_id = id;
}
// --------------------------------------------------------------------------
@@ -1175,7 +1174,7 @@ wxSocketBase *wxSocketServer::Accept(bool wait)
bool wxSocketServer::WaitForAccept(long seconds, long milliseconds)
{
return _Wait(seconds, milliseconds, GSOCK_CONNECTION_FLAG);
return _Wait(seconds, milliseconds, GSOCK_CONNECTION_FLAG);
}
bool wxSocketBase::GetOption(int level, int optname, void *optval, int *optlen)
@@ -1310,24 +1309,24 @@ bool wxSocketClient::DoConnect(wxSockAddress& addr_man, wxSockAddress* local, bo
bool wxSocketClient::Connect(wxSockAddress& addr_man, bool wait)
{
return (DoConnect(addr_man, NULL, wait));
return (DoConnect(addr_man, NULL, wait));
}
bool wxSocketClient::Connect(wxSockAddress& addr_man, wxSockAddress& local, bool wait)
{
return (DoConnect(addr_man, &local, wait));
return (DoConnect(addr_man, &local, wait));
}
bool wxSocketClient::WaitOnConnect(long seconds, long milliseconds)
{
if (m_connected) // Already connected
return true;
if (m_connected) // Already connected
return true;
if (!m_establishing || !m_socket) // No connection in progress
return false;
if (!m_establishing || !m_socket) // No connection in progress
return false;
return _Wait(seconds, milliseconds, GSOCK_CONNECTION_FLAG |
GSOCK_LOST_FLAG);
return _Wait(seconds, milliseconds, GSOCK_CONNECTION_FLAG |
GSOCK_LOST_FLAG);
}
// ==========================================================================
@@ -1340,31 +1339,30 @@ wxDatagramSocket::wxDatagramSocket( const wxSockAddress& addr,
wxSocketFlags flags )
: wxSocketBase( flags, wxSOCKET_DATAGRAM )
{
// Create the socket
m_socket = GSocket_new();
// Create the socket
m_socket = GSocket_new();
if(!m_socket)
{
wxASSERT_MSG( 0, _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 )
{
delete m_socket;
m_socket = NULL;
return;
}
// Initialize all stuff
m_connected = false;
m_establishing = false;
m_socket->SetTimeout( m_timeout );
m_socket->SetCallback( GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG |
GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG,
wx_socket_callback, (char*)this );
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 )
{
delete m_socket;
m_socket = NULL;
return;
}
// Initialize all stuff
m_connected = false;
m_establishing = false;
m_socket->SetTimeout( m_timeout );
m_socket->SetCallback( GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG |
GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG,
wx_socket_callback, (char*)this );
}
wxDatagramSocket& wxDatagramSocket::RecvFrom( wxSockAddress& addr,
@@ -1414,5 +1412,3 @@ IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule)
#endif
// wxUSE_SOCKETS
// vi:sts=4:sw=4:et