From f3ab0863404a8eb723ad09756a5aa53d054a0160 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 1 Jan 2024 19:04:17 +0200 Subject: [server] Implemented ability to change host and port with arguments --- server.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'server.c') diff --git a/server.c b/server.c index 8d04c1c..da503ab 100644 --- a/server.c +++ b/server.c @@ -59,22 +59,39 @@ void handler_refuseConnections(int signum) { } int main(int argc, char* argv[]) { + /* + * Get server parameters + */ + + sds host = sdsnew("127.0.0.1"); + sds port = sdsnew("8080"); + + int argvOffset = 1; + if (charCount(argv[1], ',') == 1) { + argvOffset++; + char* sep = strchr(argv[1], ','); + sdsfree(host); + host = sdsnewlen(argv[1], sep - argv[1]); + sdsfree(port); + port = sdsnew(sep + 1); + } + /* * Get hosts */ - int vhostsc = argc - 1; + int vhostsc = argc - argvOffset; sds **vhosts = malloc(vhostsc * sizeof(sds*)); for (int i = 0, temp = 0; i < vhostsc; i++) { - vhosts[i] = sdssplitlen(argv[i+1], strlen(argv[i+1]), ",", 1, &temp); + vhosts[i] = sdssplitlen(argv[i+argvOffset], strlen(argv[i+argvOffset]), ",", 1, &temp); } /* * Create socket for accepting connections */ - int fd_socket = createCommunicationSocket("127.0.0.1", "8080"); - printf("Listening on %s:%s\n", "127.0.0.1", "8080"); + int fd_socket = createCommunicationSocket(host, port); + printf("Listening on %s:%s\n", host, port); /* * Server command-line interface -- cgit v1.2.3