From 19109125e8ad1752e79fd7292eb2d6870223ded1 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 5 Jun 2003 08:19:53 +0000 Subject: support vtun --- sources/vtun.patch | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 sources/vtun.patch (limited to 'sources/vtun.patch') diff --git a/sources/vtun.patch b/sources/vtun.patch new file mode 100644 index 000000000..f5946562e --- /dev/null +++ b/sources/vtun.patch @@ -0,0 +1,181 @@ +diff -urN vtun.orig/Makefile.in vtun-2.6/Makefile.in +--- vtun.orig/Makefile.in 2002-12-20 09:55:47.000000000 -0700 ++++ vtun-2.6/Makefile.in 2003-06-05 01:51:50.000000000 -0600 +@@ -28,7 +28,7 @@ + LEXFLAGS = -t + + INSTALL = @INSTALL@ +-INSTALL_OWNER = -o root -g 0 ++INSTALL_OWNER = + + prefix = @prefix@ + exec_prefix = @exec_prefix@ +@@ -86,12 +86,10 @@ + + install_config: + $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR) +- if [ ! -f $(ETC_DIR)/vtund.conf ]; then \ +- $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \ +- fi ++ $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); ++ $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR); + + install: vtund install_config install_man +- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run + $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR) + $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR) + $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR) +diff -urN vtun.orig/scripts/vtund.rc.debian vtun-2.6/scripts/vtund.rc.debian +--- vtun.orig/scripts/vtund.rc.debian 2000-03-26 10:06:37.000000000 -0700 ++++ vtun-2.6/scripts/vtund.rc.debian 2003-06-05 01:52:54.000000000 -0600 +@@ -1,92 +1,59 @@ +-#! /usr/bin/perl -w ++#! /bin/sh ++# + +-### vtund-start +-### +-### script to start vtund as either a server or a client, according to +-### the config file /etc/vtund-start.conf +-### +-### Copyright 1999 Craig Sanders +-### +-### Written for the Debian GNU/Linux distribution. This script is free +-### software licensed under the terms of the GNU General Public License. +- +-$DAEMON="/usr/sbin/vtund" ; +- +-$do_what = shift ; +-$args="start|stop|reload|force-reload|restart" ; +-if ( $do_what !~ /^($args)$/i ) { +- print "Usage: /etc/init.d/vtun {$args}\n" ; +- exit 0 ; +-} +- +-$SSD="/sbin/start-stop-daemon" ; +-$SSDARGS="--verbose --exec $DAEMON" ; +- +-$sconf="/etc/vtund-start.conf" ; +-open(SCONF,"<$sconf") || die "couldn't open $sconf: $!\n" ; +-while () { +- chomp ; +- s/#.*//; +- s/^ +| +$//; +- next if (/^$/) ; +- +- @line = split ; +- $host = shift(@line) ; +- $server = shift(@line) ; +- $args = "" ; +- foreach (@line) { $args .= " $_" } ; +- +- $host='' if ($host =~ /--server--/i ) ; +- +- if ( $do_what eq 'start' ) { +- &start($host,$server,$args) ; +- } elsif ( $do_what eq 'stop' ) { +- &stop($host,$server,$args) ; +- } elsif ( $do_what eq 'restart' ) { +- &stop($pidfile) ; +- &start($host,$server,$args) ; +- } elsif ( $do_what =~ /^(reload|force-reload)$/ ) { +- &reload($host,$server) ; +- } +-} +-close (SCONF); +- +- +-sub start { +- my($host,$server,$args) = @_ ; +- print " Starting vtun " ; +- if ($host eq '') { +- print "server\n" ; +- system "$SSD --start $SSDARGS -- $args -s -P $server" ; +- } else { +- print "client $host to $server\n" ; +- $pidfile="/var/run/vtun.$host.$server" ; +- system "$SSD --start $SSDARGS --pidfile $pidfile -- $args $host $server" ; +- } +-} ; +- +-sub stop { +- my($host,$server,$args) = @_ ; +- print " Stopping vtun " ; +- if ($host eq '') { +- print "server\n" ; +- system "$SSD --stop $SSDARGS" ; +- } else { +- print "client $host to $server\n" ; +- $pidfile="/var/run/vtun.$host.$server" ; +- system "$SSD --stop $SSDARGS --pidfile $pidfile" ; +- } +-} ; +- +-sub reload { +- my($host,$server) = @_ ; +- print " Reloading vtun " ; +- if ($host eq '') { +- print "server\n" ; +- system "$SSD --stop $SSDARGS --signal 1" ; +- } else { +- print "client $host to $server\n" ; +- $pidfile="/var/run/vtun.$host.$server" ; +- system "$SSD --stop $SSDARGS --signal 1 --pidfile $pidfile" ; +- } +-} ++PATH=/bin:/usr/bin:/sbin:/usr/sbin ++DAEMON=/usr/sbin/vtund ++CONFFILE=/etc/vtund-start.conf ++PIDPREFIX=/var/run/vtund ++ ++test -f $DAEMON || exit 0 ++ ++case "$1" in ++ start) ++ # find all the defined tunnels ++ egrep -v '^[:space:]*(#.*)?$' $CONFFILE | while true; ++ do ++ read i ++ # no more lines available? done, then. ++ if [ $? != 0 ] ; then break; fi ++ SARGS=`echo $i|sed -ne 's/--server--\s*/-s -P /p'`; ++ if [ -n "$SARGS" ]; ++ then ++ echo "Starting vtund server." ++ start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.pid -- $SARGS; ++ else ++ # split args into host and rest ++ HOST=`echo $i|cut -f 1 -d " "`; ++ TARGET=`echo $i|cut -f 2 -d " "`; ++ echo "Starting vtund client $HOST to $TARGET."; ++ start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.$HOST.pid -- $i; ++ ++ fi ++ done ++ ;; ++ stop) ++ echo "Stopping vtund."; ++ for i in $PIDPREFIX*; ++ do ++ start-stop-daemon --stop --pidfile $i; ++ rm -f $i; ++ done ++ ;; ++ reload|force-reload) ++ echo "Reloading vtund."; ++ for i in $PIDPREFIX*; ++ do ++ start-stop-daemon --stop --signal 1 --pidfile $i; ++ done ++ ;; ++ restart) ++ $0 stop ++ sleep 1; ++ $0 start ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++exit 0 -- cgit v1.2.3