diff options
author | dtucker@openbsd.org <dtucker@openbsd.org> | 2024-10-22 08:16:26 +0200 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2024-10-22 08:50:38 +0200 |
commit | 307ab3c7720f8879b835614b02687358ee4df9b9 (patch) | |
tree | 363e521bc58b9c22f4b5e1fde3dce1a6d3fde1f3 | |
parent | upstream: Make debug call printf("%s", NULL) safe. (diff) | |
download | openssh-307ab3c7720f8879b835614b02687358ee4df9b9.tar.xz openssh-307ab3c7720f8879b835614b02687358ee4df9b9.zip |
upstream: Add a sshd debug wrapper
... to run all of the subprograms from the build directory while
developing and debugging. Should help prevent accidentally testing
against unchanged installed sshd-auth and sshd-session binaries. ok djm@
OpenBSD-Commit-ID: 61760cdc98c2bc8f1e9f83a6f97cca0f66b52e69
-rwxr-xr-x | sshd-debug.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sshd-debug.sh b/sshd-debug.sh new file mode 100755 index 000000000..6e290bc65 --- /dev/null +++ b/sshd-debug.sh @@ -0,0 +1,52 @@ +#!/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}" |