#!/bin/sh # Wrapper script for use of the tsocks(8) transparent socksification library # # There are three forms of usage for this script: # # /usr/bin/tsocks program [program arguments...] # # This form sets the users @LD_PRELOAD@ environment variable so that tsocks(8) # will be loaded to socksify the application then executes the specified # program (with the provided arguments). The following simple example might # be used to telnet to www.foo.org via a tsocks.conf(5) configured socks server: # # /usr/bin/tsocks telnet www.foo.org # # The second form allows for tsocks(8) to be switched on and off for a # session (that is, it adds and removes tsocks from the @LD_PRELOAD@ environment # variable). This form must be _sourced_ into the user's existing session # (and will only work with bourne shell users): # # . /usr/bin/tsocks on # telnet www.foo.org # . /usr/bin/tsocks off # # Or # # source /usr/bin/tsocks on # telnet www.foo.org # source /usr/bin/tsocks off # # The third form creates a new shell with @LD_PRELOAD@ set and is achieved # simply by running the script with no arguments # # /usr/bin/tsocks # # When finished the user can simply terminate the shell with 'exit' # # This script is originally from the debian tsocks package by # Tamas Szerb if [ $# = 0 ] ; then echo "$0: insufficient arguments" exit fi LIBDIR="@libdir@" LIB_NAME="libtsocks" SHLIB_EXT="@SHLIB_EXT@" SHLIB="${LIBDIR}/${LIB_NAME}.${SHLIB_EXT}" function show() { echo "@LD_PRELOAD@ = \"$@LD_PRELOAD@\"" } case "$1" in on) if [ -z "$@LD_PRELOAD@" ] then echo "Setting @LD_PRELOAD@ ..." export @LD_PRELOAD@="${SHLIB}" else echo "Appending to @LD_PRELOAD@ ..." echo $@LD_PRELOAD@ | grep -q "${SHLIB}" || \ export @LD_PRELOAD@="${SHLIB} $@LD_PRELOAD@" fi show ;; off) echo "Removing ${SHLIB} from @LD_PRELOAD@ ..." export @LD_PRELOAD@=`echo -n $@LD_PRELOAD@ | sed 's#@libdir@/libtsocks\.@SHLIB_EXT@ *##'` if [ -z "$@LD_PRELOAD@" ] then unset @LD_PRELOAD@ fi show ;; show|sh) show ;; -h|-?) echo "$0: Please see tsocks(1) or read comment at top of $0" ;; *) if [ -z "$@LD_PRELOAD@" ] then export @LD_PRELOAD@="${SHLIB}" else echo $@LD_PRELOAD@ | grep -q "${SHLIB}" || \ export @LD_PRELOAD@="${SHLIB} $@LD_PRELOAD@" fi if [ $# = 0 ] then ${SHELL:-/bin/sh} fi if [ $# -gt 0 ] then exec "$@" fi ;; esac #EOF