chiark / gitweb /
server/tripe.c: Be more clever about when to switch error output.
[tripe] / server / tripe.c
index 60eaf8f9aa7bb8b254eb0a1a204cab5f3ec40d52..60460598a0b85299482322d46356736557b3cf90 100644 (file)
@@ -304,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++) {
@@ -316,7 +317,6 @@ int main(int argc, char *argv[])
   a_init();
   a_signals();
   a_listen(csock, u, g, csockmode);
-  a_switcherr();
   u_setugid(u, g);
   km_init(kr_priv, kr_pub, tag_priv);
   kx_init();
@@ -324,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;