Check for setgroups(2), to see whether subsidiary group lists need to be
[become] / src / daemon.c
index 56a9dab..f79d76b 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: daemon.c,v 1.4 1997/08/07 10:00:37 mdw Exp $
+ * $Id: daemon.c,v 1.6 1997/09/09 18:17:06 mdw Exp $
  *
  * Running a `become' daemon
  *
 /*----- Revision history --------------------------------------------------*
  *
  * $Log: daemon.c,v $
+ * Revision 1.6  1997/09/09 18:17:06  mdw
+ * Allow default port to be given as a service name or port number.
+ *
+ * Revision 1.5  1997/08/20  16:17:10  mdw
+ * More sensible restart routine: `_reinit' functions replaced by `_end' and
+ * `_init' functions.
+ *
  * Revision 1.4  1997/08/07 10:00:37  mdw
  * (Log entry for previous version is bogus.)  Read netgroups database.
  * Give up privileges permanently on startup.
@@ -319,7 +326,7 @@ void daemon_init(const char *cf, int port)
     struct servent *se = getservbyname(quis(), "udp");
     if (!se)
       die("no idea which port to use");
-    daemon__port = ntohs(se->s_port);
+    daemon__port = se->s_port;
   }
 
   /* --- Now set up a socket --- */
@@ -426,12 +433,16 @@ void daemon_init(const char *cf, int port)
       if (daemon__rescan || time(0) - when > 0) {
        daemon__rescan = 0;
        syslog(LOG_INFO, "rescanning configuration file");
-       userdb_reinit();
+       name_end();
+       rule_end();
+       netg_end();
+       userdb_end();
+       userdb_init();
        userdb_local();
        userdb_yp();
-       netg_reinit();
-       rule_reinit();
-       name_reinit();
+       netg_init();
+       rule_init();
+       name_init();
        if (daemon__readConfig(cf))
          syslog(LOG_ERR, "error reading configuration file");
        when = time(0) + daemon__awakeEvery;