commit c4ed0ef51338cb8eddb396d1b7d8f0bd349bd8f5
parent 4d688a2447c1384c36600ee37c5c47aa7626c833
Author: Francesco Saccone <francesco@francescosaccone.com>
Date: Sun, 30 Mar 2025 20:27:18 +0200
feat: add -i flag for directory index
Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>
Diffstat:
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/hermes.c b/hermes.c
@@ -1,16 +1,20 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "socket.h"
+#define DIRECTORY_INDEX_MAX_LENGTH 32
+
void
print_usage(char *program_name) {
- printf("usage: %s [-p port]", program_name);
+ printf("usage: %s [-p port] [-i file]", program_name);
}
int
main(int argc, char *argv[]) {
- char *program_name = argv[0];
+ char *program_name = argv[0],
+ directory_index[32] = "index.html";
int i, port = 80,
server_socket_fd;
@@ -39,6 +43,17 @@ main(int argc, char *argv[]) {
port = atoi(argv[i + 1]);
i++;
break;
+ case 'i':
+ if (strlen(argv[i + 1]) >= DIRECTORY_INDEX_MAX_LENGTH) {
+ printf("error: directory index must be less than "
+ "%u characters",
+ DIRECTORY_INDEX_MAX_LENGTH);
+ return 1;
+ }
+ strncpy(directory_index, argv[i + 1], sizeof(directory_index) -1);
+ directory_index[sizeof(directory_index) -1] = '\0';
+ i++;
+ break;
default:
print_usage(program_name);
return 1;