From aaca40b9ae4bae5197bf8f021bd8d323a55931e5 Mon Sep 17 00:00:00 2001 From: ulion Date: Mon, 1 Apr 2013 12:19:50 +0800 Subject: Add protocol option 'seekable' for CurlFile. --- xbmc/filesystem/CurlFile.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp index bc386f50cf..d140fb5e47 100644 --- a/xbmc/filesystem/CurlFile.cpp +++ b/xbmc/filesystem/CurlFile.cpp @@ -770,6 +770,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); } @@ -892,6 +894,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); @@ -932,11 +935,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")) { -- cgit v1.2.3