From dd0d6c7ef9375390cfe9e633addc271f1be5fd0d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 Dec 2013 19:05:35 +0000 Subject: [PATCH] ipif: Update docs to reflect fact that we are now using tun/tap. --- debian/changelog | 1 + ipif/INSTALL | 23 +-------- ipif/README | 3 +- ipif/slattach.diff | 121 --------------------------------------------- 4 files changed, 3 insertions(+), 145 deletions(-) delete mode 100644 ipif/slattach.diff diff --git a/debian/changelog b/debian/changelog index eddbf11..2009368 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ userv-utils (0.6.0~~iwj1) unstable; urgency=low * dyndns: Docuument existence in README. * REAMDE, copyright: Correct locations for GPL, and contact info. * Update to GPLv3+; update copyright notices everywhere. + * ipif: Update docs to reflect fact that we are now using tun/tap. -- 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); - } - - -- 2.30.2