summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authormycroft <mycroft@NetBSD.org>1995-01-13 19:59:13 +0000
committermycroft <mycroft@NetBSD.org>1995-01-13 19:59:13 +0000
commitb481f03023ef9d7bc805ee1960e926b2547a4e5b (patch)
tree27f2904506a1e7dc8cfc18a45760eb43ff782cdb /libexec
parent48bf1a7fe08732969e19952f89e493c64252a85b (diff)
General cleanup.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rpc.rusersd/rusers_proc.c405
-rw-r--r--libexec/rpc.rusersd/rusersd.c55
2 files changed, 229 insertions, 231 deletions
diff --git a/libexec/rpc.rusersd/rusers_proc.c b/libexec/rpc.rusersd/rusers_proc.c
index 94842c8de5a..e229f1ec7e3 100644
--- a/libexec/rpc.rusersd/rusers_proc.c
+++ b/libexec/rpc.rusersd/rusers_proc.c
@@ -27,7 +27,7 @@
*/
#ifndef lint
-static char rcsid[] = "$Id: rusers_proc.c,v 1.8 1994/12/23 14:29:42 cgd Exp $";
+static char rcsid[] = "$Id: rusers_proc.c,v 1.9 1995/01/13 19:59:13 mycroft Exp $";
#endif /* not lint */
#include <signal.h>
@@ -90,239 +90,238 @@ FILE *ufp;
#ifdef XIDLE
Display *dpy;
-static jmp_buf openAbort;
+static sigjmp_buf openAbort;
static void
-abortOpen ()
+abortOpen()
{
- longjmp (openAbort, 1);
+ siglongjmp(openAbort, 1);
}
-XqueryIdle(char *display)
+XqueryIdle(display)
+ char *display;
{
- int first_event, first_error;
- Time IdleTime;
-
- (void) signal (SIGALRM, abortOpen);
- (void) alarm ((unsigned) 10);
- if (!setjmp (openAbort)) {
- if (!(dpy= XOpenDisplay(display))) {
- syslog(LOG_ERR, "Cannot open display %s", display);
- return(-1);
- }
- if (XidleQueryExtension(dpy, &first_event, &first_error)) {
- if (!XGetIdleTime(dpy, &IdleTime)) {
- syslog(LOG_ERR, "%s: Unable to get idle time.", display);
- return(-1);
- }
- }
- else {
- syslog(LOG_ERR, "%s: Xidle extension not loaded.", display);
- return(-1);
- }
- XCloseDisplay(dpy);
- }
- else {
- syslog(LOG_ERR, "%s: Server grabbed for over 10 seconds.", display);
- return(-1);
- }
- (void) signal (SIGALRM, SIG_DFL);
- (void) alarm ((unsigned) 0);
-
- IdleTime /= 1000;
- return((IdleTime + 30) / 60);
+ int first_event, first_error;
+ Time IdleTime;
+
+ (void) signal(SIGALRM, abortOpen);
+ (void) alarm(10);
+ if (!sigsetjmp(openAbort)) {
+ if ((dpy = XOpenDisplay(display)) == NULL) {
+ syslog(LOG_ERR, "cannot open display %s", display);
+ return (-1);
+ }
+ if (XidleQueryExtension(dpy, &first_event, &first_error)) {
+ if (!XGetIdleTime(dpy, &IdleTime)) {
+ syslog(LOG_ERR, "%s: unable to get idle time", display);
+ return (-1);
+ }
+ } else {
+ syslog(LOG_ERR, "%s: Xidle extension not loaded", display);
+ return (-1);
+ }
+ XCloseDisplay(dpy);
+ } else {
+ syslog(LOG_ERR, "%s: server grabbed for over 10 seconds", display);
+ return (-1);
+ }
+ (void) alarm(0);
+ (void) signal(SIGALRM, SIG_DFL);
+
+ IdleTime /= 1000;
+ return ((IdleTime + 30) / 60);
}
#endif
static u_int
-getidle(char *tty, char *display)
+getidle(tty, display)
+ char *tty, *display;
{
- struct stat st;
- char devname[PATH_MAX];
- time_t now;
- u_long idle;
-
- /*
- * If this is an X terminal or console, then try the
- * XIdle extension
- */
+ struct stat st;
+ char devname[PATH_MAX];
+ time_t now;
+ u_long idle;
+
+ /*
+ * If this is an X terminal or console, then try the
+ * XIdle extension
+ */
#ifdef XIDLE
- if (display && *display && (idle = XqueryIdle(display)) >= 0)
- return(idle);
+ if (display && *display && (idle = XqueryIdle(display)) >= 0)
+ return (idle);
#endif
- idle = 0;
- if (*tty == 'X') {
- u_long kbd_idle, mouse_idle;
-#if !defined(i386)
- kbd_idle = getidle("kbd", NULL);
+ idle = 0;
+ if (*tty == 'X') {
+ u_long kbd_idle, mouse_idle;
+#if !defined(i386)
+ kbd_idle = getidle("kbd", NULL);
#else
-#if (__GNUC__ >= 2)
+#if __GNUC__ >= 2
#warning i386 console hack here
#endif
- kbd_idle = getidle("vga", NULL);
+ kbd_idle = getidle("vga", NULL);
#endif
- mouse_idle = getidle("mouse", NULL);
- idle = (kbd_idle < mouse_idle)?kbd_idle:mouse_idle;
- }
- else {
- sprintf(devname, "%s/%s", _PATH_DEV, tty);
- if (stat(devname, &st) < 0) {
+ mouse_idle = getidle("mouse", NULL);
+ idle = (kbd_idle < mouse_idle) ? kbd_idle : mouse_idle;
+ } else {
+ sprintf(devname, "%s/%s", _PATH_DEV, tty);
+ if (stat(devname, &st) < 0) {
#ifdef DEBUG
- printf("%s: %s\n", devname, strerror(errno));
+ printf("%s: %m\n", devname);
#endif
- return(-1);
- }
- time(&now);
+ return (-1);
+ }
+ time(&now);
#ifdef DEBUG
- printf("%s: now=%d atime=%d\n", devname, now,
- st.st_atime);
+ printf("%s: now=%d atime=%d\n", devname, now, st.st_atime);
#endif
- idle = now - st.st_atime;
- idle = (idle + 30) / 60; /* secs->mins */
- }
- if (idle < 0) idle = 0;
+ idle = now - st.st_atime;
+ idle = (idle + 30) / 60; /* secs->mins */
+ }
+ if (idle < 0)
+ idle = 0;
- return(idle);
+ return (idle);
}
-
+
int *
rusers_num()
{
- static int num_users = 0;
+ static int num_users = 0;
struct utmp usr;
- ufp = fopen(_PATH_UTMP, "r");
- if (!ufp) {
- syslog(LOG_ERR, "%m");
- return(0);
- }
+ ufp = fopen(_PATH_UTMP, "r");
+ if (!ufp) {
+ syslog(LOG_ERR, "%m");
+ return (0);
+ }
- /* only entries with both name and line fields */
- while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1)
- if (*usr.ut_name && *usr.ut_line &&
+ /* only entries with both name and line fields */
+ while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1)
+ if (*usr.ut_name && *usr.ut_line &&
strncmp(usr.ut_name, IGNOREUSER,
- sizeof(usr.ut_name))
+ sizeof(usr.ut_name))
#ifdef OSF
- && usr.ut_type == USER_PROCESS
+ && usr.ut_type == USER_PROCESS
#endif
- ) {
- num_users++;
- }
+ ) {
+ num_users++;
+ }
- fclose(ufp);
- return(&num_users);
+ fclose(ufp);
+ return (&num_users);
}
static utmp_array *
do_names_3(int all)
{
- static utmp_array ut;
+ static utmp_array ut;
struct utmp usr;
- int nusers = 0;
-
- bzero((char *)&ut, sizeof(ut));
- ut.utmp_array_val = &utmps[0];
-
+ int nusers = 0;
+
+ bzero((char *)&ut, sizeof(ut));
+ ut.utmp_array_val = &utmps[0];
+
ufp = fopen(_PATH_UTMP, "r");
- if (!ufp) {
- syslog(LOG_ERR, "%m");
- return(&ut);
- }
-
- /* only entries with both name and line fields */
- while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1 &&
- nusers < MAXUSERS)
- if (*usr.ut_name && *usr.ut_line &&
+ if (!ufp) {
+ syslog(LOG_ERR, "%m");
+ return (NULL);
+ }
+
+ /* only entries with both name and line fields */
+ while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1 &&
+ nusers < MAXUSERS)
+ if (*usr.ut_name && *usr.ut_line &&
strncmp(usr.ut_name, IGNOREUSER,
- sizeof(usr.ut_name))
+ sizeof(usr.ut_name))
#ifdef OSF
- && usr.ut_type == USER_PROCESS
+ && usr.ut_type == USER_PROCESS
#endif
- ) {
- utmps[nusers].ut_type = RUSERS_USER_PROCESS;
- utmps[nusers].ut_time =
- usr.ut_time;
- utmps[nusers].ut_idle =
- getidle(usr.ut_line, usr.ut_host);
- utmps[nusers].ut_line = line[nusers];
- strncpy(line[nusers], usr.ut_line, sizeof(line[nusers]));
- utmps[nusers].ut_user = name[nusers];
- strncpy(name[nusers], usr.ut_name, sizeof(name[nusers]));
- utmps[nusers].ut_host = host[nusers];
- strncpy(host[nusers], usr.ut_host, sizeof(host[nusers]));
- nusers++;
- }
- ut.utmp_array_len = nusers;
-
- fclose(ufp);
- return(&ut);
+ ) {
+ utmps[nusers].ut_type = RUSERS_USER_PROCESS;
+ utmps[nusers].ut_time =
+ usr.ut_time;
+ utmps[nusers].ut_idle =
+ getidle(usr.ut_line, usr.ut_host);
+ utmps[nusers].ut_line = line[nusers];
+ strncpy(line[nusers], usr.ut_line, sizeof(line[nusers]));
+ utmps[nusers].ut_user = name[nusers];
+ strncpy(name[nusers], usr.ut_name, sizeof(name[nusers]));
+ utmps[nusers].ut_host = host[nusers];
+ strncpy(host[nusers], usr.ut_host, sizeof(host[nusers]));
+ nusers++;
+ }
+ ut.utmp_array_len = nusers;
+
+ fclose(ufp);
+ return (&ut);
}
utmp_array *
rusersproc_names_3()
{
- return(do_names_3(0));
+ return (do_names_3(0));
}
utmp_array *
rusersproc_allnames_3()
{
- return(do_names_3(1));
+ return (do_names_3(1));
}
static struct utmpidlearr *
do_names_2(int all)
{
- static struct utmpidlearr ut;
+ static struct utmpidlearr ut;
struct utmp usr;
- int nusers = 0;
-
- bzero((char *)&ut, sizeof(ut));
- ut.uia_arr = utmp_idlep;
- ut.uia_cnt = 0;
-
+ int nusers = 0;
+
+ bzero((char *)&ut, sizeof(ut));
+ ut.uia_arr = utmp_idlep;
+ ut.uia_cnt = 0;
+
ufp = fopen(_PATH_UTMP, "r");
- if (!ufp) {
- syslog(LOG_ERR, "%m");
- return(&ut);
- }
-
- /* only entries with both name and line fields */
- while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1 &&
- nusers < MAXUSERS)
- if (*usr.ut_name && *usr.ut_line &&
+ if (!ufp) {
+ syslog(LOG_ERR, "%m");
+ return (NULL);
+ }
+
+ /* only entries with both name and line fields */
+ while (fread((char *)&usr, sizeof(usr), 1, ufp) == 1 &&
+ nusers < MAXUSERS)
+ if (*usr.ut_name && *usr.ut_line &&
strncmp(usr.ut_name, IGNOREUSER,
- sizeof(usr.ut_name))
+ sizeof(usr.ut_name))
#ifdef OSF
- && usr.ut_type == USER_PROCESS
+ && usr.ut_type == USER_PROCESS
#endif
- ) {
- utmp_idlep[nusers] = &utmp_idle[nusers];
- utmp_idle[nusers].ui_utmp.ut_time =
- usr.ut_time;
- utmp_idle[nusers].ui_idle =
- getidle(usr.ut_line, usr.ut_host);
- strncpy(utmp_idle[nusers].ui_utmp.ut_line, usr.ut_line, sizeof(utmp_idle[nusers].ui_utmp.ut_line));
- strncpy(utmp_idle[nusers].ui_utmp.ut_name, usr.ut_name, sizeof(utmp_idle[nusers].ui_utmp.ut_name));
- strncpy(utmp_idle[nusers].ui_utmp.ut_host, usr.ut_host, sizeof(utmp_idle[nusers].ui_utmp.ut_host));
- nusers++;
- }
-
- ut.uia_cnt = nusers;
- fclose(ufp);
- return(&ut);
+ ) {
+ utmp_idlep[nusers] = &utmp_idle[nusers];
+ utmp_idle[nusers].ui_utmp.ut_time =
+ usr.ut_time;
+ utmp_idle[nusers].ui_idle =
+ getidle(usr.ut_line, usr.ut_host);
+ strncpy(utmp_idle[nusers].ui_utmp.ut_line, usr.ut_line, sizeof(utmp_idle[nusers].ui_utmp.ut_line));
+ strncpy(utmp_idle[nusers].ui_utmp.ut_name, usr.ut_name, sizeof(utmp_idle[nusers].ui_utmp.ut_name));
+ strncpy(utmp_idle[nusers].ui_utmp.ut_host, usr.ut_host, sizeof(utmp_idle[nusers].ui_utmp.ut_host));
+ nusers++;
+ }
+
+ ut.uia_cnt = nusers;
+ fclose(ufp);
+ return (&ut);
}
struct utmpidlearr *
rusersproc_names_2()
{
- return(do_names_2(0));
+ return (do_names_2(0));
}
struct utmpidlearr *
rusersproc_allnames_2()
{
- return(do_names_2(1));
+ return (do_names_2(1));
}
void
@@ -345,56 +344,56 @@ rusers_service(rqstp, transp)
case RUSERSPROC_NUM:
xdr_argument = xdr_void;
xdr_result = xdr_int;
- switch (rqstp->rq_vers) {
- case RUSERSVERS_3:
- case RUSERSVERS_IDLE:
- local = (char *(*)()) rusers_num;
- break;
- default:
- svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
- goto leave;
- /*NOTREACHED*/
- }
+ switch (rqstp->rq_vers) {
+ case RUSERSVERS_3:
+ case RUSERSVERS_IDLE:
+ local = (char *(*)()) rusers_num;
+ break;
+ default:
+ svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+ goto leave;
+ /*NOTREACHED*/
+ }
break;
case RUSERSPROC_NAMES:
xdr_argument = xdr_void;
xdr_result = xdr_utmp_array;
- switch (rqstp->rq_vers) {
- case RUSERSVERS_3:
- local = (char *(*)()) rusersproc_names_3;
- break;
-
- case RUSERSVERS_IDLE:
- xdr_result = xdr_utmpidlearr;
- local = (char *(*)()) rusersproc_names_2;
- break;
-
- default:
- svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
- goto leave;
- /*NOTREACHED*/
- }
+ switch (rqstp->rq_vers) {
+ case RUSERSVERS_3:
+ local = (char *(*)()) rusersproc_names_3;
+ break;
+
+ case RUSERSVERS_IDLE:
+ xdr_result = xdr_utmpidlearr;
+ local = (char *(*)()) rusersproc_names_2;
+ break;
+
+ default:
+ svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+ goto leave;
+ /*NOTREACHED*/
+ }
break;
case RUSERSPROC_ALLNAMES:
xdr_argument = xdr_void;
xdr_result = xdr_utmp_array;
- switch (rqstp->rq_vers) {
- case RUSERSVERS_3:
- local = (char *(*)()) rusersproc_allnames_3;
- break;
-
- case RUSERSVERS_IDLE:
- xdr_result = xdr_utmpidlearr;
- local = (char *(*)()) rusersproc_allnames_2;
- break;
-
- default:
- svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
- goto leave;
- /*NOTREACHED*/
- }
+ switch (rqstp->rq_vers) {
+ case RUSERSVERS_3:
+ local = (char *(*)()) rusersproc_allnames_3;
+ break;
+
+ case RUSERSVERS_IDLE:
+ xdr_result = xdr_utmpidlearr;
+ local = (char *(*)()) rusersproc_allnames_2;
+ break;
+
+ default:
+ svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+ goto leave;
+ /*NOTREACHED*/
+ }
break;
default:
@@ -415,6 +414,6 @@ rusers_service(rqstp, transp)
exit(1);
}
leave:
- if (from_inetd)
- exit(0);
+ if (from_inetd)
+ exit(0);
}
diff --git a/libexec/rpc.rusersd/rusersd.c b/libexec/rpc.rusersd/rusersd.c
index e4902523f68..957810b713a 100644
--- a/libexec/rpc.rusersd/rusersd.c
+++ b/libexec/rpc.rusersd/rusersd.c
@@ -27,7 +27,7 @@
*/
#ifndef lint
-static char rcsid[] = "$Id: rusersd.c,v 1.7 1995/01/13 06:14:32 mycroft Exp $";
+static char rcsid[] = "$Id: rusersd.c,v 1.8 1995/01/13 19:59:15 mycroft Exp $";
#endif /* not lint */
#include <stdio.h>
@@ -44,44 +44,44 @@ int from_inetd = 1;
void
cleanup()
{
- (void) pmap_unset(RUSERSPROG, RUSERSVERS_3);
- (void) pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
- exit(0);
+ (void) pmap_unset(RUSERSPROG, RUSERSVERS_3);
+ (void) pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
+ exit(0);
}
main(argc, argv)
- int argc;
- char *argv[];
+ int argc;
+ char *argv[];
{
SVCXPRT *transp;
- int sock = 0;
- int proto = 0;
+ int sock = 0;
+ int proto = 0;
struct sockaddr_in from;
- int fromlen = sizeof(from);
-
- /*
- * See if inetd started us
- */
+ int fromlen;
+
+ /*
+ * See if inetd started us
+ */
fromlen = sizeof(from);
- if (getsockname(0, (struct sockaddr *)&from, &fromlen) < 0) {
- from_inetd = 0;
- sock = RPC_ANYSOCK;
- proto = IPPROTO_UDP;
- }
-
- if (!from_inetd) {
- daemon(0, 0);
+ if (getsockname(0, (struct sockaddr *)&from, &fromlen) < 0) {
+ from_inetd = 0;
+ sock = RPC_ANYSOCK;
+ proto = IPPROTO_UDP;
+ }
+
+ if (!from_inetd) {
+ daemon(0, 0);
- (void) pmap_unset(RUSERSPROG, RUSERSVERS_3);
- (void) pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
+ (void) pmap_unset(RUSERSPROG, RUSERSVERS_3);
+ (void) pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
(void) signal(SIGINT, cleanup);
(void) signal(SIGTERM, cleanup);
(void) signal(SIGHUP, cleanup);
- }
+ }
- openlog("rpc.rusersd", LOG_CONS|LOG_PID, LOG_DAEMON);
-
+ openlog("rpc.rusersd", LOG_CONS|LOG_PID, LOG_DAEMON);
+
transp = svcudp_create(sock);
if (transp == NULL) {
syslog(LOG_ERR, "cannot create udp service.");
@@ -91,13 +91,12 @@ main(argc, argv)
syslog(LOG_ERR, "unable to register (RUSERSPROG, RUSERSVERS_3, %s).", proto?"udp":"(inetd)");
exit(1);
}
-
if (!svc_register(transp, RUSERSPROG, RUSERSVERS_IDLE, rusers_service, proto)) {
syslog(LOG_ERR, "unable to register (RUSERSPROG, RUSERSVERS_IDLE, %s).", proto?"udp":"(inetd)");
exit(1);
}
- svc_run();
+ svc_run();
syslog(LOG_ERR, "svc_run returned");
exit(1);
}