X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7ea70b6f0fe9ea63ccc22c632ecb06e4e552d2c4..eb6b14dc71402c42e0474779bfcd6e878383071e:/samples/sockets/baseserver.cpp diff --git a/samples/sockets/baseserver.cpp b/samples/sockets/baseserver.cpp index 283ecb6b8e..67e5ebc495 100644 --- a/samples/sockets/baseserver.cpp +++ b/samples/sockets/baseserver.cpp @@ -4,9 +4,8 @@ // Author: Lukasz Michalski // Modified by: // Created: 27.06.2005 -// RCS-ID: $Id$ // Copyright: (c) 2005 Lukasz Michalski -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -101,7 +100,7 @@ WX_DECLARE_LIST(EventWorker, EList); //and list of two type worker classes that serve clients class Server : public wxApp { - DECLARE_EVENT_TABLE(); + DECLARE_EVENT_TABLE() public: Server() : m_maxConnections(-1) {} ~Server() {} @@ -142,7 +141,7 @@ private: long int m_maxConnections; - long m_port; + unsigned short m_port; wxTimer mTimer; }; @@ -198,7 +197,7 @@ private: void DoWrite(); void DoRead(); - DECLARE_EVENT_TABLE(); + DECLARE_EVENT_TABLE() }; /******************* Implementation ******************/ @@ -258,7 +257,7 @@ Server::DumpStatistics() if ((int)(m_threadWorkersDone+m_eventWorkersDone) == m_maxConnections) { - wxLogMessage("%d connection(s) served, exiting",m_maxConnections); + wxLogMessage("%ld connection(s) served, exiting",m_maxConnections); ExitMainLoop(); } } @@ -279,12 +278,21 @@ Server::OnCmdLineParsed(wxCmdLineParser& pParser) if (pParser.Found("m",&m_maxConnections)) { - wxLogMessage("%d connection(s) to exit",m_maxConnections); + wxLogMessage("%ld connection(s) to exit",m_maxConnections); } - if (pParser.Found("p",&m_port)) + long port; + if (pParser.Found("p", &port)) { - wxLogMessage("%d connection(s) to exit",m_maxConnections); + if ( port <= 0 || port > USHRT_MAX ) + { + wxLogError("Invalid port number %ld, must be in 0..%u range.", + port, USHRT_MAX); + return false; + } + + m_port = static_cast(port); + wxLogMessage("Will listen on port %u", m_port); } if (pParser.Found("t")) @@ -315,7 +323,7 @@ bool Server::OnInit() m_listeningSocket->SetEventHandler(*this); m_listeningSocket->SetNotify(wxSOCKET_CONNECTION_FLAG); m_listeningSocket->Notify(true); - if (!m_listeningSocket->Ok()) + if (!m_listeningSocket->IsOk()) { wxLogError("Cannot bind listening socket"); return false; @@ -331,7 +339,7 @@ bool Server::OnInit() m_eventWorkersFailed = 0; m_maxEventWorkers = 0; - wxLogMessage("Server listening at port %d, waiting for connections", m_port); + wxLogMessage("Server listening at port %u, waiting for connections", m_port); return true; } @@ -425,8 +433,8 @@ void Server::OnWorkerEvent(WorkerEvent& pEvent) { if (it->GetData() == pEvent.m_sender) { - wxLogVerbose("Deleting thread worker (%d left)", - m_threadWorkers.GetCount()); + wxLogVerbose("Deleting thread worker (%lu left)", + static_cast( m_threadWorkers.GetCount() )); it->GetData()->Wait(); delete it->GetData(); m_threadWorkers.DeleteNode(it); @@ -441,8 +449,8 @@ void Server::OnWorkerEvent(WorkerEvent& pEvent) { if (it2->GetData() == pEvent.m_sender) { - wxLogVerbose("Deleting event worker (%d left)", - m_eventWorkers.GetCount()); + wxLogVerbose("Deleting event worker (%lu left)", + static_cast( m_eventWorkers.GetCount() )); delete it2->GetData(); m_eventWorkers.DeleteNode(it2); if (!pEvent.m_workerFailed) @@ -650,8 +658,7 @@ EventWorker::DoRead() if (m_size == m_infill) { m_signature[0] = m_signature[1] = 0x0; - delete [] m_inbuf; - m_inbuf = NULL; + wxDELETEA(m_inbuf); m_infill = 0; return; } @@ -713,8 +720,7 @@ void EventWorker::DoWrite() { if (m_written == m_size) { - delete [] m_outbuf; - m_outbuf = NULL; + wxDELETEA(m_outbuf); m_outfill = 0; LogWorker( "All data written"); return;