commit 151576ac8e05971d1654e0d9bdcfa9a8a4a63bb4
parent e597d2b166e402888f4562691feda8d3df134ec2
Author: Francesco Saccone <francesco@francescosaccone.com>
Date: Mon, 31 Mar 2025 13:53:49 +0200
refactor: use 'critical' instead of 'printf' wherever a error is being printed
Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>
Diffstat:
2 files changed, 20 insertions(+), 24 deletions(-)
diff --git a/hermes.c b/hermes.c
@@ -5,6 +5,7 @@
#include <string.h>
#include "socket.h"
+#include "utils.h"
#define DIRECTORY_INDEX_MAX_LENGTH 32
#define USER_NAME_MAX_LENGTH 32
@@ -12,8 +13,8 @@
void
print_usage(char *program_name) {
- printf("usage: %s [-p port] [-i file] [-u user] [-g group]\n",
- program_name);
+ critical("usage: %s [-p port] [-i file] [-u user] [-g group]",
+ program_name);
}
int
@@ -33,18 +34,15 @@ main(int argc, char *argv[]) {
if (argument[0] != '-') {
print_usage(program_name);
- return 1;
}
/* if argument[2] is a non-null character */
if (argument[2]) {
print_usage(program_name);
- return 1;
}
if (!value_exists) {
print_usage(program_name);
- return 1;
}
switch (argument[1]) {
@@ -54,10 +52,9 @@ main(int argc, char *argv[]) {
break;
case 'i':
if (strlen(argv[i + 1]) >= DIRECTORY_INDEX_MAX_LENGTH) {
- printf("error: directory index must be less than "
- "%u characters\n",
- DIRECTORY_INDEX_MAX_LENGTH);
- return 1;
+ critical("error: directory index must be less than "
+ "%u characters",
+ DIRECTORY_INDEX_MAX_LENGTH);
}
strncpy(directory_index, argv[i + 1], sizeof(directory_index) - 1);
directory_index[sizeof(directory_index) - 1] = '\0';
@@ -65,10 +62,9 @@ main(int argc, char *argv[]) {
break;
case 'u':
if (strlen(argv[i + 1]) >= USER_NAME_MAX_LENGTH) {
- printf("error: the user name must be less than "
- "%u characters\n",
- USER_NAME_MAX_LENGTH);
- return 1;
+ critical("error: the user name must be less than "
+ "%u characters",
+ USER_NAME_MAX_LENGTH);
}
strncpy(user_name, argv[i + 1], sizeof(user_name) - 1);
user_name[sizeof(user_name) - 1] = '\0';
@@ -76,10 +72,9 @@ main(int argc, char *argv[]) {
break;
case 'g':
if (strlen(argv[i + 1]) >= GROUP_NAME_MAX_LENGTH) {
- printf("error: the group name must be less than "
- "%u characters\n",
- GROUP_NAME_MAX_LENGTH);
- return 1;
+ critical("error: the group name must be less than "
+ "%u characters",
+ GROUP_NAME_MAX_LENGTH);
}
strncpy(group_name, argv[i + 1], sizeof(group_name) - 1);
group_name[sizeof(group_name) - 1] = '\0';
@@ -92,7 +87,7 @@ main(int argc, char *argv[]) {
}
if (port < 1 || port > 65535) {
- printf("error: port must be between 1 and 65535.\n");
+ critical("error: port must be between 1 and 65535.");
return 1;
};
@@ -100,12 +95,12 @@ main(int argc, char *argv[]) {
group = getgrnam(group_name);
if (user == NULL) {
- printf("error: user %s does not exist.\n", user_name);
+ critical("error: user %s does not exist.", user_name);
return 1;
}
if (group == NULL) {
- printf("error: group %s does not exist.\n", group_name);
+ critical("error: group %s does not exist.", group_name);
return 1;
}
diff --git a/socket.c b/socket.c
@@ -6,6 +6,7 @@
#include <unistd.h>
#include "socket.h"
+#include "utils.h"
int
create_socket(unsigned int port) {
@@ -13,7 +14,7 @@ create_socket(unsigned int port) {
struct sockaddr_in address;
if (socket_fd == -1) {
- printf("error: socket creation\n");
+ critical("error: socket creation");
exit(1);
}
@@ -22,12 +23,12 @@ create_socket(unsigned int port) {
address.sin_port = htons(port);
if (bind(socket_fd, (struct sockaddr *)&address, sizeof(address)) == -1) {
- printf("error: bind socket to address\n");
+ critical("error: bind socket to address");
exit(1);
}
if (listen(socket_fd, 3) == -1) {
- printf("error: listen on socket\n");
+ critical("error: listen on socket");
close(socket_fd);
exit(1);
}
@@ -51,7 +52,7 @@ read_client_request(int client_socket_fd,
char *buffer,
unsigned int buffer_size) {
if (buffer == NULL || buffer_size == 0) {
- printf("error: invalid buffer provided in read_client_request");
+ critical("error: invalid buffer provided in read_client_request");
return;
}