# HG changeset patch # User "Yann E. MORIN" # Date 1214858234 0 # Node ID 0d7348cb7faaade45b390a9f80a64c4db6a3646a # Parent c74132339c4454316ec1887320f77804e5d37615 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 -r c74132339c44 -r 0d7348cb7faa scripts/build/debug/200-duma.sh --- a/scripts/build/debug/200-duma.sh Mon Jun 30 11:58:58 2008 +0000 +++ b/scripts/build/debug/200-duma.sh Mon Jun 30 20:37:14 2008 +0000 @@ -58,15 +58,9 @@ 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 -r c74132339c44 -r 0d7348cb7faa scripts/build/debug/duma.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/build/debug/duma.in Mon Jun 30 20:37:14 2008 +0000 @@ -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