chiark / gitweb /
changelog WIP
[userv.git] / overlord.c
index ae6fbfb972530cc8a599d1532014d73562f5da17..8f0dcb8a69a974ee2468dd76f21bbc186f668de4 100644 (file)
@@ -25,6 +25,7 @@
 #include <errno.h>
 #include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <assert.h>
 #include <fnmatch.h>
 #include <sys/wait.h>
@@ -81,7 +82,7 @@ static void checkstalepipes(void) {
 
 static void sighandler_chld(int x) {
   pid_t r;
-  int status, es, ar;
+  int status, es;
 
   es= errno;
   for (;;) {
@@ -117,8 +118,7 @@ static void sighandler_chld(int x) {
               (long)checkpid,status);
       }
       checkpid= -1;
-      ar= alarm(USERVD_MYSELF_CHECK);
-      if (ar<0) { syslog(LOG_CRIT,"set alarm for next check: %m"); exit(5); }
+      alarm(USERVD_MYSELF_CHECK);
     } else {
       if (WIFSIGNALED(status)) {
        syslog(LOG_ERR,"call pid %ld %s due to signal %s",
@@ -208,8 +208,7 @@ static void NONRETURNING docheck(int needwanted) {
     syslog(LOG_ERR,"unable to connect to uservd daemon: %m"); exit(1);
   }
 
-  r= alarm(USERVD_MYSELF_TIMEOUT);
-  if (r<0) { syslog(LOG_ERR,"set alarm for read: %m"); exit(1); }
+  alarm(USERVD_MYSELF_TIMEOUT);
   remain= sizeof(opening_mbuf); p= (unsigned char*)&opening_mbuf;
   while (remain) {
     r= read(sfd,p,remain);
@@ -263,7 +262,8 @@ static void NONRETURNING startupsyscallerr(const char *what) {
 }
 
 int main(int argc, char *const *argv) {
-  int mfd, sfd, nfd, csocklen, e, r, becomedaemon;
+  int mfd, sfd, nfd, e, r, becomedaemon;
+  socklen_t csocklen;
   struct sigaction sigact;
   struct sockaddr_un ssockname, csockname;
   pid_t child, parentpid, sid;
@@ -353,8 +353,7 @@ int main(int argc, char *const *argv) {
          break;
        } else if (errno==EAGAIN) {
          syslog(LOG_ERR,"fork for check - will wait and retry: %m");
-         r= alarm(USERVD_CHECKFORK_RETRY);
-         if (r<0) { syslog(LOG_CRIT,"set alarm for retry check: %m"); exit(5); }
+         alarm(USERVD_CHECKFORK_RETRY);
          break;
        } else if (errno!=EINTR) {
          syslog(LOG_CRIT,"fork for check: %m"); exit(5);