diff --git a/src/iptvsimple/utilities/WebUtils.cpp b/src/iptvsimple/utilities/WebUtils.cpp index 165e139c..cdcafaec 100644 --- a/src/iptvsimple/utilities/WebUtils.cpp +++ b/src/iptvsimple/utilities/WebUtils.cpp @@ -121,6 +121,11 @@ bool WebUtils::IsNfsUrl(const std::string& url) return StringUtils::StartsWith(url, NFS_PREFIX); } +bool WebUtils::IsSpecialUrl(const std::string& url) +{ + return StringUtils::StartsWith(url, SPECIAL_PREFIX); +} + std::string WebUtils::RedactUrl(const std::string& url) { std::string redactedUrl = url; @@ -150,7 +155,7 @@ bool WebUtils::Check(const std::string& strURL, int connectionTimeoutSecs, bool return false; } - if (!IsNfsUrl(strURL)) + if (!IsNfsUrl(strURL) && !IsSpecialUrl(strURL)) fileHandle.CURLAddOption(ADDON_CURL_OPTION_PROTOCOL, "connection-timeout", std::to_string(connectionTimeoutSecs)); if (!fileHandle.CURLOpen(ADDON_READ_NO_CACHE)) diff --git a/src/iptvsimple/utilities/WebUtils.h b/src/iptvsimple/utilities/WebUtils.h index 22ec49a5..3a118094 100644 --- a/src/iptvsimple/utilities/WebUtils.h +++ b/src/iptvsimple/utilities/WebUtils.h @@ -16,6 +16,7 @@ namespace iptvsimple static const std::string HTTP_PREFIX = "http://"; static const std::string HTTPS_PREFIX = "https://"; static const std::string NFS_PREFIX = "nfs://"; + static const std::string SPECIAL_PREFIX = "special://"; static const std::string UDP_MULTICAST_PREFIX = "udp://@"; static const std::string RTP_MULTICAST_PREFIX = "rtp://@"; @@ -28,6 +29,7 @@ namespace iptvsimple static std::string ReadFileContentsStartOnly(const std::string& url, int* httpCode); static bool IsHttpUrl(const std::string& url); static bool IsNfsUrl(const std::string& url); + static bool IsSpecialUrl(const std::string& url); static std::string RedactUrl(const std::string& url); static bool Check(const std::string& url, int connectionTimeoutSecs, bool isLocalPath = false); };