diff options
author | Vincent Blut <vincent.debian@free.fr> | 2015-11-19 14:09:12 +0100 |
---|---|---|
committer | Vincent Blut <vincent.debian@free.fr> | 2015-11-19 14:09:12 +0100 |
commit | 5f57308e2b565c300d66cfc2325f2d0da829b0d3 (patch) | |
tree | 8db0b1e749d7d46f85ff9bea6abef52339c6cb7d /sys.c | |
parent | 55697823c8a320c595ad93947965f29f94c5a1da (diff) |
Imported Upstream version 2.2
Diffstat (limited to 'sys.c')
-rw-r--r-- | sys.c | 78 |
1 files changed, 36 insertions, 42 deletions
@@ -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 |