aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-12-07 10:59:52 +0200
committerSyndamia <kamen@syndamia.com>2023-12-07 10:59:52 +0200
commitbba64eb044562a88b7f93ab62eef62ea4fbb5cb4 (patch)
tree1c2dafcbad9710865aa8ee8fe27c6b0df12a9aaf
parent922694d1c64aec4419e9f472469eb32fb5e4f84e (diff)
downloadpico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.tar
pico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.tar.gz
pico-web-bba64eb044562a88b7f93ab62eef62ea4fbb5cb4.zip
[util] Added error handling function
-rw-r--r--browser.c19
-rw-r--r--server.c35
-rw-r--r--util.c10
-rw-r--r--util.h1
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 <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));
diff --git a/server.c b/server.c
index 1393302..54611c8 100644
--- a/server.c
+++ b/server.c
@@ -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);
diff --git a/util.c b/util.c
index c8c8c70..99dafdc 100644
--- a/util.c
+++ b/util.c
@@ -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);
+ }
+}
diff --git a/util.h b/util.h
index 98799ad..e0611c8 100644
--- a/util.h
+++ b/util.h
@@ -4,5 +4,6 @@
#include <inttypes.h>
uint16_t inet_atop(const char *port);
+void herr(int output, const char* funcName);
#endif