commit 44a85ec4df644043ad17162130c1cdda45f655dc from: Omar Polo date: Fri Dec 22 17:20:49 2023 UTC http: add a listen that takes an ip address I'm still not convinced this is better than http::listen("localhost:9090", null) but propagating net::dial::dial errors from a listen function is weird. commit - f27a90cba23761c4cfa9773e5aed0eb53efc2e32 commit + 44a85ec4df644043ad17162130c1cdda45f655dc blob - 0d9c7994a7ab2346a7b0ed2658822cebcd5d2c7f blob + c9f2dce17de9bca5f4a111bba7ebf4508f4899af --- http/listen.ha +++ http/listen.ha @@ -22,14 +22,17 @@ // OTHER DEALINGS IN THE SOFTWARE. use io; -use net::dns; +use net::ip; +use net::tcp; +use net; use strings; use ev; -// XXX generic listen would be very handy! -// something like: http::listen("localhost:8080") or maybe even -// http::listen("unix:/run/foo.sock") +export fn listen(addr: ip::addr, port: u16, mux: nullable *mux) (void | net::error) = { + const socket = tcp::listen(addr, port, tcp::reuseaddr)?; + listen_sock(socket, mux); +}; export fn listen_sock(f: io::file, mux: nullable *mux) void = { ev::add(f, ev::READ, &acceptconn, match(mux) {