mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-21 05:26:20 +02:00
5149ae57f1
No longer complain if we cannot find both torify and tsocks. As long as we have one we are happy. Do not rely on which, it's not POSIX. Catch error if torsocks fails and print an error message.
72 lines
1.6 KiB
Bash
Executable File
72 lines
1.6 KiB
Bash
Executable File
#! /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 <jacob@appelbaum.net> 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] <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
|
|
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
|