From 421b6cd39389527271eb6aaf570eff8c7956dd38 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 26 Apr 2020 13:42:20 +0100 Subject: [PATCH] WebServer: Add optional positional port agument This allows us to start WebServer on a port other than 8000, or multiple instances of it at the same time :^) Also print out what port was being used in the end. --- Servers/WebServer/main.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Servers/WebServer/main.cpp b/Servers/WebServer/main.cpp index a7a1a0101a..7e218b8bb8 100644 --- a/Servers/WebServer/main.cpp +++ b/Servers/WebServer/main.cpp @@ -25,6 +25,7 @@ */ #include "Client.h" +#include #include #include #include @@ -32,8 +33,18 @@ int main(int argc, char** argv) { - (void)argc; - (void)argv; + u16 default_port = 8000; + + int port = default_port; + + Core::ArgsParser args_parser; + args_parser.add_positional_argument(port, "Port to listen on", "port", Core::ArgsParser::Required::No); + args_parser.parse(argc, argv); + + if ((u16)port != port) { + printf("Warning: invalid port number: %d\n", port); + port = default_port; + } if (pledge("stdio accept rpath inet unix cpath fattr", nullptr) < 0) { perror("pledge"); @@ -51,7 +62,8 @@ int main(int argc, char** argv) client->start(); }; - server->listen({}, 8000); + server->listen({}, port); + printf("Listening on 0.0.0.0:%d\n", port); if (unveil("/www", "r") < 0) { perror("unveil");