aboutgitcodebugslistschat
path: root/passt.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2024-06-15 00:37:11 +0200
committerStefano Brivio <sbrivio@redhat.com>2024-06-21 15:32:43 +0200
commit92a22fef93a528030669e357a32c19f143a2d3b5 (patch)
tree37d5ff28d073c0c68601a45e8f540f9da3d7d8b3 /passt.c
parentc1140df889aeb90f944c1caabdf6f73522dbb250 (diff)
downloadpasst-92a22fef93a528030669e357a32c19f143a2d3b5.tar
passt-92a22fef93a528030669e357a32c19f143a2d3b5.tar.gz
passt-92a22fef93a528030669e357a32c19f143a2d3b5.tar.bz2
passt-92a22fef93a528030669e357a32c19f143a2d3b5.tar.lz
passt-92a22fef93a528030669e357a32c19f143a2d3b5.tar.xz
passt-92a22fef93a528030669e357a32c19f143a2d3b5.tar.zst
passt-92a22fef93a528030669e357a32c19f143a2d3b5.zip
treewide: Replace perror() calls with calls to logging functions
perror() prints directly to standard error, but in many cases standard error might be already closed, or we might want to skip logging, based on configuration. Our logging functions provide all that. While at it, make errors more descriptive, replacing some of the existing basic perror-style messages. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'passt.c')
-rw-r--r--passt.c41
1 files changed, 16 insertions, 25 deletions
diff --git a/passt.c b/passt.c
index e5cfd62..a48c5f6 100644
--- a/passt.c
+++ b/passt.c
@@ -136,14 +136,13 @@ static void secret_init(struct ctx *c)
}
if (dev_random >= 0)
close(dev_random);
- if (random_read < sizeof(c->hash_secret)) {
+
+ if (random_read < sizeof(c->hash_secret))
#else
if (getrandom(&c->hash_secret, sizeof(c->hash_secret),
- GRND_RANDOM) < 0) {
+ GRND_RANDOM) < 0)
#endif /* !HAS_GETRANDOM */
- perror("TCP initial sequence getrandom");
- exit(EXIT_FAILURE);
- }
+ die_perror("Failed to get random bytes for hash table and TCP");
}
/**
@@ -250,20 +249,16 @@ int main(int argc, char **argv)
madvise(pkt_buf, TAP_BUF_BYTES, MADV_HUGEPAGE);
c.epollfd = epoll_create1(EPOLL_CLOEXEC);
- if (c.epollfd == -1) {
- perror("epoll_create1");
- exit(EXIT_FAILURE);
- }
+ if (c.epollfd == -1)
+ die_perror("Failed to create epoll file descriptor");
+
+ if (getrlimit(RLIMIT_NOFILE, &limit))
+ die_perror("Failed to get maximum value of open files limit");
- if (getrlimit(RLIMIT_NOFILE, &limit)) {
- perror("getrlimit");
- exit(EXIT_FAILURE);
- }
c.nofile = limit.rlim_cur = limit.rlim_max;
- if (setrlimit(RLIMIT_NOFILE, &limit)) {
- perror("setrlimit");
- exit(EXIT_FAILURE);
- }
+ if (setrlimit(RLIMIT_NOFILE, &limit))
+ die_perror("Failed to set current limit for open files");
+
sock_probe_mem(&c);
conf(&c, argc, argv);
@@ -293,10 +288,8 @@ int main(int argc, char **argv)
pcap_init(&c);
if (!c.foreground) {
- if ((devnull_fd = open("/dev/null", O_RDWR | O_CLOEXEC)) < 0) {
- perror("/dev/null open");
- exit(EXIT_FAILURE);
- }
+ if ((devnull_fd = open("/dev/null", O_RDWR | O_CLOEXEC)) < 0)
+ die_perror("Failed to open /dev/null");
}
if (isolate_prefork(&c))
@@ -320,10 +313,8 @@ loop:
/* NOLINTNEXTLINE(bugprone-branch-clone): intervals can be the same */
/* cppcheck-suppress [duplicateValueTernary, unmatchedSuppression] */
nfds = epoll_wait(c.epollfd, events, EPOLL_EVENTS, TIMER_INTERVAL);
- if (nfds == -1 && errno != EINTR) {
- perror("epoll_wait");
- exit(EXIT_FAILURE);
- }
+ if (nfds == -1 && errno != EINTR)
+ die_perror("epoll_wait() failed in main loop");
clock_gettime(CLOCK_MONOTONIC, &now);