summaryrefslogtreecommitdiff
path: root/usr.bin/ssh
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@cvs.openbsd.org>2024-10-22 06:16:27 +0000
committerDarren Tucker <dtucker@cvs.openbsd.org>2024-10-22 06:16:27 +0000
commit32e0095a7d08e7dd68f026927837f7283788ae55 (patch)
treed5ca4d7480fb53021e3b4cc81049179fa3796288 /usr.bin/ssh
parent1b2730f6c731c1884d0bda95392643755c9ad321 (diff)
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@
Diffstat (limited to 'usr.bin/ssh')
-rwxr-xr-xusr.bin/ssh/sshd-debug.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/usr.bin/ssh/sshd-debug.sh b/usr.bin/ssh/sshd-debug.sh
new file mode 100755
index 00000000000..6e290bc6539
--- /dev/null
+++ b/usr.bin/ssh/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}"