From 08ca782e76bae04823eb7d52b8cff2adb664d33e Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 30 Jun 2008 20:37:14 +0000 Subject: Newer, better, tsocks(1)-like wrapper script for D.U.M.A. /trunk/scripts/build/debug/duma.in | 44 44 0 0 ++++++++++++++++++++++++++++++++++++++++ /trunk/scripts/build/debug/200-duma.sh | 12 3 9 0 +++-------- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/scripts/build/debug/200-duma.sh b/scripts/build/debug/200-duma.sh index 1375eda..e199796 100644 --- a/scripts/build/debug/200-duma.sh +++ b/scripts/build/debug/200-duma.sh @@ -58,15 +58,9 @@ do_debug_duma_build() { CT_DoLog EXTRA "Installing wrapper script" mkdir -p "${CT_DEBUG_INSTALL_DIR}/usr/bin" # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A. - cat >"${CT_DEBUG_INSTALL_DIR}/usr/bin/duma" <<_EOF_ -#!/bin/sh -if [ \$# -eq 0 ]; then - echo "Usage: \$0 " - exit 1 -fi -export LD_PRELOAD="${duma_so}" -exec "\$@" -_EOF_ + sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;' \ + "${CT_LIB_DIR}/scripts/build/debug/duma.in" \ + >"${CT_DEBUG_INSTALL_DIR}/usr/bin/duma" chmod 755 "${CT_DEBUG_INSTALL_DIR}/usr/bin/duma" fi diff --git a/scripts/build/debug/duma.in b/scripts/build/debug/duma.in new file mode 100644 index 0000000..7871100 --- /dev/null +++ b/scripts/build/debug/duma.in @@ -0,0 +1,44 @@ +#!/bin/sh +# (C) 2008 Yann E. MORIN +# Licensed under the GPL v.2 + +LIBDUMA_SO= + +case "$1" in + -on) + case "${LD_PRELOAD}" in + *${LIBDUMA_SO}*) ;; + *) LD_PRELOAD="${LIBDUMA_SO} ${LD_PRELOAD}";; + esac + shift + ;; + -off) + LD_PRELOAD="${LD_PRELOAD//${LIBDUMA_SO}/}" + shift + ;; + -show) + case "${LD_PRELOAD}" in + *${LIBDUMA_SO}*) echo "duma is enabled";; + *) echo "duma is disabled";; + esac + exit 0 + ;; + "") + cat <<_EOF_ +Usage: + . $0 <-on|-off|-show> + Sets, unsets or show DUMA usage. + $0 + Execute 'executable' (with arguments 'args') using DUMA. +_EOF_ + false # Don't 'exit', we could well be source'd + ;; + *) + exec "$0" -on "$@" + ;; +esac + +export LD_PRELOAD +if [ -n "$1" ]; then + exec "$@" +fi -- cgit v0.10.2-6-g49f6