mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Early return from range if request type is not GET
This commit is contained in:
		
							parent
							
								
									0543142a10
								
							
						
					
					
						commit
						476b27892e
					
				
					 5 changed files with 37 additions and 40 deletions
				
			
		|  | @ -4,7 +4,6 @@ require "./kemal/*" | |||
| require "./kemal/helpers/*" | ||||
| 
 | ||||
| module Kemal | ||||
| 
 | ||||
|   # Overload of self.run with the default startup logging | ||||
|   def self.run(port = nil) | ||||
|     self.run port do | ||||
|  | @ -14,9 +13,8 @@ module Kemal | |||
| 
 | ||||
|   # Overload of self.run to allow just a block | ||||
|   def self.run(&block) | ||||
|     self.run nil &block | ||||
|     self.run nil & block | ||||
|   end | ||||
|     | ||||
| 
 | ||||
|   # The command to run a `Kemal` application. | ||||
|   # The port can be given to `#run` but is optional. | ||||
|  |  | |||
|  | @ -1,7 +1,6 @@ | |||
| class HTTP::Server::Response | ||||
|   class Output | ||||
|     def close | ||||
| 
 | ||||
|       unless response.wrote_headers? && !response.headers.has_key?("Content-Range") | ||||
|         response.content_length = @out_count | ||||
|       end | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ module Kemal | |||
|         request_headers = context.request.headers | ||||
|         filesize = File.size(file_path) | ||||
|         File.open(file_path) do |file| | ||||
|           if context.request.headers.has_key?("Range") && context.request.method == "GET" | ||||
|           if context.request.method == "GET" && context.request.headers.has_key?("Range") | ||||
|             next multipart(file, context) | ||||
|           end | ||||
|           if request_headers.includes_word?("Accept-Encoding", "gzip") && config.is_a?(Hash) && config["gzip"] == true && filesize > minsize && Utils.zip_types(file_path) | ||||
|  | @ -80,7 +80,7 @@ module Kemal | |||
|     end | ||||
| 
 | ||||
|     def multipart(file, env) | ||||
|       #See http://httpwg.org/specs/rfc7233.html | ||||
|       # See http://httpwg.org/specs/rfc7233.html | ||||
|       fileb = file.size | ||||
| 
 | ||||
|       range = env.request.headers["Range"] | ||||
|  | @ -100,7 +100,7 @@ module Kemal | |||
|       end | ||||
| 
 | ||||
|       if endb == 0 | ||||
|           endb = fileb | ||||
|         endb = fileb | ||||
|       end | ||||
| 
 | ||||
|       if startb < endb && endb <= fileb | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue