#include "names.h"
#include "net.h"
#include "netutl.h"
-#include "process.h"
#include "protocol.h"
#include "subnet.h"
#include "xalloc.h"
if(outgoing)
do_outgoing_connection(outgoing);
+
+#ifndef HAVE_MINGW
+ /* Clean up dead proxy processes */
+
+ while(waitpid(-1, NULL, WNOHANG) > 0);
+#endif
}
/*
nc++;
}
- if(nc < autoconnect) {
+ if(nc < 3) {
/* Not enough active connections, try to add one.
Choose a random node, if we don't have a connection to it,
and we are not already trying to make one, create an
}
break;
}
- } else if(nc > autoconnect) {
+ } else if(nc > 3) {
/* Too many active connections, try to remove one.
Choose a random outgoing connection to a node
that has at least one other connection.
}
}
- if(nc >= autoconnect) {
+ if(nc >= 3) {
/* If we have enough active connections,
remove any pending outgoing connections.
*/
static void sighup_handler(void *data) {
logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum));
reopenlogger();
- reload_configuration();
+ if(reload_configuration())
+ exit(1);
}
static void sigalrm_handler(void *data) {
init_configuration(&config_tree);
if(!read_server_config()) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reread configuration file, exitting.");
- event_exit();
+ logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reread configuration file.");
return EINVAL;
}