Mercurial Hosting > luan
comparison 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 |
comparison
equal
deleted
inserted
replaced
1262:81d3a01fbd09 | 1263:382c444a6c77 |
---|---|
11 local java_to_table_deep = Table.java_to_table_deep or error() | 11 local java_to_table_deep = Table.java_to_table_deep or error() |
12 local Package = require "luan:Package.luan" | 12 local Package = require "luan:Package.luan" |
13 local String = require "luan:String.luan" | 13 local String = require "luan:String.luan" |
14 local lower = String.lower or error() | 14 local lower = String.lower or error() |
15 local matches = String.matches or error() | 15 local matches = String.matches or error() |
16 local trim = String.trim or error() | |
16 local IoLuan = require "java:luan.modules.IoLuan" | 17 local IoLuan = require "java:luan.modules.IoLuan" |
17 local LuanJava = require "java:luan.Luan" | 18 local LuanJava = require "java:luan.Luan" |
18 local Request = require "java:luan.webserver.Request" | 19 local Request = require "java:luan.webserver.Request" |
19 local Response = require "java:luan.webserver.Response" | 20 local Response = require "java:luan.webserver.Response" |
20 local ResponseOutputStream = require "java:luan.webserver.ResponseOutputStream" | 21 local ResponseOutputStream = require "java:luan.webserver.ResponseOutputStream" |
21 local Status = require "java:luan.webserver.Status" | 22 local Status = require "java:luan.webserver.Status" |
22 local OutputStreamWriter = require "java:java.io.OutputStreamWriter" | 23 local OutputStreamWriter = require "java:java.io.OutputStreamWriter" |
23 local HashMap = require "java:java.util.HashMap" | 24 local HashMap = require "java:java.util.HashMap" |
25 local Logging = require "luan:logging/Logging.luan" | |
26 local logger = Logging.logger "Http" | |
24 | 27 |
25 | 28 |
26 local Http = {} | 29 local Http = {} |
27 | 30 |
28 local old_java_to_table_shallow = Table.java_to_table_shallow or error() | 31 local old_java_to_table_shallow = Table.java_to_table_shallow or error() |
155 end | 158 end |
156 response.writer and response.writer.close() | 159 response.writer and response.writer.close() |
157 return java | 160 return java |
158 end | 161 end |
159 | 162 |
163 function Http.error_priority(java_request,e) | |
164 return "error" | |
165 end | |
166 | |
167 function Http.handle_error(java_request,e) | |
168 local call = Http.error_priority(java_request,e) | |
169 local err = e.get_stack_trace_string() | |
170 logger[call](err.."\n"..trim(java_request.rawHead).."\n") | |
171 local msg = "Internel Server Error\n\n"..err | |
172 return Response.errorResponse( Status.INTERNAL_SERVER_ERROR, msg ) | |
173 end | |
174 | |
160 return Http | 175 return Http |