+static void reloadconf(char *nm)
+{
+ struct config *cf;
+
+ if((cf = readconfig(nm)) == NULL) {
+ flog(LOG_WARNING, "could not reload configuration file `%s'", nm);
+ return;
+ }
+ mergechildren(cf->children, lconfig->children);
+ freeconfig(lconfig);
+ lconfig = cf;
+}
+
+static void chldhandler(int sig)
+{
+ pid_t pid;
+
+ do {
+ pid = waitpid(-1, NULL, WNOHANG);
+ } while(pid > 0);
+}
+
+static void sighandler(int sig)
+{
+ if(sig == SIGHUP)
+ reload = 1;
+}
+