From cd22d5605639ee6151b23c36d9f856e150d81769 Mon Sep 17 00:00:00 2001 From: lns Date: Wed, 19 Oct 2022 18:40:52 +0200 Subject: Add ArchLinux PKGBUILD. Signed-off-by: lns --- packages/archlinux/PKGBUILD | 27 +++++++++++++++++++++++++++ packages/archlinux/README.md | 4 ++++ utils.c | 26 +++++++++++++++++++------- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 packages/archlinux/PKGBUILD create mode 100644 packages/archlinux/README.md diff --git a/packages/archlinux/PKGBUILD b/packages/archlinux/PKGBUILD new file mode 100644 index 000000000..c7bdf673f --- /dev/null +++ b/packages/archlinux/PKGBUILD @@ -0,0 +1,27 @@ +# Maintainer: Toni Uhlig + +pkgname=nDPId-testing +pkgver=1.0 +pkgrel=1 +pkgdesc="Tiny nDPI based deep packet inspection daemons / toolkit." +arch=('i686' 'x86_64') +url="https://github.com/utoni/nDPId" +license=('GPL3') +options=() + +build() { + cd "${srcdir}/../../.." + mkdir -p build-archlinux && cd build-archlinux + cmake .. \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX="/usr/local" \ + -DBUILD_EXAMPLES=ON \ + -DBUILD_NDPI=ON \ + -DENABLE_SANITIZER=ON + make VERBOSE=1 +} + +package() { + cd "${srcdir}/../../../build-archlinux" + make DESTDIR="${pkgdir}/" install +} diff --git a/packages/archlinux/README.md b/packages/archlinux/README.md new file mode 100644 index 000000000..62c30cfb6 --- /dev/null +++ b/packages/archlinux/README.md @@ -0,0 +1,4 @@ +HowTo use this +============== + +Change to this directory and simply run `makepkg`, that's it. diff --git a/utils.c b/utils.c index 975a696bb..fc0472b7c 100644 --- a/utils.c +++ b/utils.c @@ -161,7 +161,7 @@ int change_user_group(char const * const user, pwd = getpwnam(user); if (pwd == NULL) { - return 1; + return -errno; } if (group != NULL) @@ -170,7 +170,7 @@ int change_user_group(char const * const user, grp = getgrnam(group); if (grp == NULL) { - return 1; + return -errno; } gid = grp->gr_gid; } @@ -181,17 +181,29 @@ int change_user_group(char const * const user, if (uds_collector_path != NULL) { - chmod(uds_collector_path, S_IRUSR | S_IWUSR); - chown(uds_collector_path, pwd->pw_uid, gid); + errno = 0; + if (chmod(uds_collector_path, S_IRUSR | S_IWUSR) != 0 || + chown(uds_collector_path, pwd->pw_uid, gid) != 0) + { + return -errno; + } } if (uds_distributor_path != NULL) { - chmod(uds_distributor_path, S_IRUSR | S_IWUSR | S_IRGRP); - chown(uds_distributor_path, pwd->pw_uid, gid); + errno = 0; + if (chmod(uds_distributor_path, S_IRUSR | S_IWUSR | S_IRGRP) != 0 || + chown(uds_distributor_path, pwd->pw_uid, gid) != 0) + { + return -errno; + } } if (pidfile != NULL) { - chown(pidfile, pwd->pw_uid, gid); + errno = 0; + if (chown(pidfile, pwd->pw_uid, gid) != 0) + { + return -errno; + } } return setregid(gid, gid) != 0 || setreuid(pwd->pw_uid, pwd->pw_uid); } -- cgit v1.2.3