From bba64eb044562a88b7f93ab62eef62ea4fbb5cb4 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 7 Dec 2023 10:59:52 +0200 Subject: [util] Added error handling function --- browser.c | 19 +++++-------------- server.c | 35 +++++++++-------------------------- util.c | 10 ++++++++++ util.h | 1 + 4 files changed, 25 insertions(+), 40 deletions(-) diff --git a/browser.c b/browser.c index 4fbb9ad..0575126 100644 --- a/browser.c +++ b/browser.c @@ -10,25 +10,16 @@ #include int main(int argc, char* argv[]) { - int fd_socket = socket(AF_INET, SOCK_STREAM, 0); - if (fd_socket < 0) { - perror("socket"); - return 1; - } + int fd_socket; + herr(fd_socket = socket(AF_INET, SOCK_STREAM, 0), "socket"); struct sockaddr_in sa_server = { .sin_family = AF_INET, .sin_port = inet_atop("8080"), }; - if (inet_aton("127.0.0.1", &sa_server.sin_addr.s_addr) < 0) { - perror("inet_aton"); - return 2; - } - - if (connect(fd_socket, (struct sockaddr*)&sa_server, sizeof(struct sockaddr_in)) < 0) { - perror("connect"); - return 3; - } + herr(inet_aton("127.0.0.1", &sa_server.sin_addr.s_addr), "inet_aton"); + + herr(connect(fd_socket, (struct sockaddr*)&sa_server, sizeof(struct sockaddr_in)), "connect"); char msg[] = "Hello from browser"; write(fd_socket, msg, sizeof(msg)); diff --git a/server.c b/server.c index 1393302..54611c8 100644 --- a/server.c +++ b/server.c @@ -10,40 +10,23 @@ #include int main(int argc, char* argv[]) { - int fd_socket = socket(AF_INET, SOCK_STREAM, 0); - if (fd_socket < 0) { - perror("socket"); - return 1; - } + int fd_socket; + herr(fd_socket = socket(AF_INET, SOCK_STREAM, 0), "socket"); struct sockaddr_in sa_socket = { .sin_family = AF_INET, .sin_port = inet_atop("8080"), }; - if (inet_aton("127.0.0.1", &sa_socket.sin_addr.s_addr) < 0) { - perror("inet_aton"); - return 2; - } - - int try_bind = bind(fd_socket, (struct sockaddr*)&sa_socket, sizeof(struct sockaddr_in)); - if (try_bind < 0) { - perror("bind"); - return 3; - } - - int try_listen = listen(fd_socket, 50); - if (try_listen < 0) { - perror("bind"); - return 4; - } + herr(inet_aton("127.0.0.1", &sa_socket.sin_addr.s_addr), "inet_aton"); + + herr(bind(fd_socket, (struct sockaddr*)&sa_socket, sizeof(struct sockaddr_in)), "bind"); + + herr(listen(fd_socket, 50), "listen"); struct sockaddr_in sa_client; socklen_t sa_client_size = sizeof(struct sockaddr_in); - int fd_client = accept(fd_socket, (struct sockaddr*)&sa_client, &sa_client_size); - if (fd_client < 0) { - perror("accept"); - return 5; - } + int fd_client; + herr(fd_client = accept(fd_socket, (struct sockaddr*)&sa_client, &sa_client_size), "accept"); char buff[256]; read(fd_client, buff, 256); diff --git a/util.c b/util.c index c8c8c70..99dafdc 100644 --- a/util.c +++ b/util.c @@ -2,6 +2,16 @@ #include #include +#include +#include + uint16_t inet_atop(const char *port) { return htons(atoi(port)); } + +void herr(int output, const char* funcName) { + if (output < 0) { + perror(funcName); + exit(errno); + } +} diff --git a/util.h b/util.h index 98799ad..e0611c8 100644 --- a/util.h +++ b/util.h @@ -4,5 +4,6 @@ #include uint16_t inet_atop(const char *port); +void herr(int output, const char* funcName); #endif -- cgit v1.2.3