From e0d9e05b447c77e500c38b199115534eba886843 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 16 Dec 2022 10:38:15 +0100 Subject: [PATCH] cmd/tcpserv: handle errors on listen --- cmd/tcpserv/main.ha | 16 ++++++++++++---- diff --git a/cmd/tcpserv/main.ha b/cmd/tcpserv/main.ha index c48d71b898413921914d5d33c918d2ef3047f56e..7cdecfff4d03ae3dedd8d1bf1c1db91e5d5bed00 100644 --- a/cmd/tcpserv/main.ha +++ b/cmd/tcpserv/main.ha @@ -1,3 +1,4 @@ +use errors; use ev; use io; use log; @@ -26,7 +27,14 @@ export fn main() void = { const loop = ev::newloop()!; defer ev::finish(&loop); - const sock = ev::listen_tcp(&loop, ip::LOCAL_V4, 12345)!; + const sock = match (ev::listen_tcp(&loop, ip::LOCAL_V4, 12345)) { + case let err: net::error => + log::fatalf("Error: listen: {}", net::strerror(err)); + case let err: errors::error => + log::fatalf("Error: listen: {}", errors::strerror(err)); + case let sock: *ev::file => + yield sock; + }; defer ev::close(sock); let state = server { @@ -48,7 +56,7 @@ const sock = match (r) { case let sock: *ev::file => yield sock; case let err: net::error => - log::printfln("error: accept: {}", net::strerror(err)); + log::printfln("Error: accept: {}", net::strerror(err)); ev::stop(server.loop); server.exit = 1; return; @@ -74,7 +82,7 @@ fn client_read(sock: *ev::file, r: (size | io::EOF | io::error)) void = { const client = ev::getuser(sock): *client; const n = match (r) { case let err: io::error => - log::printfln("{}:{}: error: read: {}", + log::printfln("{}:{}: Error: read: {}", ip::string(client.addr), client.port, io::strerror(err)); client_close(client); @@ -93,7 +101,7 @@ fn client_write(sock: *ev::file, r: (size | io::error)) void = { const client = ev::getuser(sock): *client; const n = match (r) { case let err: io::error => - log::printfln("{}:{}: error: write: {}", + log::printfln("{}:{}: Error: write: {}", ip::string(client.addr), client.port, io::strerror(err)); client_close(client); -- 2.48.1