chiark / gitweb /
Remove crufty old CVS $Id$ markers.
[tripe] / server / tripe.c
index be37617a1e57204778fc93f87e2c11cd63fba284..280878c979b844180ced472218185591c7a2d050 100644 (file)
@@ -1,13 +1,11 @@
 /* -*-c-*-
- *
- * $Id$
  *
  * Main program
  *
  * (c) 2001 Straylight/Edgeware
  */
 
-/*----- Licensing notice --------------------------------------------------* 
+/*----- Licensing notice --------------------------------------------------*
  *
  * This file is part of Trivial IP Encryption (TrIPE).
  *
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * TrIPE is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with TrIPE; if not, write to the Free Software Foundation,
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@@ -96,10 +94,7 @@ static void usage(FILE *fp)
        [-k PRIV-KEYRING] [-K PUB-KEYRING] [-t KEY-TAG]\n");
 }
 
-static void version(FILE *fp)
-{
-  pquis(fp, "$, version " VERSION "\n");
-}
+static void version(FILE *fp) { pquis(fp, "$, version " VERSION "\n"); }
 
 static void help(FILE *fp)
 {
@@ -117,7 +112,8 @@ Options:\n\
 -D, --daemon           Run in the background.\n\
 -d, --directory=DIR    Switch to directory DIR [default " CONFIGDIR "].\n\
 -b, --bind-address=ADDR        Bind UDP socket to this IP ADDR.\n\
--p, --port=PORT                Select UDP port to listen to.\n\
+-p, --port=PORT                Select UDP port to listen to "
+       "[default " STR(TRIPE_PORT) "].\n\
 -n, --tunnel=TUNNEL    Seelect default tunnel driver.\n\
 -U, --setuid=USER      Set uid to USER after initialization.\n\
 -G, --setgid=GROUP     Set gid to GROUP after initialization.\n\
@@ -138,7 +134,7 @@ int main(int argc, char *argv[])
   const char *csock = SOCKETDIR "/tripesock";
   const char *dir = CONFIGDIR;
   const char *p;
-  unsigned port = 0;
+  unsigned port = TRIPE_PORT;
   struct in_addr baddr = { INADDR_ANY };
   unsigned f = 0;
   int i;
@@ -155,6 +151,8 @@ int main(int argc, char *argv[])
 
   if ((p = getenv("TRIPEDIR")) != 0)
     dir = p;
+  if ((p = getenv("TRIPESOCK")) != 0)
+    csock = p;
   tun_default = tunnels[0];
 
   for (;;) {
@@ -244,7 +242,7 @@ int main(int argc, char *argv[])
            die(EXIT_FAILURE, "unknown service name `%s'", optarg);
          i = ntohs(s->s_port);
        }
-       if (i == 0 || i >= 65536)
+       if (i >= 65536)
          die(EXIT_FAILURE, "bad port number %lu", i);
        port = i;
       } break;
@@ -331,7 +329,7 @@ int main(int argc, char *argv[])
   km_init(kr_priv, kr_pub, tag_priv);
   a_init(csock);
   if (f & f_daemon) {
-    if (u_daemon())
+    if (daemonize())
       die(EXIT_FAILURE, "couldn't become a daemon: %s", strerror(errno));
     a_daemon();
   }
@@ -341,6 +339,7 @@ int main(int argc, char *argv[])
   sel_addtimer(&sel, &it, &tv, interval, 0);
 
   for (;;) {
+    a_preselect();
     if (!sel_select(&sel))
       selerr = 0;
     else if (errno != EINTR && errno != EAGAIN) {