commit 6cf4d366a081ab755ea4b569a25e8ce5166534bf
parent 2e9e250b4836022efa84529b654ec751bf016e66
Author: Francesco Saccone <francesco@francescosaccone.com>
Date: Mon, 31 Mar 2025 13:36:47 +0200
feat: define user and group and check if they exist
Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>
Diffstat:
1 file changed, 17 insertions(+), 0 deletions(-)
diff --git a/hermes.c b/hermes.c
@@ -1,3 +1,5 @@
+#include <grp.h>
+#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -22,6 +24,8 @@ main(int argc, char *argv[]) {
directory_index[DIRECTORY_INDEX_MAX_LENGTH] = "index.html";
int i, port = 80,
server_socket_fd;
+ struct passwd *user;
+ struct group *group;
for (i = 1; i < argc; i++) {
char *argument = argv[i];
@@ -92,6 +96,19 @@ main(int argc, char *argv[]) {
return 1;
};
+ user = getpwnam(user_name);
+ group = getgrnam(group_name);
+
+ if (user == NULL) {
+ printf("error: user %s does not exist.\n", user_name);
+ return 1;
+ }
+
+ if (group == NULL) {
+ printf("error: group %s does not exist.\n", group_name);
+ return 1;
+ }
+
server_socket_fd = create_socket(port);
while (1) {