aboutsummaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-01-01 19:04:17 +0200
committerSyndamia <kamen@syndamia.com>2024-01-01 19:04:17 +0200
commitf3ab0863404a8eb723ad09756a5aa53d054a0160 (patch)
treeba15b831e729cf97e183a5af8cc1c1028f7dbf93 /server.c
parent7eb898a6f4ca429416ba2ab07d93564f137dd8e2 (diff)
downloadpico-web-f3ab0863404a8eb723ad09756a5aa53d054a0160.tar
pico-web-f3ab0863404a8eb723ad09756a5aa53d054a0160.tar.gz
pico-web-f3ab0863404a8eb723ad09756a5aa53d054a0160.zip
[server] Implemented ability to change host and port with arguments
Diffstat (limited to 'server.c')
-rw-r--r--server.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/server.c b/server.c
index 8d04c1c..da503ab 100644
--- a/server.c
+++ b/server.c
@@ -60,21 +60,38 @@ 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