# FastForward/Rewind patch for Syabas firmware (AVeL LinkPlayer2, etc) # Patch taken from Mythtv Trunk: # http://svn.mythtv.org/trac/changeset/12394/trunk/mythtv/libs/libmythupnp/httprequest.cpp # Referenced in bug #2500 # http://svn.mythtv.org/trac/ticket/2500 # diff -ruN mythtv-0.20.1.orig/libs/libmythupnp/httprequest.cpp mythtv-0.20.1/libs/libmythupnp/httprequest.cpp --- mythtv-0.20.1.orig/libs/libmythupnp/httprequest.cpp 2006-12-18 11:02:27.000000000 -0500 +++ mythtv-0.20.1/libs/libmythupnp/httprequest.cpp 2007-05-18 17:23:02.000000000 -0400 @@ -228,23 +228,31 @@ QString sRange = GetHeaderValue( "range", "" ); bool bRange = false; + QString sUserAgent = GetHeaderValue( "User-Agent", ""); - if (sRange.length() > 0) - { - if ( bRange = ParseRange( sRange, llSize, &llStart, &llEnd ) ) - { - // sContentType="video/x-msvideo"; - m_nResponseStatus = 206; - m_mapRespHeaders[ "Content-Range" ] = QString("%1-%2/%3") - .arg( llStart ) - .arg( llEnd ) - .arg( llSize ); - //llSize = (llEnd - llStart) + 1; - llSize = (llEnd - llStart); + if ( sUserAgent.contains( "Syabas", false ) == 0 ) + { + // ------------------------------------------------------------------ + // Process any Range Header + // ------------------------------------------------------------------ + + QString sRange = GetHeaderValue( "RANGE", "" ); //range + + if (sRange.length() > 0) + { + if ( bRange = ParseRange( sRange, llSize, &llStart, &llEnd ) ) + { + m_nResponseStatus = 206; + m_mapRespHeaders[ "Content-Range" ] = QString("%1-%2/%3") + .arg( llStart ) + .arg( llEnd ) + .arg( llSize ); + llSize = (llEnd - llStart) + 1; - } + } + } } - + if (bRange == false) { // DSM-?20 specific response headers