#! /bin/sh # Wrapper script for use of the tsocks(8) transparent socksification library # See the tsocks(1) and torify(1) manpages. # Copyright (c) 2004, 2006, 2009 Peter Palfrader # Modified by Jacob Appelbaum April 16th 2006 # May be distributed under the same terms as Tor itself # taken from Debian's Developer's Reference, 6.4 pathfind() { OLDIFS="$IFS" IFS=: for p in $PATH; do if [ -x "$p/$*" ]; then IFS="$OLDIFS" return 0 fi done IFS="$OLDIFS" return 1 } # Check for any argument list if [ "$#" = 0 ]; then echo "Usage: $0 [-hv] [...]" >&2 exit 1 fi if [ "$#" = 1 ] && ( [ "$1" = "-h" ] || [ "$1" = "--help" ] ); then echo "Usage: $0 [-hv] [...]" exit 0 fi if [ "$1" = "-v" ] || [ "$1" = "--verbose" ]; then verbose=1 shift 1 else verbose=0 fi if pathfind torsocks; then ! [ "$verbose" -ge 1 ] || echo "Using torsocks as socksifier." >&2 exec torsocks "$@" echo "$0: Failed to exec torsocks $@" >&2 exit 1 elif pathfind tsocks; then ! [ "$verbose" -ge 1 ] || echo "Using tsocks as socksifier." >&2 # Define our tsocks config file TSOCKS_CONF_FILE="/etc/tor/tor-tsocks.conf" export TSOCKS_CONF_FILE # Check that we've got a tsocks config file if [ -r "$TSOCKS_CONF_FILE" ] then echo "WARNING: tsocks is known to leak DNS and UDP data. If you had torsocks we would use that." >&2 exec tsocks "$@" echo "$0: Failed to exec tsocks $@" >&2 exit 1 else echo "$0: Missing tsocks configuration file \"$TSOCKS_CONF_FILE\"." >&2 exit 1 fi else echo "$0: Can't find neither tsocks nor torsocks in your PATH. Perhaps you haven't installed either?" >&2 exit 1 fi