diff options
-rw-r--r-- | main.ha | 12 | ||||
-rw-r--r-- | templates/_footer.htmpl | 2 |
2 files changed, 12 insertions, 2 deletions
@@ -16,6 +16,7 @@ use memio; use io; use fmt; use bufio; +use unix::signal; const usage: [_]getopt::help = [ "Lindenii Forge Server", @@ -24,7 +25,15 @@ const usage: [_]getopt::help = [ let static_fs: nullable *fs::fs = null; +let running: bool = true; + +export fn sigint_handler(sig: signal::sig, info: *signal::siginfo, ucontext: *opaque) void = { + running = false; +}; + export fn main() void = { + signal::handle(signal::sig::INT, &sigint_handler, signal::flag::NONE, null); + const cmd = getopt::parse(os::args, usage...); defer getopt::finish(&cmd); @@ -39,6 +48,7 @@ export fn main() void = { }; static_fs = os::diropen("static")!; + defer fs::close(static_fs as *fs::fs); const server = match (http::listen(ip_addr, port, net::tcp::reuseport, net::tcp::reuseaddr)) { case let this: *http::server => @@ -47,7 +57,7 @@ export fn main() void = { }; defer http::server_finish(server); - for (true) { + for (running) { const serv_req = match (http::serve(server)) { case let this: *http::server_request => yield this; diff --git a/templates/_footer.htmpl b/templates/_footer.htmpl index a0d1987..71d5318 100644 --- a/templates/_footer.htmpl +++ b/templates/_footer.htmpl @@ -5,5 +5,5 @@ {{ " " }} (<a href="/:/source/">source</a>, {{ " " }} -<a href="https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/server/?branch=hare">upstream</a>) +<a href="https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/server/">upstream</a>) {{ end }} |