[tor-commits] [tor/master] Remove tsocks support from torify.

nickm at torproject.org nickm at torproject.org
Wed Mar 28 01:41:47 UTC 2012


commit 5cd707dcd31201b0ec86769a22605a647bd8a6a8
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Mar 27 18:43:18 2012 -0400

    Remove tsocks support from torify.
    
    Fixes bug3530 and bug 5180. Patch by ugh.
---
 contrib/torify.in |   91 ++++++++++++++++++-----------------------------------
 1 files changed, 31 insertions(+), 60 deletions(-)

diff --git a/contrib/torify.in b/contrib/torify.in
index d430da8..a5e1474 100755
--- a/contrib/torify.in
+++ b/contrib/torify.in
@@ -1,71 +1,42 @@
 #! /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 at 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
-	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 either tsocks or torsocks in your PATH. Perhaps you haven't installed either?" >&2
+case $# in 0)
+	usage >&2
 	exit 1
-fi
+esac
+
+case $# in 1)
+	case $1 in -h|--help)
+		usage
+		exit 0
+	esac
+esac
+
+case $1 in -v|--verbose)
+	compat >&2
+	shift
+esac
+
+exec torsocks "$@"
+echo "$0: Failed to exec torsocks $@" >&2
+exit 1





More information about the tor-commits mailing list