chiark / gitweb /
Version bump; new email address.
[tripe] / tripe.c
diff --git a/tripe.c b/tripe.c
index 92a6a62d398a2a158042e06efe1d243e8b3e5e00..180177ee66450b8876ff63f3b9fe064017a616d3 100644 (file)
--- a/tripe.c
+++ b/tripe.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: tripe.c,v 1.14 2004/04/18 18:08:11 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\
@@ -160,7 +161,7 @@ int main(int argc, char *argv[])
       { 0,             0,              0,      0 }
     };
 
-    int i = mdwopt(argc, argv, "hvu DU:G: b:p:d:k:K:t:a:" T("T:"),
+    int i = mdwopt(argc, argv, "hvuDU:G:b:p:d:k:K:t:a:" T("T:"),
                   opts, 0, 0, 0);
     if (i < 0)
       break;
@@ -246,7 +247,8 @@ int main(int argc, char *argv[])
        break;
 #endif
       case '0': {
-       static const char *tun[] = { "notdef", "unet", "bsd", "linux" };
+       static const char *tun[] =
+         { "notdef", "unet", "bsd", "linux", "slip" };
        puts(tun[TUN_TYPE]);
        exit(0);
       } break;
@@ -273,8 +275,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 +315,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();
        }
       }
     }