diff options
author | ulion <ulion2002@gmail.com> | 2013-04-01 04:04:02 -0700 |
---|---|---|
committer | ulion <ulion2002@gmail.com> | 2013-04-01 04:04:02 -0700 |
commit | 7d6509b76b30185ceeaea2ad23be10fe13e2685e (patch) | |
tree | 9ffdb210b7c6b0770c30148063186ad3fcb855c7 | |
parent | ef8e44ee4b93baa087f132242581cd2b4cf7d5b9 (diff) | |
parent | aaca40b9ae4bae5197bf8f021bd8d323a55931e5 (diff) |
Merge pull request #2521 from ulion/curl_protocol_option_seekable
Add protocol option 'seekable' for CurlFile (http/https).
-rw-r--r-- | xbmc/filesystem/CurlFile.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp index bc8f6880a7..e981229cda 100644 --- a/xbmc/filesystem/CurlFile.cpp +++ b/xbmc/filesystem/CurlFile.cpp @@ -771,6 +771,8 @@ void CCurlFile::ParseAndCorrectUrl(CURL &url2) SetContentEncoding(value); else if (name.Equals("noshout") && value.Equals("true")) m_skipshout = true; + else if (name.Equals("seekable") && value.Equals("0")) + m_seekable = false; else SetRequestHeader(name, value); } @@ -893,6 +895,7 @@ bool CCurlFile::Open(const CURL& url) if( m_state->m_easyHandle == NULL ) g_curlInterface.easy_aquire(url2.GetProtocol(), url2.GetHostName(), &m_state->m_easyHandle, &m_state->m_multiHandle ); + m_seekable = true; // setup common curl options SetCommonOptions(m_state); SetRequestHeaders(m_state); @@ -933,11 +936,10 @@ bool CCurlFile::Open(const CURL& url) if(m_state->m_httpheader.GetValue("Transfer-Encoding").Equals("chunked")) m_state->m_fileSize = 0; - m_seekable = false; - if(m_state->m_fileSize > 0) + if(m_state->m_fileSize <= 0) + m_seekable = false; + if (m_seekable) { - m_seekable = true; - if(url2.GetProtocol().Equals("http") || url2.GetProtocol().Equals("https")) { |