diff options
Diffstat (limited to 'src/tinyproxy.c')
-rw-r--r-- | src/tinyproxy.c | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/src/tinyproxy.c b/src/tinyproxy.c index 375913a..d7efafe 100644 --- a/src/tinyproxy.c +++ b/src/tinyproxy.c @@ -1,4 +1,4 @@ -/* $Id: tinyproxy.c,v 1.31 2002-05-24 04:45:32 rjkaes Exp $ +/* $Id: tinyproxy.c,v 1.32 2002-05-26 18:52:23 rjkaes Exp $ * * The initialize routine. Basically sets up all the initial stuff (logfile, * listening socket, config options, etc.) and then sits there and loops @@ -27,14 +27,13 @@ #include "anonymous.h" #include "buffer.h" #include "daemon.h" -#include "dnsclient.h" #include "heap.h" #include "filter.h" +#include "child.h" #include "log.h" #include "reqs.h" #include "sock.h" #include "stats.h" -#include "thread.h" #include "utils.h" void takesig(int sig); @@ -320,7 +319,7 @@ main(int argc, char **argv) /* * Start listening on the selected port. */ - if (thread_listening_sock(config.port) < 0) { + if (child_listening_sock(config.port) < 0) { fprintf(stderr, "%s: Could not create listening socket.\n", argv[0]); exit(EX_OSERR); @@ -369,37 +368,14 @@ main(int argc, char **argv) "Not running as root, so not changing UID/GID."); } - /* - * Start the "dnsserver" child process. - */ - if (config.dnsserver_location && config.dnsserver_socket) { - struct stat stat_buf; - if (lstat(config.dnsserver_socket, &stat_buf) == 0 || errno != ENOENT) { - fprintf(stderr, "%s:\nThere was a problem creating the dnsserver socket.\nPlease remove '%s'.\n", - argv[0], config.dnsserver_socket); - exit(EX_OSERR); - } - - start_dnsserver(config.dnsserver_location, - config.dnsserver_socket); - } else { - if (!config.dnsserver_location) { - fprintf(stderr, "%s: You must provide a location for the 'dnsserver' program.\n", argv[0]); - } - if (!config.dnsserver_socket) { - fprintf(stderr, "%s: You must provide a path for the 'dnsserver' socket.\n", argv[0]); - } - exit(EX_SOFTWARE); - } - - if (thread_pool_create() < 0) { - fprintf(stderr, "%s: Could not create the pool of threads.", + if (child_pool_create() < 0) { + fprintf(stderr, "%s: Could not create the pool of children.", argv[0]); exit(EX_SOFTWARE); } /* - * These signals are only for the main thread. + * These signals are only for the main child. */ log_message(LOG_INFO, "Setting the various signals."); if (set_signal_handler(SIGTERM, takesig) == SIG_ERR) { @@ -418,7 +394,7 @@ main(int argc, char **argv) */ log_message(LOG_INFO, "Starting main loop. Accepting connections."); - thread_main_loop(); + child_main_loop(); #ifdef FILTER_ENABLE if (config.filter) @@ -427,13 +403,8 @@ main(int argc, char **argv) log_message(LOG_INFO, "Shutting down."); - thread_kill_threads(); - thread_close_sock(); - - /* - * Stop the "dnsserver" child process. - */ - stop_dnsserver(); + child_kill_children(); + child_close_sock(); /* * Remove the PID file. |