summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/poll.c14
-rw-r--r--src/status.c4
2 files changed, 11 insertions, 7 deletions
diff --git a/src/poll.c b/src/poll.c
index 949a597..3419d05 100644
--- a/src/poll.c
+++ b/src/poll.c
@@ -84,13 +84,15 @@ void fastd_poll_init(void) {
exit_errno("epoll_ctl");
#ifdef WITH_STATUS_SOCKET
- struct epoll_event event_status = {
- .events = EPOLLIN,
- .data.ptr = &ctx.status_fd,
- };
+ if (ctx.status_fd >= 0) {
+ struct epoll_event event_status = {
+ .events = EPOLLIN,
+ .data.ptr = &ctx.status_fd,
+ };
- if (epoll_ctl(ctx.epoll_fd, EPOLL_CTL_ADD, ctx.status_fd, &event_status) < 0)
- exit_errno("epoll_ctl");
+ if (epoll_ctl(ctx.epoll_fd, EPOLL_CTL_ADD, ctx.status_fd, &event_status) < 0)
+ exit_errno("epoll_ctl");
+ }
#endif
}
diff --git a/src/status.c b/src/status.c
index fd34747..8e0c427 100644
--- a/src/status.c
+++ b/src/status.c
@@ -195,8 +195,10 @@ static void dump_status(int fd) {
/** Initialized the status socket */
void fastd_status_init(void) {
- if (!conf.status_socket)
+ if (!conf.status_socket) {
+ ctx.status_fd = -1;
return;
+ }
uid_t uid = geteuid();
gid_t gid = getegid();