From 98f5f52461b0c1ab1ee3331722bd32e2db9e1d41 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Date: Thu, 16 Nov 2023 12:23:08 +0100 Subject: Split handler_loop from handler_listen Some applications might set up a struct handler object to listen on any port i.e., 0, but still need a way to determine which port number was eventually selected by the implementation. Therefore, handler_listen has been reduced to the server initialization bit, whereas the main loop has been split into its own function, namely handler_loop. Because of these changes, it no longer made sense for libweb to write the selected port to standard output, as this is something now applications can do on their own. --- handler.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'handler.c') diff --git a/handler.c b/handler.c index f6e47a3..4abbdb8 100644 --- a/handler.c +++ b/handler.c @@ -182,14 +182,20 @@ end: return ret; } -int handler_listen(struct handler *const h, const unsigned short port) +int handler_listen(struct handler *const h, const unsigned short port, + unsigned short *const outport) { - if (!(h->server = server_init(port))) + if (!(h->server = server_init(port, outport))) { fprintf(stderr, "%s: server_init failed\n", __func__); return -1; } + return 0; +} + +int handler_loop(struct handler *const h) +{ for (;;) { bool exit, io; -- cgit v1.2.3