X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/97d410cd97ea4bde1810a3081aa7f83f1bba1147..a47e5f929c244078a87c737ae99294fecfb269c0:/server/tripe.c diff --git a/server/tripe.c b/server/tripe.c index ed54c5ed..60460598 100644 --- a/server/tripe.c +++ b/server/tripe.c @@ -294,7 +294,8 @@ int main(int argc, char *argv[]) signal(SIGPIPE, SIG_IGN); for (i = 0; tunnels[i]; i++) tunnels[i]->init(); - p_init(ailist); freeaddrinfo(ailist); + p_init(); + p_bind(ailist); freeaddrinfo(ailist); if (!(f & f_daemon)) { af = AF_WARN; #ifndef NTRACE @@ -303,6 +304,7 @@ int main(int argc, char *argv[]) if (f & f_foreground) af |= AF_FOREGROUND; a_create(STDIN_FILENO, STDOUT_FILENO, af); + a_switcherr(); } for (i = 0; tunnels[i]; i++) { @@ -312,7 +314,9 @@ int main(int argc, char *argv[]) } } - a_init(csock, u, g, csockmode); + a_init(); + a_signals(); + a_listen(csock, u, g, csockmode); u_setugid(u, g); km_init(kr_priv, kr_pub, tag_priv); kx_init(); @@ -320,6 +324,7 @@ int main(int argc, char *argv[]) if (daemonize()) die(EXIT_FAILURE, "couldn't become a daemon: %s", strerror(errno)); a_daemon(); + a_switcherr(); } tv.tv_sec = time(0) + T_INTERVAL;