diff options
| author | Xavier Del Campo <xavier.delcampo@midokura.com> | 2023-11-16 12:23:08 +0100 |
|---|---|---|
| committer | Xavier Del Campo <xavier.delcampo@midokura.com> | 2023-11-20 16:06:19 +0100 |
| commit | 98f5f52461b0c1ab1ee3331722bd32e2db9e1d41 (patch) | |
| tree | 9ef7ad87da6f857af6e82e1067c4ffb83a795035 /server.c | |
| parent | 8280cc40b94a89fc4d22a1954478a7a55da2800c (diff) | |
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.
Diffstat (limited to 'server.c')
| -rw-r--r-- | server.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -320,7 +320,8 @@ static int init_signals(void) return 0; } -struct server *server_init(const unsigned short port) +struct server *server_init(const unsigned short port, + unsigned short *const outport) { struct server *const s = malloc(sizeof *s); @@ -373,8 +374,9 @@ struct server *server_init(const unsigned short port) fprintf(stderr, "%s: getsockname(2): %s\n", __func__, strerror(errno)); goto failure; } + else if (outport) + *outport = ntohs(in.sin_port); - printf("Listening on port %hu\n", ntohs(in.sin_port)); return s; failure: |
