aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzard <fuzzard@users.noreply.github.com>2023-12-31 04:49:30 +1000
committerGitHub <noreply@github.com>2023-12-31 04:49:30 +1000
commit5b827f17decd9222bdf35b26bca6445b5d6364a5 (patch)
tree4489f6f2dcf7f8fedbc2b0dba88e6525ab2f67b3
parentb0635cc0206f4f9eea566165b95e69dafcb348f3 (diff)
parenta31f84b869f2425c05fddafc23739d2f7bf22271 (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.cpp17
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;
}