Mercurial Hosting > luan
diff src/luan/modules/http/Http.luan @ 1263:382c444a6c77
add Http.eval_in_root and Http.handle_error
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 24 Sep 2018 22:06:25 -0600 |
parents | 198d6af7330a |
children | 781ec0a92bb5 |
line wrap: on
line diff
--- a/src/luan/modules/http/Http.luan Mon Sep 24 14:48:59 2018 -0600 +++ b/src/luan/modules/http/Http.luan Mon Sep 24 22:06:25 2018 -0600 @@ -13,6 +13,7 @@ local String = require "luan:String.luan" local lower = String.lower or error() local matches = String.matches or error() +local trim = String.trim or error() local IoLuan = require "java:luan.modules.IoLuan" local LuanJava = require "java:luan.Luan" local Request = require "java:luan.webserver.Request" @@ -21,6 +22,8 @@ local Status = require "java:luan.webserver.Status" local OutputStreamWriter = require "java:java.io.OutputStreamWriter" local HashMap = require "java:java.util.HashMap" +local Logging = require "luan:logging/Logging.luan" +local logger = Logging.logger "Http" local Http = {} @@ -157,4 +160,16 @@ return java end +function Http.error_priority(java_request,e) + return "error" +end + +function Http.handle_error(java_request,e) + local call = Http.error_priority(java_request,e) + local err = e.get_stack_trace_string() + logger[call](err.."\n"..trim(java_request.rawHead).."\n") + local msg = "Internel Server Error\n\n"..err + return Response.errorResponse( Status.INTERNAL_SERVER_ERROR, msg ) +end + return Http