upstream: Instead of skipping the all-tokens test if we don't have

OpenSSL (since we use it to compute the hash), put the hash at the end and
just omit it if we don't have it.  Prompted by bz#3521.

OpenBSD-Regress-ID: c79ecba64250ed3b6417294b6c965e6b12ca5eea
This commit is contained in:
dtucker@openbsd.org 2023-01-14 09:57:08 +00:00 committed by Darren Tucker
parent b05406d6f9
commit 4d87a00f70
No known key found for this signature in database
1 changed files with 7 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: percent.sh,v 1.15 2023/01/06 12:33:33 dtucker Exp $ # $OpenBSD: percent.sh,v 1.16 2023/01/14 09:57:08 dtucker Exp $
# Placed in the Public Domain. # Placed in the Public Domain.
tid="percent expansions" tid="percent expansions"
@ -12,6 +12,7 @@ USER=`id -u -n`
USERID=`id -u` USERID=`id -u`
HOST=`hostname | cut -f1 -d.` HOST=`hostname | cut -f1 -d.`
HOSTNAME=`hostname` HOSTNAME=`hostname`
HASH=""
# Localcommand is evaluated after connection because %T is not available # Localcommand is evaluated after connection because %T is not available
# until then. Because of this we use a different method of exercising it, # until then. Because of this we use a different method of exercising it,
@ -98,10 +99,13 @@ for i in matchexec localcommand remotecommand controlpath identityagent \
# containing %d for UserKnownHostsFile # containing %d for UserKnownHostsFile
if [ "$i" != "userknownhostsfile" ]; then if [ "$i" != "userknownhostsfile" ]; then
trial $i '%d' $HOME trial $i '%d' $HOME
in='%%/%i/%h/%d/%L/%l/%n/%p/%r/%u'
out="%/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER"
if [ ! -z "${HASH}" ]; then if [ ! -z "${HASH}" ]; then
trial $i '%%/%C/%i/%h/%d/%L/%l/%n/%p/%r/%u' \ in="$in/%C"
"%/$HASH/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" out="$out/$HASH"
fi fi
trial $i "$in" "$out"
fi fi
done done