void CRealControlSocket::OnSocketEvent(CSocketEvent &event) { if (!m_pBackend) return; switch (event.GetType()) { case CSocketEvent::hostaddress: { const wxString& address = event.GetData(); LogMessage(MessageType::Status, _("Connecting to %s..."), address); } break; case CSocketEvent::connection_next: if (event.GetError()) LogMessage(MessageType::Status, _("Connection attempt failed with \"%s\", trying next address."), CSocket::GetErrorDescription(event.GetError())); break; case CSocketEvent::connection: if (event.GetError()) { LogMessage(MessageType::Status, _("Connection attempt failed with \"%s\"."), CSocket::GetErrorDescription(event.GetError())); OnClose(event.GetError()); } else { if (m_pProxyBackend && !m_pProxyBackend->Detached()) { m_pProxyBackend->Detach(); m_pBackend = new CSocketBackend(this, m_pSocket); } OnConnect(); } break; case CSocketEvent::read: OnReceive(); break; case CSocketEvent::write: OnSend(); break; case CSocketEvent::close: OnClose(event.GetError()); break; default: LogMessage(MessageType::Debug_Warning, _T("Unhandled socket event %d"), event.GetType()); break; } }
void CExternalIPResolver::OnSocketEvent(CSocketEvent& event) { if (!m_pSocket) return; switch (event.GetType()) { case CSocketEvent::read: OnReceive(); break; case CSocketEvent::connection: OnConnect(event.GetError()); break; case CSocketEvent::close: OnClose(); break; case CSocketEvent::write: OnSend(); break; default: break; } }
void CTransferSocket::OnSocketEvent(CSocketEvent &event) { if (m_pProxyBackend) { switch (event.GetType()) { case CSocketEvent::connection: { const int error = event.GetError(); if (error) { m_pControlSocket->LogMessage(::Error, _("Proxy handshake failed: %s"), CSocket::GetErrorDescription(error).c_str()); TransferEnd(failure); } else { delete m_pProxyBackend; m_pProxyBackend = 0; OnConnect(); } } return; case CSocketEvent::close: { const int error = event.GetError(); m_pControlSocket->LogMessage(::Error, _("Proxy handshake failed: %s"), CSocket::GetErrorDescription(error).c_str()); TransferEnd(failure); } return; default: // Uninteresting return; } return; } if (m_pSocketServer) { if (event.GetType() == CSocketEvent::connection) OnAccept(event.GetError()); else m_pControlSocket->LogMessage(::Debug_Info, _T("Unhandled socket event %d from listening socket"), event.GetType()); return; } switch (event.GetType()) { case CSocketEvent::connection: OnConnect(); break; case CSocketEvent::read: OnReceive(); break; case CSocketEvent::write: OnSend(); break; case CSocketEvent::close: OnClose(event.GetError()); break; case CSocketEvent::hostaddress: // Booooring. No seriously, we connect by IP already, nothing to resolve break; default: m_pControlSocket->LogMessage(::Debug_Info, _T("Unhandled socket event %d"), event.GetType()); break; } }