Mercurial Hosting > luan
diff src/luan/modules/http/impl/Server.luan @ 1167:7e6f28c769a1
better handlers
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 08 Feb 2018 19:06:31 -0700 |
parents | e2d2354807f3 |
children | 312e4cadd508 |
line wrap: on
line diff
--- a/src/luan/modules/http/impl/Server.luan Thu Feb 08 02:22:51 2018 -0700 +++ b/src/luan/modules/http/impl/Server.luan Thu Feb 08 19:06:31 2018 -0700 @@ -8,7 +8,7 @@ local Package = require "luan:Package.luan" local Rpc = require "luan:Rpc.luan" local Thread = require "luan:Thread.luan" ---local Http = require "luan:http/Http.luan" +local Http = require "luan:http/Http.luan" require "luan:logging/init.luan" -- initialize logging local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "http/Server" @@ -16,6 +16,7 @@ java() local JavaServer = require "java:luan.webserver.Server" local FileHandler = require "java:luan.webserver.handlers.FileHandler" +local DirHandler = require "java:luan.webserver.handlers.DirHandler" local IndexHandler = require "java:luan.webserver.handlers.IndexHandler" local ContentTypeHandler = require "java:luan.webserver.handlers.ContentTypeHandler" local SafeHandler = require "java:luan.webserver.handlers.SafeHandler" @@ -39,19 +40,20 @@ dir_uri = "file:"..dir end dir_uri = gsub(dir_uri,"/$","") -- remove trailing '/' if any --- Http.dir = dir_uri + Http.dir = dir_uri function Io.schemes.site(path) return Io.uri( dir_uri..path ) end - local handler = FileHandler.new(dir_path) + local file_handler = FileHandler.new(dir_path) + local dir_handler = DirHandler.new(dir_path) local luan_handler = LuanHandler.new() - handler = ListHandler.new( luan_handler, handler ) + local not_found_hander = NotFound.new(luan_handler) + local handler = ListHandler.new( luan_handler, file_handler ) handler = IndexHandler.new(handler) - handler = NotFound.new(handler) + handler = ListHandler.new( handler, dir_handler, not_found_hander ) handler = ContentTypeHandler.new(handler) handler = SafeHandler.new(handler) handler = LogHandler.new(handler) --- Server.handlers.addHandler(NotFound.new(Server.luan_handler)) Server.server = JavaServer.new(Server.port,handler) end