diff options
author | fuzzard <fuzzard@users.noreply.github.com> | 2023-12-31 04:49:30 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-31 04:49:30 +1000 |
commit | 5b827f17decd9222bdf35b26bca6445b5d6364a5 (patch) | |
tree | 4489f6f2dcf7f8fedbc2b0dba88e6525ab2f67b3 | |
parent | b0635cc0206f4f9eea566165b95e69dafcb348f3 (diff) | |
parent | a31f84b869f2425c05fddafc23739d2f7bf22271 (diff) |
Merge pull request #24353 from fuzzard/bp_fix-upnp-auth-source
[BP][uPnP] Fix playback of files accessed with curl (ftp, http, ...)
-rw-r--r-- | xbmc/filesystem/NptXbmcFile.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/xbmc/filesystem/NptXbmcFile.cpp b/xbmc/filesystem/NptXbmcFile.cpp index 04f3bae709..bcbdea1079 100644 --- a/xbmc/filesystem/NptXbmcFile.cpp +++ b/xbmc/filesystem/NptXbmcFile.cpp @@ -13,7 +13,9 @@ +---------------------------------------------------------------------*/ #include "File.h" #include "FileFactory.h" +#include "PasswordManager.h" #include "URL.h" +#include "utils/URIUtils.h" #include <limits> @@ -296,16 +298,17 @@ NPT_XbmcFile::Open(NPT_File::OpenMode mode) } bool result; - CURL* url = new CURL(name); + CURL url(URIUtils::SubstitutePath(name)); + + if (CPasswordManager::GetInstance().IsURLSupported(url) && url.GetUserName().empty()) + CPasswordManager::GetInstance().AuthenticateURL(url); // compute mode - if (mode & NPT_FILE_OPEN_MODE_WRITE) { - result = file->OpenForWrite(*url, (mode & NPT_FILE_OPEN_MODE_TRUNCATE)?true:false); - } else { - result = file->Open(*url); - } + if (mode & NPT_FILE_OPEN_MODE_WRITE) + result = file->OpenForWrite(url, (mode & NPT_FILE_OPEN_MODE_TRUNCATE) ? true : false); + else + result = file->Open(url); - delete url; if (!result) return NPT_ERROR_NO_SUCH_FILE; } |