From 03e3e77a7c1601ec66e45d0157006a3162d64381 Mon Sep 17 00:00:00 2001 From: HackerDude <69104218+ThatHackerDudeFromCyberspace@users.noreply.github.com> Date: Wed, 23 Apr 2025 11:20:33 +0100 Subject: [PATCH] Do not cache range requests Fixes video streaming on Chrome --- lib/webrick/httpservlet/filehandler.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/webrick/httpservlet/filehandler.rb b/lib/webrick/httpservlet/filehandler.rb index 4e759d8..fd7cfe7 100644 --- a/lib/webrick/httpservlet/filehandler.rb +++ b/lib/webrick/httpservlet/filehandler.rb @@ -46,12 +46,12 @@ def do_GET(req, res) mtime = st.mtime res['etag'] = sprintf("%x-%x-%x", st.ino, st.size, st.mtime.to_i) - if not_modified?(req, res, mtime, res['etag']) - res.body = '' - raise HTTPStatus::NotModified - elsif req['range'] + if req['range'] make_partial_content(req, res, @local_path, st.size) raise HTTPStatus::PartialContent + elsif not_modified?(req, res, mtime, res['etag']) + res.body = '' + raise HTTPStatus::NotModified else mtype = HTTPUtils::mime_type(@local_path, @config[:MimeTypes]) res['content-type'] = mtype