diff options
-rw-r--r-- | net/tsocks/Makefile | 6 | ||||
-rw-r--r-- | net/tsocks/files/tsocks.sh | 59 |
2 files changed, 56 insertions, 9 deletions
diff --git a/net/tsocks/Makefile b/net/tsocks/Makefile index 2b98ffcfabf..5d04a0815be 100644 --- a/net/tsocks/Makefile +++ b/net/tsocks/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.11 2006/09/17 11:45:04 jmmv Exp $ +# $NetBSD: Makefile,v 1.12 2007/07/26 12:27:18 rillig Exp $ # DISTNAME= tsocks-1.8beta5 -PKGREVISION= 2 +PKGREVISION= 3 CATEGORIES= net MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=tsocks/} @@ -29,8 +29,6 @@ post-extract: ${RM} -f ${WRKSRC}/config.cache ${CP} ${FILESDIR}/tsocks.sh ${WRKSRC}/tsocks -post-configure: subst-tsocks - post-install: ${INSTALL_SCRIPT} ${WRKSRC}/tsocks ${PREFIX}/bin ${INSTALL_DATA_DIR} ${EGDIR} diff --git a/net/tsocks/files/tsocks.sh b/net/tsocks/files/tsocks.sh index 448860e2191..3d67e80f541 100644 --- a/net/tsocks/files/tsocks.sh +++ b/net/tsocks/files/tsocks.sh @@ -1,9 +1,58 @@ -#!@SH@ +#! @SH@ + +libtsocks="@PREFIX@/lib/libtsocks.so" + +usage() { + echo "usage:" + echo " $0 [program [arguments...]]" + echo " . $0 on" + echo " . $0 off" +} + +tsocks_on() { + case $LD_PRELOAD in + *"$libtsocks"*) + ;; + "") LD_PRELOAD="$libtsocks" + ;; + *) LD_PRELOAD="$LD_PRELOAD $libtsocks" + ;; + esac + export LD_PRELOAD +} + +tsocks_off() { + LD_PRELOAD=`echo $LD_PRELOAD | sed 's,$libtsocks[ :]?,,'` + if [ "$LD_PRELOAD" ]; then + export LD_PRELOAD + else + unset LD_PRELOAD + fi +} if [ $# -eq 0 ]; then - echo "usage: `basename $0` command" 1>&2 - exit 1 + set -- ${SHELL:-/bin/sh} fi -LD_PRELOAD="@PREFIX@/lib/libtsocks.so"; export LD_PRELOAD -exec $* +case "$1" in +on) + tsocks_on + ;; +off) + tsocks_off + ;; + +show | sh) + echo "LD_PRELOAD=\"$LD_PRELOAD\"" + ;; +-h | -?) + usage + ;; +-*) usage 1>&2 + exit 1 + ;; +*) + tsocks_on + exec "$@" + ;; +esac |