chiark / gitweb /
Manpages: Fix substitutions.
[tripe] / server / tun-bsd.c
index 200b5d9325a65fecf3c9d1a831b533ee10079bb2..bfa528b2d5c4e63030aaa364ba2aa2961de7ba14 100644 (file)
@@ -82,43 +82,6 @@ static void t_read(int fd, unsigned mode, void *v)
 
 static void t_init(void) { return; }
 
-/* --- @t_open@ --- *
- *
- * Arguments:  @char **ifn@ = where to put the interface name
- *
- * Returns:    A file descriptor, or @-1@ on failure.
- *
- * Use:                Opens a tunnel device.  This will run with root privileges
- *             even if the rest of the server has dropped them.
- */
-
-static int t_open(char **ifn)
-{
-  int fd;
-  unsigned n;
-  char buf[16];
-
-  n = 0;
-  for (;;) {
-    sprintf(buf, "/dev/tun%u", n);
-    if ((fd = open(buf, O_RDWR)) >= 0)
-      break;
-    switch (errno) {
-      case EBUSY:
-       T( trace(T_TUNNEL, "tunnel device %u busy: skipping", n); )
-       break;
-      case ENOENT:
-       a_warn("TUN", "-", "bsd", "no-tunnel-devices", A_END);
-       return (-1);
-      default:
-       a_warn("TUN", "-", "open-error", "%s", buf, "?ERRNO", A_END);
-       break;
-    }
-    n++;
-  }
-  return (fd);
-}
-
 /* --- @t_create@ --- *
  *
  * Arguments:  @peer *p@ = pointer to peer block
@@ -176,8 +139,8 @@ static void t_destroy(tunnel *t)
 
 const tunnel_ops tun_bsd = {
   "bsd",
+  TUNF_PRIVOPEN,
   t_init,
-  t_open,
   t_create,
   0,
   t_inject,