mirror of git://anongit.mindrot.org/openssh.git
53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# ssh-debug
|
|
|
|
# A wrapper script around sshd to invoke when debugging to debug the
|
|
# work-in-progress versions of sshd-auth and sshd-session, instead
|
|
# of debugging the installed ones that probably don't have the change
|
|
# you are working on.
|
|
#
|
|
# Placed in the Public Domain.
|
|
|
|
unset DIR SSHD SSHD_AUTH SSHD_SESSION
|
|
|
|
fatal() {
|
|
echo >&2 $@
|
|
exit 1
|
|
}
|
|
|
|
case "$0" in
|
|
/*) DIR="`dirname $0`" ;;
|
|
./sshd-debug.sh) DIR="`pwd`" ;;
|
|
*) echo "Need full path or working directory."; exit 1 ;;
|
|
esac
|
|
|
|
for i in sshd/obj/sshd sshd/sshd sshd; do
|
|
if [ -f "${DIR}/$i" ] && [ -x "${DIR}/$i" ]; then
|
|
SSHD="${DIR}/$i"
|
|
fi
|
|
done
|
|
[ -z "${SSHD}" ] && fatal "Could not find sshd"
|
|
|
|
for i in sshd-auth/obj/sshd-auth sshd-auth/sshd-auth sshd-auth; do
|
|
if [ -f "${DIR}/$i" ] && [ -x "${DIR}/$i" ]; then
|
|
SSHD_AUTH="${DIR}/$i"
|
|
fi
|
|
done
|
|
[ -z "${SSHD_AUTH}" ] && fatal "Could not find sshd-auth"
|
|
|
|
for i in sshd-session/obj/sshd-session sshd-session/sshd-session sshd-session; do
|
|
if [ -f "${DIR}/$i" ] && [ -x "${DIR}/$i" ]; then
|
|
SSHD_SESSION="${DIR}/$i"
|
|
fi
|
|
done
|
|
[ -z "${SSHD_SESSION}" ] && fatal "Could not find sshd-session"
|
|
|
|
echo >&2 Debugging ${SSHD} auth ${SSHD_AUTH} session ${SSHD_SESSION}
|
|
|
|
# Append SshdSessionPath and SshdAuthPath pointing to the build directory.
|
|
# If you explicity specify these in the command line, the first-match
|
|
# keyword semantics will override these.
|
|
exec "${SSHD}" $@ \
|
|
-oSshdAuthPath="${SSHD_AUTH}" -oSshdSessionPath="${SSHD_SESSION}"
|