diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libutil/login_class.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/libutil/login_class.c b/lib/libutil/login_class.c index fbabc42..ba0a31d 100644 --- a/lib/libutil/login_class.c +++ b/lib/libutil/login_class.c @@ -21,7 +21,7 @@ * * High-level routines relating to use of the user capabilities database * - * $Id: login_class.c,v 1.6 1997/05/10 18:55:38 davidn Exp $ + * $Id: login_class.c,v 1.7 1998/05/25 03:55:23 steve Exp $ */ #include <stdio.h> @@ -316,7 +316,9 @@ setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned in quad_t p; mode_t mymask; login_cap_t *llc = NULL; +#ifndef __NETBSD_SYSCALLS struct rtprio rtp; +#endif if (lc == NULL) { if (pwd != NULL && (lc = login_getpwclass(pwd)) != NULL) @@ -335,19 +337,23 @@ setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned in p = login_getcapnum(lc, "priority", LOGIN_DEFPRI, LOGIN_DEFPRI); if(p > PRIO_MAX) { +#ifndef __NETBSD_SYSCALLS rtp.type = RTP_PRIO_IDLE; rtp.prio = p - PRIO_MAX - 1; p = (rtp.prio > RTP_PRIO_MAX) ? 31 : p; if(rtprio(RTP_SET, 0, &rtp)) syslog(LOG_WARNING, "rtprio '%s' (%s): %m", pwd->pw_name, lc ? lc->lc_class : LOGIN_DEFCLASS); +#endif } else if(p < PRIO_MIN) { +#ifndef __NETBSD_SYSCALLS rtp.type = RTP_PRIO_REALTIME; rtp.prio = abs(p - PRIO_MIN + RTP_PRIO_MAX); p = (rtp.prio > RTP_PRIO_MAX) ? 1 : p; if(rtprio(RTP_SET, 0, &rtp)) syslog(LOG_WARNING, "rtprio '%s' (%s): %m", pwd->pw_name, lc ? lc->lc_class : LOGIN_DEFCLASS); +#endif } else { if (setpriority(PRIO_PROCESS, 0, (int)p) != 0) syslog(LOG_WARNING, "setpriority '%s' (%s): %m", |