summaryrefslogtreecommitdiff
path: root/sys.c
diff options
context:
space:
mode:
authorVincent Blut <vincent.debian@free.fr>2015-11-19 14:09:12 +0100
committerVincent Blut <vincent.debian@free.fr>2015-11-19 14:09:12 +0100
commit5f57308e2b565c300d66cfc2325f2d0da829b0d3 (patch)
tree8db0b1e749d7d46f85ff9bea6abef52339c6cb7d /sys.c
parent55697823c8a320c595ad93947965f29f94c5a1da (diff)
Imported Upstream version 2.2
Diffstat (limited to 'sys.c')
-rw-r--r--sys.c78
1 files changed, 36 insertions, 42 deletions
diff --git a/sys.c b/sys.c
index f0c81df..4009796 100644
--- a/sys.c
+++ b/sys.c
@@ -27,26 +27,20 @@
#include "config.h"
+#include "sysincl.h"
+
#include "sys.h"
#include "logging.h"
-#if defined (LINUX)
+#if defined(LINUX)
#include "sys_linux.h"
-#endif
-
-#if defined (SOLARIS)
+#elif defined(SOLARIS)
#include "sys_solaris.h"
-#endif
-
-#if defined (SUNOS)
+#elif defined(SUNOS)
#include "sys_sunos.h"
-#endif
-
-#if defined (__NetBSD__)
+#elif defined(NETBSD) || defined(FREEBSD)
#include "sys_netbsd.h"
-#endif
-
-#if defined (MACOSX)
+#elif defined(MACOSX)
#include "sys_macosx.h"
#endif
@@ -55,27 +49,19 @@
void
SYS_Initialise(void)
{
-
#if defined(LINUX)
SYS_Linux_Initialise();
-#endif
-
-#if defined(SOLARIS)
+#elif defined(SOLARIS)
SYS_Solaris_Initialise();
-#endif
-
-#if defined(SUNOS)
+#elif defined(SUNOS)
SYS_SunOS_Initialise();
-#endif
-
-#if defined(__NetBSD__)
+#elif defined(NETBSD) || defined(FREEBSD)
SYS_NetBSD_Initialise();
-#endif
-
-#if defined(MACOSX)
+#elif defined(MACOSX)
SYS_MacOSX_Initialise();
+#else
+#error Unknown system
#endif
-
}
/* ================================================== */
@@ -83,34 +69,29 @@ SYS_Initialise(void)
void
SYS_Finalise(void)
{
-
#if defined(LINUX)
SYS_Linux_Finalise();
-#endif
-
-#if defined(SOLARIS)
+#elif defined(SOLARIS)
SYS_Solaris_Finalise();
-#endif
-
-#if defined(SUNOS)
+#elif defined(SUNOS)
SYS_SunOS_Finalise();
-#endif
-
-#if defined(__NetBSD__)
+#elif defined(NETBSD) || defined(FREEBSD)
SYS_NetBSD_Finalise();
-#endif
-
-#if defined(MACOSX)
+#elif defined(MACOSX)
SYS_MacOSX_Finalise();
+#else
+#error Unknown system
#endif
}
/* ================================================== */
-void SYS_DropRoot(char *user)
+void SYS_DropRoot(uid_t uid, gid_t gid)
{
#if defined(LINUX) && defined (FEAT_PRIVDROP)
- SYS_Linux_DropRoot(user);
+ SYS_Linux_DropRoot(uid, gid);
+#elif defined(NETBSD) && defined(FEAT_PRIVDROP)
+ SYS_NetBSD_DropRoot(uid, gid);
#else
LOG_FATAL(LOGF_Sys, "dropping root privileges not supported");
#endif
@@ -118,10 +99,23 @@ void SYS_DropRoot(char *user)
/* ================================================== */
+void SYS_EnableSystemCallFilter(int level)
+{
+#if defined(LINUX) && defined(FEAT_SCFILTER)
+ SYS_Linux_EnableSystemCallFilter(level);
+#else
+ LOG_FATAL(LOGF_Sys, "system call filter not supported");
+#endif
+}
+
+/* ================================================== */
+
void SYS_SetScheduler(int SchedPriority)
{
#if defined(LINUX) && defined(HAVE_SCHED_SETSCHEDULER)
SYS_Linux_SetScheduler(SchedPriority);
+#elif defined(MACOSX)
+ SYS_MacOSX_SetScheduler(SchedPriority);
#else
LOG_FATAL(LOGF_Sys, "scheduler priority setting not supported");
#endif