diff options
Diffstat (limited to 'contrib/torify.in')
-rwxr-xr-x | contrib/torify.in | 98 |
1 files changed, 44 insertions, 54 deletions
diff --git a/contrib/torify.in b/contrib/torify.in index d430da8ce7..54acfed654 100755 --- a/contrib/torify.in +++ b/contrib/torify.in @@ -1,71 +1,61 @@ #! /bin/sh -# Wrapper script for use of the tsocks(8) transparent socksification library -# See the tsocks(1) and torify(1) manpages. - +# This script used to call (the now deprecated) tsocks as a fallback in case +# torsocks wasn't installed. +# Now, it's just a backwards compatible shim around torsocks with reasonable +# behavior if -v/--verbose or -h/--help arguments are passed. +# # Copyright (c) 2004, 2006, 2009 Peter Palfrader # Modified by Jacob Appelbaum <jacob@appelbaum.net> April 16th 2006 +# Stripped of all the tsocks cruft by ugh on February 22nd 2012 # 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] <command> [<options>...]" >&2 - exit 1 -fi +compat() { + echo "torify is now just a wrapper around torsocks(1) for backwards compatibility." +} -if [ "$#" = 1 ] && ( [ "$1" = "-h" ] || [ "$1" = "--help" ] ); then +usage() { + compat echo "Usage: $0 [-hv] <command> [<options>...]" - 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 +case $# in 0) + usage >&2 exit 1 +esac -elif pathfind tsocks; then - ! [ "$verbose" -ge 1 ] || echo "Using tsocks as socksifier." >&2 +case $# in 1) + case $1 in -h|--help) + usage + exit 0 + esac +esac - # Define our tsocks config file - TSOCKS_CONF_FILE="/etc/tor/tor-tsocks.conf" - export TSOCKS_CONF_FILE +case $1 in -v|--verbose) + compat >&2 + shift +esac - # 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 +# 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 +} +if pathfind torsocks; then + exec torsocks "$@" + echo "$0: Failed to exec torsocks $@" >&2 + exit 1 else - echo "$0: Can't find either tsocks or torsocks in your PATH. Perhaps you haven't installed either?" >&2 - exit 1 + echo "$0: torsocks not found in your PATH. Perhaps it isn't installed? (tsocks is no longer supported, for security reasons.)" >&2 fi + |