X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..91452726c26d7c80b0f28b340659b8f22a501ddd:/src/common/ftp.cpp diff --git a/src/common/ftp.cpp b/src/common/ftp.cpp index 519d7c5618..d1bc22eeec 100644 --- a/src/common/ftp.cpp +++ b/src/common/ftp.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/ftp.cpp +// Name: src/common/ftp.cpp // Purpose: FTP protocol // Author: Guilhem Lavaux // Modified by: Mark Johnson, wxWindows@mj10777.de @@ -155,11 +155,15 @@ bool wxFTP::Connect(const wxSockAddress& addr, bool WXUNUSED(wait)) return true; } -bool wxFTP::Connect(const wxString& host) +bool wxFTP::Connect(const wxString& host, unsigned short port) { wxIPV4address addr; addr.Hostname(host); - addr.Service(wxT("ftp")); + + if ( port ) + addr.Service(port); + else if (!addr.Service(wxT("ftp"))) + addr.Service(21); return Connect(addr); } @@ -199,8 +203,7 @@ wxSocketBase *wxFTP::AcceptIfActive(wxSocketBase *sock) { m_lastError = wxPROTO_CONNERR; wxLogError(_("Timeout while waiting for FTP server to connect, try passive mode.")); - delete sock; - sock = NULL; + wxDELETE(sock); } else { @@ -584,9 +587,9 @@ wxSocketBase *wxFTP::GetActivePort() addrNew.Service(0); // pick an open port number. wxSocketServer *sockSrv = new wxSocketServer(addrNew); - if (!sockSrv->Ok()) + if (!sockSrv->IsOk()) { - // We use Ok() here to see if everything is ok + // We use IsOk() here to see if everything is ok m_lastError = wxPROTO_PROTERR; delete sockSrv; return NULL; @@ -683,7 +686,7 @@ public: // when checking the result, the stream will // almost always show an error, even if the file was - // properly transfered, thus, lets just grab the result + // properly transfered, thus, let's just grab the result // we are looking for "226 transfer completed" char code = m_ftp->GetResult(); @@ -960,15 +963,15 @@ int wxFTP::GetFileSize(const wxString& fileName) // substring containing the name we are looking for. We // stop the iteration at the first occurrence of the // filename. The search is not case-sensitive. - bool foundIt = false; - + const size_t numFiles = fileList.size(); size_t i; - for ( i = 0; !foundIt && i < fileList.GetCount(); i++ ) + for ( i = 0; i < fileList.GetCount(); i++ ) { - foundIt = fileList[i].Upper().Contains(fileName.Upper()); + if ( fileList[i].Upper().Contains(fileName.Upper()) ) + break; } - if ( foundIt ) + if ( i != numFiles ) { // The index i points to the first occurrence of // fileName in the array Now we have to find out what