comparison src/luan/modules/http/Server.luan @ 1281:7fc83fd2a39a

http/Server cleanup
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 20 Dec 2018 14:09:19 -0700
parents 3f4644246e39
children 51a1987b55a3
comparison
equal deleted inserted replaced
1280:781ec0a92bb5 1281:7fc83fd2a39a
38 function Io.schemes.site(path) 38 function Io.schemes.site(path)
39 return Io.uri( dir..path ) 39 return Io.uri( dir..path )
40 end 40 end
41 end 41 end
42 42
43 function Server.start() 43 local function start(server)
44 try { 44 try {
45 function() 45 function()
46 LuanHandler.start(Server.server) 46 LuanHandler.start(server)
47 end 47 end
48 catch = function(e) 48 catch = function(e)
49 -- e.java.printStackTrace(); 49 -- e.java.printStackTrace();
50 Io.print_to(Io.stderr, e ) 50 Io.print_to(Io.stderr, e )
51 System.exit(-1) 51 System.exit(-1)
52 end 52 end
53 } 53 }
54 end 54 end
55 55
56 function Server.start_rpc() 56 function Server.start_rpc(luan_handler)
57 function Rpc.functions.call(domain,fn_name,...) 57 function Rpc.functions.call(domain,fn_name,...)
58 return Server.luan_handler.call_rpc(fn_name,...) 58 return luan_handler.call_rpc(fn_name,...)
59 end 59 end
60 Thread.fork(Rpc.serve) 60 Thread.fork(Rpc.serve)
61 end 61 end
62 62
63 function Server.serve(dir,port) 63 function Server.serve(dir,port)
72 handler = IndexHandler.new(handler) 72 handler = IndexHandler.new(handler)
73 handler = ListHandler.new( handler, dir_handler, not_found_hander ) 73 handler = ListHandler.new( handler, dir_handler, not_found_hander )
74 handler = ContentTypeHandler.new(handler) 74 handler = ContentTypeHandler.new(handler)
75 handler = SafeHandler.new(handler) 75 handler = SafeHandler.new(handler)
76 handler = LogHandler.new(handler) 76 handler = LogHandler.new(handler)
77 Server.server = JavaServer.new(port,handler) 77 local server = JavaServer.new(port,handler)
78 Server.start() 78 start(server)
79 Server.start_rpc() 79 return server, luan_handler
80 end 80 end
81 81
82 function Server.serve_for_proxy(dir,port) 82 function Server.serve_for_proxy(dir,port)
83 port = port or 8080 83 port = port or 8080
84 Server.init_dir(dir) 84 Server.init_dir(dir)
85 local handler = LuanHandler.new() 85 local luan_handler = LuanHandler.new()
86 handler = IndexHandler.new(handler) 86 local handler = IndexHandler.new(luan_handler)
87 handler = ContentTypeHandler.new(handler) 87 handler = ContentTypeHandler.new(handler)
88 handler = SafeHandler.new(handler) 88 handler = SafeHandler.new(handler)
89 Server.server = JavaServer.new(port,handler) 89 local server = JavaServer.new(port,handler)
90 Server.start() 90 start(server)
91 return server, luan_handler
91 end 92 end
92 93
93 return Server 94 return Server