/* -*-c-*-
*
- * $Id: daemon.c,v 1.2 1997/08/04 10:24:21 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.
+ *
* Revision 1.2 1997/08/04 10:24:21 mdw
* Sources placed under CVS control.
*
#include "idea.h"
#include "lexer.h"
#include "name.h"
+#include "netg.h"
#include "parser.h"
#include "rule.h"
#include "tx.h"
/*----- Arbitrary constants -----------------------------------------------*/
-#define daemon__awakeEvery (5 * 60) /* Awaken this often to rescan */
+#define daemon__awakeEvery (30 * 60) /* Awaken this often to rescan */
/*----- Static variables --------------------------------------------------*/
* user wants me to start on a funny port.
*/
- seteuid(getuid());
+ setuid(getuid());
/* --- Initialise bits of the program --- */
userdb_init();
userdb_local();
userdb_yp();
+ netg_init();
name_init();
rule_init();
openlog(quis(), 0, LOG_DAEMON);
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 --- */
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();
- 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;