-/////////////////////////////////////////////////////////////////////////////
-// wxSocket headers
-/////////////////////////////////////////////////////////////////////////////
-#include <wx/module.h>
-#define WXSOCK_INTERNAL
-#include <wx/sckaddr.h>
-#include <wx/socket.h>
-#include <wx/sckint.h>
-
-// ----------------------
-// Some patch ----- BEGIN
-// ----------------------
-#ifdef __WINDOWS__
-#define close closesocket
-#define ioctl ioctlsocket
-#ifdef errno
-#undef errno
-#endif
-#define errno WSAGetLastError()
-#ifdef EWOULDBLOCK
-#undef EWOULDBLOCK
-#endif
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#define ETIMEDOUT WSAETIMEDOUT
-#undef EINTR
-#define EINTR WSAEINTR
+wxSocketBase::wxSocketBase(wxSockFlags _flags, wxSockType _type) :
+ wxEvtHandler(),
+ m_socket(NULL), m_evt_handler(NULL), m_id(-1),
+ m_flags(_flags), m_type(_type),
+ m_neededreq(0), m_notify_state(FALSE),
+ m_connected(FALSE), m_establishing(FALSE),
+ m_reading(FALSE), m_writing(FALSE),
+ m_error(FALSE), m_lcount(0), m_timeout(600),
+ m_states(), m_beingDeleted(FALSE),
+ m_unread(NULL), m_unrd_size(0), m_unrd_cur(0),
+ m_cbk(NULL), m_cdata(NULL)
+{
+}
+
+wxSocketBase::wxSocketBase() :
+ wxEvtHandler(),
+ m_socket(NULL), m_evt_handler(NULL), m_id(-1),
+ m_flags(NONE), m_type(SOCK_UNINIT),
+ m_neededreq(0), m_notify_state(FALSE),
+ m_connected(FALSE), m_establishing(FALSE),
+ m_reading(FALSE), m_writing(FALSE),
+ m_error(FALSE), m_lcount(0), m_timeout(600),
+ m_states(), m_beingDeleted(FALSE),
+ m_unread(NULL), m_unrd_size(0), m_unrd_cur(0),
+ m_cbk(NULL), m_cdata(NULL)
+{
+}
+
+wxSocketBase::~wxSocketBase()
+{
+ // Just in case the app called Destroy() *and* then deleted
+ // the socket immediately: don't leave dangling pointers.
+#if wxUSE_GUI
+ wxPendingDelete.DeleteObject(this);