Update example script iodine-jigger; thanks to Stephan Walter for the bug
authorgregor herrmann <gregoa@debian.org>
Thu, 29 Jan 2009 16:43:10 +0000 (16:43 -0000)
committergregor herrmann <gregoa@debian.org>
Thu, 29 Jan 2009 16:43:10 +0000 (16:43 -0000)
report and to Barak A. Pearlmutter for the updated version; add gawk to
Suggests (closes: #513221).

debian/changelog
debian/control
debian/iodine-jigger

index 9004feb42982e15689daf1690d9cf91c6ba6c0df..b8137233ebf79fff2dceceaf9b91059441b404c7 100644 (file)
@@ -1,3 +1,11 @@
+iodine (0.5.0-2) UNRELEASED; urgency=low
+
+  * Update example script iodine-jigger; thanks to Stephan Walter for the bug
+    report and to Barak A. Pearlmutter for the updated version; add gawk to
+    Suggests (closes: #513221).
+
+ -- gregor herrmann <gregoa@debian.org>  Thu, 29 Jan 2009 17:38:07 +0100
+
 iodine (0.5.0-1) experimental; urgency=low
 
   * New upstream release.
index ed7e8f98dc9f1f8d809c2367cda211d1413eb4c7..e77b55ed13f297dd1257c628a61cd07e80b91fba 100644 (file)
@@ -12,7 +12,7 @@ Vcs-Browser: http://svn.toastfreeware.priv.at/wsvn/ToastfreewareDebian/iodine/tr
 Package: iodine
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, udev | makedev, adduser
-Suggests: iproute, ipcalc, dnsutils, fping
+Suggests: iproute, ipcalc, dnsutils, fping, gawk
 Description: tool for tunneling IPv4 data through a DNS server
  This is a piece of software that lets you tunnel IPv4 data through a DNS
  server. This can be usable in different situations where internet access is
index 0bb32aecdb052c96cd6fa688f3d2c9c0db4a26ea..92533a2bbd865f07aa835b55d749e78dabe6c1cd 100644 (file)
@@ -27,7 +27,7 @@ set -e
 
 ## Minimal customization: put the two lines
 ##  subdomain=your.tunnel.sub.domain
-##  passed=password_for_that_tunnel
+##  passwd=password_for_that_tunnel
 ## in the file /etc/default/iodine-client.
 
 echo "${iodine_client_rc:=/etc/default/iodine-client}" > /dev/null
@@ -67,7 +67,7 @@ echo "${test_ping_final:=true}"                       > /dev/null
 echo "${default_router}"                       > /dev/null
 
 ## Set if script uses the wrong hardware interface
-echo "{interface}"                             > /dev/null
+echo "${interface}"                            > /dev/null
 
 ## Set if the script should continue even if a command fails.
 ## Used to test script when running as non-root.
@@ -83,6 +83,7 @@ fi
 ##  ipcalc (for /usr/bin/ipcalc)
 ##  dnsutils (for /usr/bin/dig)
 ##  fping (for /usr/bin/fping)
+##  gawk (for /usr/bin/gawk, to use gensub())
 
 ## The default tunnel MTU is 1024.
 ## If local DNS server restricts to 512 byte packets then do this:
@@ -189,6 +190,8 @@ for n in ${nameservers}; do
     n_net=$(ipcalc --nobinary ${n}/${prefix_len} | awk '$1=="Network:" {print $2}')
     if [ "${n_net}" != "${local_net}" ]; then
        echo ==== Adding point-to-point route for DNS server ${n}
+        ## remove point-to-point route first, in case it is already present
+       ip -4 route del ${n}/32 || true
        ip -4 route add ${n}/32 via ${router} || ${continue_on_error}
     fi
 done
@@ -196,7 +199,7 @@ done
 ## Bring up DNS tunnel
 
 echo ==== Creating IP-over-DNS tunnel...
-iodine -P ${passwd} ${subdomain} || ${continue_on_error}
+iodine -P "${passwd}" "${subdomain}" || ${continue_on_error}
 
 ## Find DNS tunnel interface
 
@@ -212,7 +215,7 @@ echo ==== DNS tunnel interface: ${tunnel_interface}
 ## it *prints* it as it sets up the tunnel, so it does know it.)
 
 tunnel_remote=$(ip -4 address show dev ${tunnel_interface} \
-    | awk '$1=="inet" {print gensub("[.][0-9]*/.*", ".1", 1, $2)}' | head -1)
+    | gawk '$1=="inet" {print gensub("[.][0-9]*/.*", ".1", 1, $2)}' | head -1)
 
 if [ -z ${tunnel_remote} ]; then
     echo ERROR: Cannot find DNS tunnel remote endpoint.