Update.
This commit is contained in:
parent
fbc1a6e294
commit
9c04068eac
18
src/module/web.wren
vendored
18
src/module/web.wren
vendored
@ -1,5 +1,6 @@
|
||||
// retoor <retoor@molodetz.nl>
|
||||
|
||||
import "scheduler" for Scheduler
|
||||
import "net" for Socket, Server
|
||||
import "tls" for TlsSocket
|
||||
import "dns" for Dns
|
||||
@ -827,8 +828,25 @@ class Application {
|
||||
while (true) {
|
||||
var socket = server.accept()
|
||||
if (socket == null) continue
|
||||
var self = this
|
||||
Scheduler.add {
|
||||
self.handleConnectionSafe_(socket)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleConnectionSafe_(socket) {
|
||||
var fiber = Fiber.new {
|
||||
handleConnection_(socket)
|
||||
}
|
||||
var error = fiber.try()
|
||||
if (error != null) {
|
||||
var response = Response.new()
|
||||
response.status = 500
|
||||
response.body = "Internal Server Error"
|
||||
Fiber.new { socket.write(response.build()) }.try()
|
||||
Fiber.new { socket.close() }.try()
|
||||
}
|
||||
}
|
||||
|
||||
handleConnection_(socket) {
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
static const char* webModuleSource =
|
||||
"// retoor <retoor@molodetz.nl>\n"
|
||||
"\n"
|
||||
"import \"scheduler\" for Scheduler\n"
|
||||
"import \"net\" for Socket, Server\n"
|
||||
"import \"tls\" for TlsSocket\n"
|
||||
"import \"dns\" for Dns\n"
|
||||
@ -831,8 +832,25 @@ static const char* webModuleSource =
|
||||
" while (true) {\n"
|
||||
" var socket = server.accept()\n"
|
||||
" if (socket == null) continue\n"
|
||||
" var self = this\n"
|
||||
" Scheduler.add {\n"
|
||||
" self.handleConnectionSafe_(socket)\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" handleConnectionSafe_(socket) {\n"
|
||||
" var fiber = Fiber.new {\n"
|
||||
" handleConnection_(socket)\n"
|
||||
" }\n"
|
||||
" var error = fiber.try()\n"
|
||||
" if (error != null) {\n"
|
||||
" var response = Response.new()\n"
|
||||
" response.status = 500\n"
|
||||
" response.body = \"Internal Server Error\"\n"
|
||||
" Fiber.new { socket.write(response.build()) }.try()\n"
|
||||
" Fiber.new { socket.close() }.try()\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" handleConnection_(socket) {\n"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user