From 3fdcd034f3072967b8f8889228f7bf1df6018ebe Mon Sep 17 00:00:00 2001
From: Dirk
Date: Thu, 23 Aug 2018 11:40:50 +0200
Subject: [PATCH] Fine tuning of --outprefix
The standard separator after $FNAME_PREFIX is now '-'.
You can as well supply a different ending in '.', '_' or ',' , then
no no additional '-' will be appended.
Also a small bash function get_last_char() has been introduced which returns
the last char from a supplied string.
---
doc/testssl.1 | 2 +-
doc/testssl.1.html | 2 +-
doc/testssl.1.md | 2 +-
testssl.sh | 25 +++++++++++++++++++------
4 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/doc/testssl.1 b/doc/testssl.1
index 532b90b..ac47cad 100644
--- a/doc/testssl.1
+++ b/doc/testssl.1
@@ -412,7 +412,7 @@ whole 9 yards
\fB\-\-append\fR Normally, if an output file already exists and it has a file size greater zero, testssl\.sh will prompt you to manually remove the file exit with an error\. \fB\-\-append\fR however will append to this file, without a header\. The environment variable APPEND does the same\. Be careful using this switch/variable\. A complementary option which overwrites an existing file doesn\'t exist per design\.
.
.P
-\fB\-\-outprefix \fR Prepend output filename prefix \fIfname_prefix\fR before \'\e${NODE}\.\'\. You can use as well the environment variable FNAME_PREFIX\. Using this any output files will be named \fB\.${NODE}\-p${port}${YYYYMMDD\-HHMM}\.\fR when no file name of the respective output option was specified\.
+\fB\-\-outprefix \fR Prepend output filename prefix \fIfname_prefix\fR before \'\e${NODE}\-\'\. You can use as well the environment variable FNAME_PREFIX\. Using this any output files will be named \fB\-${NODE}\-p${port}${YYYYMMDD\-HHMM}\.\fR when no file name of the respective output option was specified\. If you do not like the separator \'\-\' you can as well supply a \fB\fR ending in \'\.\', \'_\' or \',\'\. In this case or if you already supplied \'\-\' no additional \'\-\' will be appended to \fB\fR\.
.
.P
A few file output options can also be preset via environment variables\.
diff --git a/doc/testssl.1.html b/doc/testssl.1.html
index 1ee87d5..cf38f32 100644
--- a/doc/testssl.1.html
+++ b/doc/testssl.1.html
@@ -394,7 +394,7 @@ The same can be achieved by setting the environment variable WARNINGS--append
Normally, if an output file already exists and it has a file size greater zero, testssl.sh will prompt you to manually remove the file exit with an error. --append
however will append to this file, without a header. The environment variable APPEND does the same. Be careful using this switch/variable. A complementary option which overwrites an existing file doesn't exist per design.
---outprefix <fname_prefix>
Prepend output filename prefix fname_prefix before '\${NODE}.'. You can use as well the environment variable FNAME_PREFIX. Using this any output files will be named <fname_prefix>.${NODE}-p${port}${YYYYMMDD-HHMM}.<format>
when no file name of the respective output option was specified.
+--outprefix <fname_prefix>
Prepend output filename prefix fname_prefix before '\${NODE}-'. You can use as well the environment variable FNAME_PREFIX. Using this any output files will be named <fname_prefix>-${NODE}-p${port}${YYYYMMDD-HHMM}.<format>
when no file name of the respective output option was specified. If you do not like the separator '-' you can as well supply a <fname_prefix>
ending in '.', '_' or ','. In this case or if you already supplied '-' no additional '-' will be appended to <fname_prefix>
.
A few file output options can also be preset via environment variables.
diff --git a/doc/testssl.1.md b/doc/testssl.1.md
index 14c3367..b362d54 100644
--- a/doc/testssl.1.md
+++ b/doc/testssl.1.md
@@ -316,7 +316,7 @@ The same can be achieved by setting the environment variable `WARNINGS`.
`--append` Normally, if an output file already exists and it has a file size greater zero, testssl.sh will prompt you to manually remove the file exit with an error. `--append` however will append to this file, without a header. The environment variable APPEND does the same. Be careful using this switch/variable. A complementary option which overwrites an existing file doesn't exist per design.
-`--outprefix ` Prepend output filename prefix before '\${NODE}.'. You can use as well the environment variable FNAME_PREFIX. Using this any output files will be named `.${NODE}-p${port}${YYYYMMDD-HHMM}.` when no file name of the respective output option was specified.
+`--outprefix ` Prepend output filename prefix before '\${NODE}-'. You can use as well the environment variable FNAME_PREFIX. Using this any output files will be named `-${NODE}-p${port}${YYYYMMDD-HHMM}.` when no file name of the respective output option was specified. If you do not like the separator '-' you can as well supply a `` ending in '.', '_' or ','. In this case or if you already supplied '-' no additional '-' will be appended to ``.
A few file output options can also be preset via environment variables.
diff --git a/testssl.sh b/testssl.sh
index 4714c89..6e885b6 100755
--- a/testssl.sh
+++ b/testssl.sh
@@ -343,9 +343,9 @@ IP46ADDRs=""
LOCAL_A=false # Does the $NODEIP come from /etc/hosts?
LOCAL_AAAA=false # Does the IPv6 IP come from /etc/hosts?
XMPP_HOST=""
-PROXY=""
-PROXYIP=""
-PROXYPORT=""
+PROXYIP="" # $PROXYIP:$PROXPORT is your proxy if --proxy is defined ...
+PROXYPORT="" # ... and openssl has proxy support
+PROXY="" # Once check_proxy() executed it contains $PROXYIP:$PROXPORT
VULN_COUNT=0
SERVICE="" # Is the server running an HTTP server, SMTP, POP or IMAP?
URI=""
@@ -1080,6 +1080,10 @@ else
tolower() { echo -n "${1,,}"; }
fi
+get_last_char() {
+ echo "${1:~0}" # "${string: -1}" would work too (both also in bash 3.2)
+}
+ # Checking for last char. If already a separator supplied, we don't need an additional one
debugme() {
[[ "$DEBUG" -ge 2 ]] && "$@"
return 0
@@ -16174,9 +16178,10 @@ check_proxy() {
if ! "$HAS_PROXY"; then
fatal "Your $OPENSSL is too old to support the \"-proxy\" option" $ERR_OSSLBIN
fi
- if [[ "$PROXY" == "auto" ]]; then
- # get $ENV (https_proxy is the one we care about)
+ if [[ "$PROXY" == auto ]]; then
+ # Get $ENV https_proxy is the one we care about for connects
PROXY="${https_proxy#*\/\/}"
+ # Fallback:
[[ -z "$PROXY" ]] && PROXY="${http_proxy#*\/\/}"
[[ -z "$PROXY" ]] && fatal "you specified \"--proxy=auto\" but \"\$http(s)_proxy\" is empty" $ERR_CMDLINE
fi
@@ -17475,7 +17480,15 @@ parse_cmd_line() {
;;
--outprefix)
FNAME_PREFIX="$(parse_opt_equal_sign "$1" "$2")"
- [[ $? -eq 0 ]] && shift && FNAME_PREFIX="${FNAME_PREFIX}."
+ if [[ $? -eq 0 ]]; then
+ shift
+ case "$(get_last_char "$FNAME_PREFIX")" in
+ '.') ;;
+ '-') ;;
+ '_') ;;
+ *) FNAME_PREFIX="${FNAME_PREFIX}-" ;;
+ esac
+ fi
;;
--openssl|--openssl=*)
OPENSSL="$(parse_opt_equal_sign "$1" "$2")"