12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #! /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 Peter Palfrader
- # Modified by Jacob Appelbaum <jacob@appelbaum.net> April 16th 2006
- # May be distributed under the same terms as Tor itself
- # Define and ensure we have tsocks
- # XXX: what if we don't have which?
- TORSOCKS="`which torsocks`"
- TSOCKS="`which tsocks`"
- PROG=""
- if [ ! -x "$TSOCKS" ]
- then
- echo "$0: Can't find tsocks in PATH. Perhaps you haven't installed it?" >&2
- else
- PROG=$TSOCKS
- fi
- if [ ! -x "$TORSOCKS" ]
- then
- echo "$0: Can't find torsocks in PATH. Perhaps you haven't installed it?" >&2
- else
- PROG=$TORSOCKS
- fi
- if [ ! -x "$PROG" ]
- then
- echo "$0: Can't find the required tor helpers in our PATH. Perhaps you haven't installed them?" >&2
- exit 1;
- fi
- # Check for any argument list
- if [ "$#" = 0 ]
- then
- echo "Usage: $0 [-hv] <command> [<options>...]" >&2
- exit 1
- fi
- if [ "$#" = 1 ] && ( [ "$1" = "-h" ] || [ "$1" = "--help" ] )
- then
- echo "Usage: $0 [-hv] <command> [<options>...]"
- exit 0
- fi
- if [ "$1" = "-v" ] || [ "$1" = "--verbose" ]
- then
- echo "We're armed with the following tsocks: $TSOCKS"
- echo "We're armed with the following torsocks: $TORSOCKS"
- echo "We're attempting to use $PROG for all tor action."
- shift 1
- fi
- if [ "$PROG" = "$TSOCKS" ]
- then
- # 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." >&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
- fi
- if [ "$PROG" = "$TORSOCKS" ]
- then
- exec torsocks "$@"
- fi
|