From: mar Date: Fri, 25 Aug 1989 14:41:09 +0000 (+0000) Subject: new kerberos libraries; always get children's status to avoid zombies X-Git-Tag: ASRSNAP1001~76 X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/42b1d0ae3f96728537de4d02613a92643b01e03d new kerberos libraries; always get children's status to avoid zombies changed client structure --- diff --git a/server/mr_main.c b/server/mr_main.c index 2d76d215..6c1b018d 100644 --- a/server/mr_main.c +++ b/server/mr_main.c @@ -107,7 +107,7 @@ main(argc, argv) gdb_debug(0); /* this can be patched, if necessary, to enable */ /* GDB level debugging .. */ krb_realm = malloc(REALM_SZ); - get_krbrlm(krb_realm, 1); + krb_get_lrealm(krb_realm, 1); /* * Database initialization. Only init if database should be open. @@ -189,7 +189,8 @@ main(argc, argv) (fd_set *)NULL, (struct timeval *)NULL); if (status == -1) { - com_err(whoami, errno, " error from op_select"); + if (errno != EINTR) + com_err(whoami, errno, " error from op_select"); continue; } else if (status != -2) { com_err(whoami, 0, " wrong return from op_select_any"); @@ -327,7 +328,7 @@ new_connection() cp->con = newconn; cp->id = counter++; cp->args = NULL; - cp->clname = NULL; + cp->clname[0] = NULL; cp->reply.sms_argv = NULL; cp->first = NULL; cp->last = NULL; @@ -476,12 +477,8 @@ void reapchild() union wait status; int pid; - if (takedown || dormant == ASLEEP) - return; while ((pid = wait3(&status, WNOHANG, (struct rusage *)0)) > 0) { - if (status.w_termsig == 0 && status.w_retcode == 0) - com_err(whoami, 0, "child exited successfully"); - else + if (!takedown && (status.w_termsig != 0 || status.w_retcode != 0)) com_err(whoami, 0, "%d: child exits with signal %d status %d", pid, status.w_termsig, status.w_retcode); }