mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Allow config.server to be lazily initiliazed. Fixes #396
This commit is contained in:
		
							parent
							
								
									61caa077b7
								
							
						
					
					
						commit
						ad692357d4
					
				
					 2 changed files with 10 additions and 10 deletions
				
			
		
							
								
								
									
										15
									
								
								src/kemal.cr
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								src/kemal.cr
									
										
									
									
									
								
							|  | @ -32,11 +32,6 @@ module Kemal | ||||||
|     config.setup |     config.setup | ||||||
|     config.port = port if port |     config.port = port if port | ||||||
| 
 | 
 | ||||||
|     config.server = HTTP::Server.new(config.host_binding, config.port, config.handlers) |  | ||||||
|     {% if !flag?(:without_openssl) %} |  | ||||||
|     config.server.tls = config.ssl |  | ||||||
|     {% end %} |  | ||||||
| 
 |  | ||||||
|     unless Kemal.config.error_handlers.has_key?(404) |     unless Kemal.config.error_handlers.has_key?(404) | ||||||
|       error 404 do |env| |       error 404 do |env| | ||||||
|         render_404 |         render_404 | ||||||
|  | @ -63,15 +58,21 @@ module Kemal | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     server = HTTP::Server.new(config.host_binding, config.port, config.handlers) | ||||||
|  |     {% if !flag?(:without_openssl) %} | ||||||
|  |     server.tls = config.ssl | ||||||
|  |     {% end %} | ||||||
|  |     config.server ||= server | ||||||
|     config.running = true |     config.running = true | ||||||
|  | 
 | ||||||
|     yield config |     yield config | ||||||
|     config.server.listen if config.env != "test" |     config.server.not_nil!.listen if config.env != "test" && config.server | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def self.stop |   def self.stop | ||||||
|     if config.running |     if config.running | ||||||
|       if config.server |       if config.server | ||||||
|         config.server.close |         config.server.not_nil!.close | ||||||
|         config.running = false |         config.running = false | ||||||
|       else |       else | ||||||
|         raise "Kemal.config.server is not set. Please use Kemal.run to set the server." |         raise "Kemal.config.server is not set. Please use Kemal.run to set the server." | ||||||
|  |  | ||||||
|  | @ -20,7 +20,7 @@ module Kemal | ||||||
| 
 | 
 | ||||||
|     getter custom_handler_position |     getter custom_handler_position | ||||||
|     property host_binding, ssl, port, env, public_folder, logging, running |     property host_binding, ssl, port, env, public_folder, logging, running | ||||||
|     property always_rescue, server, extra_options, shutdown_message |     property always_rescue, server : HTTP::Server?, extra_options, shutdown_message | ||||||
|     property serve_static : (Bool | Hash(String, Bool)) |     property serve_static : (Bool | Hash(String, Bool)) | ||||||
|     property static_headers : (HTTP::Server::Response, String, File::Stat -> Void)? |     property static_headers : (HTTP::Server::Response, String, File::Stat -> Void)? | ||||||
| 
 | 
 | ||||||
|  | @ -34,7 +34,6 @@ module Kemal | ||||||
|       @logger = nil |       @logger = nil | ||||||
|       @error_handler = nil |       @error_handler = nil | ||||||
|       @always_rescue = true |       @always_rescue = true | ||||||
|       @server = uninitialized HTTP::Server |  | ||||||
|       @router_included = false |       @router_included = false | ||||||
|       @default_handlers_setup = false |       @default_handlers_setup = false | ||||||
|       @running = false |       @running = false | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue