Allow admin clients to filter out async messages. Send notifications
[tripe] / tripe.c
diff --git a/tripe.c b/tripe.c
index e2356eb..78a3d72 100644 (file)
--- a/tripe.c
+++ b/tripe.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: tripe.c,v 1.15 2004/04/19 08:49:40 mdw Exp $
+ * $Id$
  *
  * Main program
  *
@@ -74,9 +74,9 @@ void interval(struct timeval *tv, void *v)
 
 static void usage(FILE *fp)
 {
-  pquis(fp, "Usage: $ [-D] [-d dir] [-b addr] [-p port]\n\
-       [-U user] [-G group] [-a socket] [-T trace-opts]\n\
-       [-k priv-keyring] [-K pub-keyring] [-t key-tag]\n");
+  pquis(fp, "Usage: $ [-D] [-d DIR] [-b ADDR] [-p PORT]\n\
+       [-U USER] [-G GROUP] [-a SOCKET] [-T TRACE-OPTS]\n\
+       [-k PRIV-KEYRING] [-K PUB-KEYRING] [-t KEY-TAG]\n");
 }
 
 static void version(FILE *fp)
@@ -95,6 +95,7 @@ Options:\n\
 -h, --help             Display this help text.\n\
 -v, --version          Display version number.\n\
 -u, --usage            Display pointless usage message.\n\
+    --tunnel           Display IP tunnelling technique and exit.\n\
 \n\
 -D, --daemon           Run in the background.\n\
 -d, --directory=DIR    Switch to directory DIR [default " CONFIGDIR "].\n\
@@ -273,8 +274,13 @@ int main(int argc, char *argv[])
   signal(SIGPIPE, SIG_IGN);
   tun_init();
   p_init(baddr, port);
-  if (!(f & f_daemon))
-    a_create(STDIN_FILENO, STDOUT_FILENO);
+  if (!(f & f_daemon)) {
+#ifndef NTRACE
+    a_create(STDIN_FILENO, STDOUT_FILENO, AF_TRACE | AF_WARN);
+#else
+    a_create(STDIN_FILENO, STDOUT_FILENO, AF_WARN);
+#endif
+  }
   if (g != (gid_t)-1) {
     if (setgid(g) || (getuid() == 0 && setgroups(1, &g))) {
       die(EXIT_FAILURE, "couldn't setgid to %u: %s",
@@ -308,11 +314,11 @@ int main(int argc, char *argv[])
       if (!sel_select(&sel))
         selerr = 0;
       else if (errno != EINTR && errno != EAGAIN) {
-       a_warn("select failed: %s", strerror(errno));
+       a_warn("SERVER select-error -- %s", strerror(errno));
        selerr++;
        if (selerr > 8) {
-         a_warn("too many select errors: bailing out");
-         a_quit();
+         a_warn("ABORT repeated-select-errors");
+         abort();
        }
       }
     }