]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/socket.cpp
iconv-based conversion works again, after being broken for a while
[wxWidgets.git] / src / common / socket.cpp
index c5b1bab4e4e4dad3ce86fb1564e7e8525897f14d..9df24e42c9453decd31c6c67e986efef935c3a57 100644 (file)
@@ -481,7 +481,7 @@ wxUint32 wxSocketBase::_Write(const void *buffer, wxUint32 nbytes)
   {
     bool more = TRUE;
 
-    while (more)            
+    while (more)
     {
       if ( !(m_flags & wxSOCKET_BLOCK) && !WaitForWrite() )
         break;
@@ -862,9 +862,10 @@ char *wxSocketBase::CallbackData(char *data)
 // decoupled from wx_socket_callback and thus they suffer from a variety
 // of problems. Avoid them where possible and use events instead.
 
-static void LINKAGEMODE wx_socket_callback(GSocket * WXUNUSED(socket),
-                                           GSocketEvent notification,
-                                           char *cdata)
+extern "C"
+void LINKAGEMODE wx_socket_callback(GSocket * WXUNUSED(socket),
+                                    GSocketEvent notification,
+                                    char *cdata)
 {
   wxSocketBase *sckobj = (wxSocketBase *)cdata;
 
@@ -1010,7 +1011,7 @@ wxUint32 wxSocketBase::GetPushback(void *buffer, wxUint32 size, bool peek)
 
 
 // ==========================================================================
-// wxSocketServer                             
+// wxSocketServer
 // ==========================================================================
 
 // --------------------------------------------------------------------------
@@ -1088,7 +1089,10 @@ wxSocketBase *wxSocketServer::Accept(bool wait)
   sock->SetFlags(m_flags);
 
   if (!AcceptWith(*sock, wait))
-    return NULL;
+  {
+    sock->Destroy();
+    sock = NULL;
+  }
 
   return sock;
 }
@@ -1232,25 +1236,6 @@ wxDatagramSocket& wxDatagramSocket::SendTo( wxSockAddress& addr,
     return (*this);
 }
 
-// ==========================================================================
-// wxSocketEvent
-// ==========================================================================
-
-wxSocketEvent::wxSocketEvent(int id) : wxEvent(id)
-{
-  SetEventType( (wxEventType)wxEVT_SOCKET );
-}
-
-void wxSocketEvent::CopyObject(wxObject& object_dest) const
-{
-  wxSocketEvent *event = (wxSocketEvent *)&object_dest;
-
-  wxEvent::CopyObject(object_dest);
-
-  event->m_event      = m_event;
-  event->m_clientData = m_clientData;
-}
-
 // ==========================================================================
 // wxSocketModule
 // ==========================================================================