[vlc-commits] demux: adaptive: compute new location when processing header
vlc/vlc-3.0 | branch: master | Francois Cartegnie| Tue Feb 13 13:46:11 2018 +0100| [32302c9fe79471c9b4a06f59a89600e3dbf5bd44] | committer: Francois Cartegnie demux: adaptive: compute new location when processing header (cherry picked from commit b952a7fea62ddefeee4e9157354d5a9ae756f769) > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=32302c9fe79471c9b4a06f59a89600e3dbf5bd44 --- modules/demux/adaptive/http/HTTPConnection.cpp | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/demux/adaptive/http/HTTPConnection.cpp b/modules/demux/adaptive/http/HTTPConnection.cpp index 971f0c84a7..f30022aa4c 100644 --- a/modules/demux/adaptive/http/HTTPConnection.cpp +++ b/modules/demux/adaptive/http/HTTPConnection.cpp @@ -135,6 +135,7 @@ int HTTPConnection::request(const std::string , const BytesRange ) /* Set new path for this query */ params.setPath(path); +locationparams = ConnectionParams(); msg_Dbg(p_object, "Retrieving %s @%zu", params.getUrl().c_str(), range.isValid() ? range.getStartByte() : 0); @@ -179,11 +180,6 @@ int HTTPConnection::request(const std::string , const BytesRange ) else if(i_ret == VLC_ETIMEOUT) /* redir */ { socket->disconnect(); -if(locationparams.getScheme().empty()) -params.setPath(locationparams.getPath()); -else -params = locationparams; -locationparams = ConnectionParams(); } else if(i_ret == VLC_EGENERIC) { @@ -386,7 +382,14 @@ void HTTPConnection::onHeader(const std::string , } else if(key == "Location") { -locationparams = ConnectionParams( value ); +locationparams = ConnectionParams(); +ConnectionParams loc = ConnectionParams( value ); +if(loc.getScheme().empty()) +{ +locationparams = params; +locationparams.setPath(loc.getPath()); +} +else locationparams = loc; } else if(key == "Set-Cookie" && authStorage) { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: adaptive: compute new location when processing header
vlc | branch: master | Francois Cartegnie| Tue Feb 13 13:46:11 2018 +0100| [b952a7fea62ddefeee4e9157354d5a9ae756f769] | committer: Francois Cartegnie demux: adaptive: compute new location when processing header > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b952a7fea62ddefeee4e9157354d5a9ae756f769 --- modules/demux/adaptive/http/HTTPConnection.cpp | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/demux/adaptive/http/HTTPConnection.cpp b/modules/demux/adaptive/http/HTTPConnection.cpp index 971f0c84a7..f30022aa4c 100644 --- a/modules/demux/adaptive/http/HTTPConnection.cpp +++ b/modules/demux/adaptive/http/HTTPConnection.cpp @@ -135,6 +135,7 @@ int HTTPConnection::request(const std::string , const BytesRange ) /* Set new path for this query */ params.setPath(path); +locationparams = ConnectionParams(); msg_Dbg(p_object, "Retrieving %s @%zu", params.getUrl().c_str(), range.isValid() ? range.getStartByte() : 0); @@ -179,11 +180,6 @@ int HTTPConnection::request(const std::string , const BytesRange ) else if(i_ret == VLC_ETIMEOUT) /* redir */ { socket->disconnect(); -if(locationparams.getScheme().empty()) -params.setPath(locationparams.getPath()); -else -params = locationparams; -locationparams = ConnectionParams(); } else if(i_ret == VLC_EGENERIC) { @@ -386,7 +382,14 @@ void HTTPConnection::onHeader(const std::string , } else if(key == "Location") { -locationparams = ConnectionParams( value ); +locationparams = ConnectionParams(); +ConnectionParams loc = ConnectionParams( value ); +if(loc.getScheme().empty()) +{ +locationparams = params; +locationparams.setPath(loc.getPath()); +} +else locationparams = loc; } else if(key == "Set-Cookie" && authStorage) { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits