From 81915974f6986634d17833ae69106091b9562a06 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sat, 6 Nov 1999 17:28:02 +0000 Subject: [PATCH] fixed URL parsing problem git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/fs_inet.cpp | 45 +++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/src/common/fs_inet.cpp b/src/common/fs_inet.cpp index 0a1e19d31a..4a06c7c460 100644 --- a/src/common/fs_inet.cpp +++ b/src/common/fs_inet.cpp @@ -70,7 +70,13 @@ class wxInetCacheNode : public wxObject bool wxInternetFSHandler::CanOpen(const wxString& location) { wxString p = GetProtocol(location); - return (p == wxT("http")) || (p == wxT("ftp")); + if ((p == wxT("http")) || (p == wxT("ftp"))) + { + wxURL url(GetProtocol(location) + wxT(":") + GetRightLocation(location)); + return (url.GetError() == wxURL_NOERR); + } + else + return FALSE; } @@ -87,27 +93,30 @@ wxFSFile* wxInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxStri if (info == NULL) { wxURL url(right); - s = url.GetInputStream(); - content = url.GetProtocol().GetContentType(); - if (content == wxEmptyString) content = GetMimeTypeFromExt(location); - if (s) + if (url.GetError() == wxURL_NOERR) { - wxChar buf[256]; - - wxGetTempFileName( wxT("wxhtml"), buf); - info = new wxInetCacheNode(buf, content); - m_Cache.Put(right, info); - - { // ok, now copy it: - wxFileOutputStream sout((wxString)buf); - s -> Read(sout); // copy the stream + s = url.GetInputStream(); + content = url.GetProtocol().GetContentType(); + if (content == wxEmptyString) content = GetMimeTypeFromExt(location); + if (s) + { + wxChar buf[256]; + + wxGetTempFileName( wxT("wxhtml"), buf); + info = new wxInetCacheNode(buf, content); + m_Cache.Put(right, info); + + { // ok, now copy it: + wxFileOutputStream sout((wxString)buf); + s -> Read(sout); // copy the stream + } + delete s; } - delete s; + else + return (wxFSFile*) NULL; // we can't open the URL } else - { - return (wxFSFile*) NULL; // we can't open the URL - } + return (wxFSFile*) NULL; // incorrect URL } // Load item from cache: -- 2.50.0