From: Michael Prokop Date: Fri, 8 Jun 2007 22:45:18 +0000 (+0200) Subject: /etc/zsh/zshrc: added alias ipv6-tunnel X-Git-Tag: 0.3.11~1 X-Git-Url: http://git.grml.org/?a=commitdiff_plain;h=0e313012c03842191f78762cfdc8baf3207bfe9b;p=grml-etc-core.git /etc/zsh/zshrc: added alias ipv6-tunnel --- diff --git a/debian/changelog b/debian/changelog index bad8edc..2e00a62 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +grml-etc-core (0.3.11) unstable; urgency=low + + * /etc/zsh/zshrc: added alias ipv6-tunnel + + -- Michael Prokop Sat, 09 Jun 2007 00:45:05 +0200 + grml-etc-core (0.3.10) unstable; urgency=low * /etc/zsh/zshrc: use \e instead of the escape-sequence. diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 91b39d7..4332925 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -3,7 +3,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mon Jun 04 23:21:01 CEST 2007 [mika] +# Latest change: Sam Jun 09 00:44:57 CEST 2007 [mika] ################################################################################ # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, @@ -1255,6 +1255,44 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." setxkbmap us && echo 'Done' || echo 'Failed' } + # set up an ipv6 tunnel + ipv6-tunnel() { + case $1 in + start) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print 'ipv6 tunnel already set up, nothing to be done.' + print 'execute: "ifconfig sit1 down ; ifconfig sit0 down" to remove ipv6-tunnel.' ; return 1 + else + [ -n "$PUBLIC_IP" ] || local PUBLIC_IP=$(ifconfig $(route -n | awk '/^0\.0\.0\.0/{print $8; exit}') | \ + awk '/inet addr:/ {print $2}' | tr -d 'addr:') + [ -n "$PUBLIC_IP" ] || { print 'No $PUBLIC_IP set and could not determine default one.' ; return 1 } + local IPV6ADDR=$(printf "2002:%02x%02x:%02x%02x:1::1" $(print ${PUBLIC_IP//./ })) + print -n "Setting up ipv6 tunnel $IPV6ADDR via ${PUBLIC_IP}: " + ifconfig sit0 tunnel ::192.88.99.1 up + ifconfig sit1 add "$IPV6ADDR" && print done || print failed + fi + ;; + status) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print 'ipv6 tunnel available' ; return 0 + else + print 'ipv6 tunnel not available' ; return 1 + fi + ;; + stop) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print -n 'Stopping ipv6 tunnel (sit0 + sit1): ' + ifconfig sit1 down ; ifconfig sit0 down && print done || print failed + else + print 'No ipv6 tunnel found, nothing to be done.' ; return 1 + fi + ;; + *) + print "Usage: ipv6-tunnel [start|stop|status]">&2 ; return 1 + ;; + esac + } + # Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html # bash() { # NO_SWITCH="yes" command bash "$@"