summaryrefslogtreecommitdiff
path: root/ipif
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-12-04 19:05:35 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-12-04 19:05:35 +0000
commitdd0d6c7ef9375390cfe9e633addc271f1be5fd0d (patch)
tree7f4824415dff3ccdc6809c44ee7c5d011c39b82a /ipif
parent9028e234bb74a97396855e63d9ca598c1a554dc5 (diff)
downloaduserv-utils-dd0d6c7ef9375390cfe9e633addc271f1be5fd0d.tar.gz
ipif: Update docs to reflect fact that we are now using tun/tap.
Diffstat (limited to 'ipif')
-rw-r--r--ipif/INSTALL23
-rw-r--r--ipif/README3
-rw-r--r--ipif/slattach.diff121
3 files changed, 2 insertions, 145 deletions
diff --git a/ipif/INSTALL b/ipif/INSTALL
index 397a31d..71ba29d 100644
--- a/ipif/INSTALL
+++ b/ipif/INSTALL
@@ -13,8 +13,7 @@ BUILD AND INSTALLATION INSTRUCTIONS
1. Install userv, 1.0.1 or later. This is in Debian GNU/Linux.
-2. Make sure your Linux kernel has SLIP and CSLIP compiled in.
- You will need to be using Linux 2.2 (with Unix98-style ptys).
+2. Make sure your Linux kernel has SLIP and TUN compiled in.
3. udptunnel works best if your ssh can do ssh-protocol-level
keepalives. Currently these are only supported by using a special
@@ -34,18 +33,6 @@ BUILD AND INSTALLATION INSTRUCTIONS
setting up SLIP interfaces. It might be possible in principle to
create alternatives for other platforms.
-`slattach' problem:
-
- There is a problem with some versions of `slattach' on Linux. If you
- see a message from it about being unable to open /dev/2 or some such,
- then you need to upgrade or patch your `slattach'. In Debian
- GNU/Linux it's in the `netbase' package, and the fix is in Debian 2.1
- in 3.16-3 and later; however the bug has regressed, and is known to
- be in Debian 2.2's 3.18-4 and earlier. The relevant Debian bug
- reports are #45515 (now closed) and #45944. A patch to correct
- 3.18-4 is provided here as `slattach.diff', and a fixed binary is
- available from me.
-
UDPTUNNEL SETUP TUTORIAL
@@ -489,14 +476,6 @@ UDPTUNNEL SETUP TUTORIAL
invocations (ie, ones with a command specified) often have a
different PATH.
- slattach cannot open /dev/2 (or similar messages)
- Your slattach is buggy. See under `slattach problem' in the build
- and installation instructions, above.
-
- slattach cannot change line discipline (or some other weird message)
- Check whether your kernel is compiled with SLIP and/or CSLIP
- support.
-
* Other messages:
udptunnel-forwarder: alice: bad packet: blowfish-cbcmac: verify failed
diff --git a/ipif/README b/ipif/README
index 09bf5d9..39a691a 100644
--- a/ipif/README
+++ b/ipif/README
@@ -14,8 +14,7 @@ This directory contains:
With the appropriate configuration in userv ipif, users can be
allowed to create VPN connections without needing root privilege.
-These tools have only been tested on GNU/Linux, and userv ipif in
-particular uses the Linux-specific `slattach' utility.
+These tools have only been tested on GNU/Linux.
The documentation available is:
diff --git a/ipif/slattach.diff b/ipif/slattach.diff
deleted file mode 100644
index 2107e2d..0000000
--- a/ipif/slattach.diff
+++ /dev/null
@@ -1,121 +0,0 @@
---- net-tools/slattach.c~ Sun Sep 19 19:04:28 1999
-+++ net-tools/slattach.c Sun Sep 19 19:35:56 1999
-@@ -451,27 +451,39 @@
- static int
- tty_open(char *name, char *speed)
- {
-- char path[PATH_MAX];
-- register char *sp;
-+ char pathbuf[PATH_MAX];
-+ register char *path_open, *path_lock;
- int fd;
-
- /* Try opening the TTY device. */
- if (name != NULL) {
-- if ((sp = strrchr(name, '/')) != (char *)NULL) *sp++ = '\0';
-- else sp = name;
-- sprintf(path, "/dev/%s", sp);
-- if (tty_lock(sp, 1)) return(-1); /* can we lock the device? */
-- if ((fd = open(path, O_RDWR)) < 0) {
-+ if (name[0] != '/') {
-+ if (strlen(name) + 6 > sizeof(pathbuf)) {
-+ if (opt_q == 0) fprintf(stderr,
-+ _("slattach: tty name too long\n"));
-+ return(-1);
-+ }
-+ sprintf(pathbuf, "/dev/%s", name);
-+ path_open = pathbuf;
-+ path_lock = name;
-+ } else if (!strncmp(name,"/dev/",5)) {
-+ path_open = name;
-+ path_lock = name+5;
-+ } else {
-+ path_open = name;
-+ path_lock = name;
-+ }
-+ if (tty_lock(path_lock, 1)) return(-1); /* can we lock the device? */
-+ if ((fd = open(path_open, O_RDWR)) < 0) {
- if (opt_q == 0) fprintf(stderr,
- "slattach: tty_open(%s, RW): %s\n",
-- path, strerror(errno));
-+ path_open, strerror(errno));
- return(-errno);
- }
- tty_fd = fd;
-- if (opt_d) printf("slattach: tty_open: %s (%d) ", path, fd);
-+ if (opt_d) printf("slattach: tty_open: %s (%d) ", path_open, fd);
- } else {
- tty_fd = 0;
-- sp = (char *)NULL;
- }
-
- /* Fetch the current state of the terminal. */
-@@ -562,20 +574,21 @@
- int
- main(int argc, char *argv[])
- {
-- char path[128];
-+ char path_buf[128];
-+ char *path_dev;
- char buff[128];
- char *speed = NULL;
- char *proto = DEF_PROTO;
- char *extcmd = (char *)0;
- struct hwtype *ht;
-- char *sp;
- int s;
- static struct option longopts[] = {
- { "version", 0, NULL, 'V' },
- { NULL, 0, NULL, 0 }
- };
-
-- strcpy(path, "");
-+ strcpy(path_buf, "");
-+ path_dev= path_buf;
-
- /* Scan command line for any arguments. */
- opterr = 0;
-@@ -649,6 +662,12 @@
- /*NOTREACHED*/
- }
-
-+ if (setvbuf(stdout,0,_IOLBF,0)) {
-+ if (opt_q == 0) fprintf(stderr, _("slattach: setvbuf(stdout,0,_IOLBF,0): %s\n"),
-+ strerror(errno));
-+ exit(1);
-+ }
-+
- activate_init();
-
- /* Check the protocol. */
-@@ -660,15 +679,14 @@
-
- /* Is a terminal given? */
- if (optind != (argc - 1)) usage();
-- safe_strncpy(path, argv[optind], sizeof(path));
-- if (!strcmp(path, "-")) {
-+ safe_strncpy(path_buf, argv[optind], sizeof(path_buf));
-+ if (!strcmp(path_buf, "-")) {
- opt_e = 1;
-- sp = NULL;
-+ path_dev = NULL;
- if (tty_open(NULL, speed) < 0) { return(3); }
- } else {
-- if ((sp = strrchr(path, '/')) != NULL) *sp++ = '\0';
-- else sp = path;
-- if (tty_open(sp, speed) < 0) { return(3); }
-+ path_dev = path_buf;
-+ if (tty_open(path_dev, speed) < 0) { return(3); }
- }
-
- /* Start the correct protocol. */
-@@ -681,7 +699,7 @@
- if (opt_v == 1) {
- tty_get_name(buff);
- printf(_("%s started"), proto);
-- if (sp != NULL) printf(_(" on %s"), sp);
-+ if (path_dev != NULL) printf(_(" on %s"), path_dev);
- printf(_(" interface %s\n"), buff);
- }
-
-