summaryrefslogtreecommitdiff
path: root/src/helpers/SdDaemon.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2024-12-07 18:51:18 +0100
committerGitHub <noreply@github.com>2024-12-07 18:51:18 +0100
commit8bbeee11734d3ba8e2cf15d19cb3c302f8bfdbf2 (patch)
tree5b6654818049a0743f62defc090e86d4327cccbb /src/helpers/SdDaemon.cpp
parentb1e5cc66bdb20b002c93479490c3a317552210b3 (diff)
core: Add clang-tidy (#8664)
This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
Diffstat (limited to 'src/helpers/SdDaemon.cpp')
-rw-r--r--src/helpers/SdDaemon.cpp77
1 files changed, 37 insertions, 40 deletions
diff --git a/src/helpers/SdDaemon.cpp b/src/helpers/SdDaemon.cpp
index 80944794..018165c0 100644
--- a/src/helpers/SdDaemon.cpp
+++ b/src/helpers/SdDaemon.cpp
@@ -4,59 +4,56 @@
#include <fcntl.h>
#include <unistd.h>
-#include <errno.h>
+#include <cerrno>
#include <sys/socket.h>
#include <sys/un.h>
-#include <string.h>
-#include <stdlib.h>
+#include <cstdlib>
#include <cstring>
-namespace Systemd {
- int SdBooted(void) {
- if (!faccessat(AT_FDCWD, "/run/systemd/system/", F_OK, AT_SYMLINK_NOFOLLOW))
- return true;
+int NSystemd::sdBooted() {
+ if (!faccessat(AT_FDCWD, "/run/systemd/system/", F_OK, AT_SYMLINK_NOFOLLOW))
+ return true;
- if (errno == ENOENT)
- return false;
+ if (errno == ENOENT)
+ return false;
- return -errno;
- }
+ return -errno;
+}
- int SdNotify(int unsetEnvironment, const char* state) {
- int fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0);
- if (fd < 0)
- return -errno;
+int NSystemd::sdNotify(int unsetEnvironment, const char* state) {
+ int fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+ if (fd < 0)
+ return -errno;
- constexpr char envVar[] = "NOTIFY_SOCKET";
+ constexpr char envVar[] = "NOTIFY_SOCKET";
- auto cleanup = [unsetEnvironment, envVar](int* fd) {
- if (unsetEnvironment)
- unsetenv(envVar);
- close(*fd);
- };
- std::unique_ptr<int, decltype(cleanup)> fdCleaup(&fd, cleanup);
+ auto cleanup = [unsetEnvironment, envVar](const int* fd) {
+ if (unsetEnvironment)
+ unsetenv(envVar);
+ close(*fd);
+ };
+ std::unique_ptr<int, decltype(cleanup)> fdCleaup(&fd, cleanup);
- const char* addr = getenv(envVar);
- if (!addr)
- return 0;
+ const char* addr = getenv(envVar);
+ if (!addr)
+ return 0;
- // address length must be at most this; see man 7 unix
- size_t addrLen = strnlen(addr, 107);
+ // address length must be at most this; see man 7 unix
+ size_t addrLen = strnlen(addr, 107);
- struct sockaddr_un unixAddr;
- unixAddr.sun_family = AF_UNIX;
- strncpy(unixAddr.sun_path, addr, addrLen);
- if (unixAddr.sun_path[0] == '@')
- unixAddr.sun_path[0] = '\0';
+ struct sockaddr_un unixAddr;
+ unixAddr.sun_family = AF_UNIX;
+ strncpy(unixAddr.sun_path, addr, addrLen);
+ if (unixAddr.sun_path[0] == '@')
+ unixAddr.sun_path[0] = '\0';
- if (connect(fd, (const sockaddr*)&unixAddr, sizeof(struct sockaddr_un)) < 0)
- return -errno;
+ if (connect(fd, (const sockaddr*)&unixAddr, sizeof(struct sockaddr_un)) < 0)
+ return -errno;
- // arbitrary value which seems to be enough for s-d messages
- ssize_t stateLen = strnlen(state, 128);
- if (write(fd, state, stateLen) == stateLen)
- return 1;
+ // arbitrary value which seems to be enough for s-d messages
+ ssize_t stateLen = strnlen(state, 128);
+ if (write(fd, state, stateLen) == stateLen)
+ return 1;
- return -errno;
- }
+ return -errno;
}