diff options
| author | Syndamia <kamen@syndamia.com> | 2023-12-07 10:59:52 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2023-12-07 10:59:52 +0200 |
| commit | bba64eb044562a88b7f93ab62eef62ea4fbb5cb4 (patch) | |
| tree | 1c2dafcbad9710865aa8ee8fe27c6b0df12a9aaf | |
| parent | 922694d1c64aec4419e9f472469eb32fb5e4f84e (diff) | |
| download | pico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.tar pico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.tar.gz pico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.zip | |
[util] Added error handling function
| -rw-r--r-- | browser.c | 19 | ||||
| -rw-r--r-- | server.c | 35 | ||||
| -rw-r--r-- | util.c | 10 | ||||
| -rw-r--r-- | util.h | 1 |
4 files changed, 25 insertions, 40 deletions
@@ -10,25 +10,16 @@ #include <util.h> 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)); @@ -10,40 +10,23 @@ #include <util.h> 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); @@ -2,6 +2,16 @@ #include <arpa/inet.h> #include <stdlib.h> +#include <stdio.h> +#include <errno.h> + 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); + } +} @@ -4,5 +4,6 @@ #include <inttypes.h> uint16_t inet_atop(const char *port); +void herr(int output, const char* funcName); #endif |
