summaryrefslogtreecommitdiff
path: root/freebsd_priv.c
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2018-11-03 20:44:25 +0000
committerdormando <dormando@rydia.net>2019-04-26 23:43:51 -0700
commit2eda49b11ede5bb9d25a028635947c7b41dff484 (patch)
tree876a005b432d750f262120db5f483792dc4edae7 /freebsd_priv.c
parent7a483b34e011c6e0a927da3892cbfda6c23fb71f (diff)
downloadmemcached-2eda49b11ede5bb9d25a028635947c7b41dff484.tar.gz
Adding FreeBSD capabilities support.
Diffstat (limited to 'freebsd_priv.c')
-rw-r--r--freebsd_priv.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/freebsd_priv.c b/freebsd_priv.c
new file mode 100644
index 0000000..de0830e
--- /dev/null
+++ b/freebsd_priv.c
@@ -0,0 +1,18 @@
+#include <sys/capsicum.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include "memcached.h"
+
+/*
+ * dropping privileges is entering in capability mode
+ * in FreeBSD vocabulary.
+ */
+void drop_privileges() {
+ if (cap_enter() != 0) {
+ fprintf(stderr, "cap_enter failed: %s\n", strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+}