mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-17 13:03:48 -07:00
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.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
int 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";
|
||||
|
||||
auto cleanup = [unsetEnvironment, envVar](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;
|
||||
|
||||
// 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';
|
||||
|
||||
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;
|
||||
|
||||
return -errno;
|
||||
}
|
||||
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";
|
||||
|
||||
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;
|
||||
|
||||
// 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';
|
||||
|
||||
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;
|
||||
|
||||
return -errno;
|
||||
}
|
||||
|
Reference in New Issue
Block a user