Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 26 additions & 20 deletions testssl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1453,6 +1453,7 @@ fileout() {


json_header() {
local datetime_started="$1"
local fname_prefix
local filename_provided=false

Expand Down Expand Up @@ -1481,9 +1482,9 @@ json_header() {
fname_prefix="${FNAME_PREFIX}${NODE}_p${PORT}"
fi
if [[ -z "$JSONFILE" ]]; then
JSONFILE="$fname_prefix-$(date +"%Y%m%d-%H%M".json)"
JSONFILE="$fname_prefix-${datetime_started}.json"
elif [[ -d "$JSONFILE" ]]; then
JSONFILE="$JSONFILE/${fname_prefix}-$(date +"%Y%m%d-%H%M".json)"
JSONFILE="$JSONFILE/${fname_prefix}-${datetime_started}.json"
fi
# Silently reset APPEND var if the file doesn't exist as otherwise it won't be created
if "$APPEND" && [[ ! -s "$JSONFILE" ]]; then
Expand All @@ -1504,6 +1505,7 @@ json_header() {


csv_header() {
local datetime_started="$1"
local fname_prefix
local filename_provided=false

Expand All @@ -1529,9 +1531,9 @@ csv_header() {
fname_prefix="${FNAME_PREFIX}${NODE}_p${PORT}"
fi
if [[ -z "$CSVFILE" ]]; then
CSVFILE="${fname_prefix}-$(date +"%Y%m%d-%H%M".csv)"
CSVFILE="${fname_prefix}-${datetime_started}.csv"
elif [[ -d "$CSVFILE" ]]; then
CSVFILE="$CSVFILE/${fname_prefix}-$(date +"%Y%m%d-%H%M".csv)"
CSVFILE="$CSVFILE/${fname_prefix}-${datetime_started}.csv"
fi
# Silently reset APPEND var if the file doesn't exist as otherwise it won't be created
if "$APPEND" && [[ ! -s "$CSVFILE" ]]; then
Expand All @@ -1558,6 +1560,7 @@ csv_header() {
################# END JSON file functions. START HTML functions ####################

html_header() {
local datetime_started="$1"
local fname_prefix
local filename_provided=false

Expand Down Expand Up @@ -1586,9 +1589,9 @@ html_header() {
fname_prefix="${FNAME_PREFIX}${NODE}_p${PORT}"
fi
if [[ -z "$HTMLFILE" ]]; then
HTMLFILE="$fname_prefix-$(date +"%Y%m%d-%H%M".html)"
HTMLFILE="$fname_prefix-${datetime_started}.html"
elif [[ -d "$HTMLFILE" ]]; then
HTMLFILE="$HTMLFILE/$fname_prefix-$(date +"%Y%m%d-%H%M".html)"
HTMLFILE="$HTMLFILE/$fname_prefix-${datetime_started}.html"
fi
# Silently reset APPEND var if the file doesn't exist as otherwise it won't be created
if "$APPEND" && [[ ! -s "$HTMLFILE" ]]; then
Expand Down Expand Up @@ -1636,8 +1639,9 @@ html_footer() {
################# END HTML file functions ####################

prepare_logging() {
# arg1: for testing mx records name we put a name of logfile in here, otherwise we get strange file names
local fname_prefix="$1"
local datetime_started="$1"
# arg2: for testing mx records name we put a name of logfile in here, otherwise we get strange file names
local fname_prefix="$2"
local filename_provided=false

if [[ -n "$PARENT_LOGFILE" ]]; then
Expand All @@ -1654,10 +1658,10 @@ prepare_logging() {
[[ -z "$fname_prefix" ]] && fname_prefix="${FNAME_PREFIX}${NODE}_p${PORT}"

if [[ -z "$LOGFILE" ]]; then
LOGFILE="$fname_prefix-$(date +"%Y%m%d-%H%M".log)"
LOGFILE="$fname_prefix-${datetime_started}.log"
elif [[ -d "$LOGFILE" ]]; then
# actually we were instructed to place all files in a DIR instead of the current working dir
LOGFILE="$LOGFILE/$fname_prefix-$(date +"%Y%m%d-%H%M".log)"
LOGFILE="$LOGFILE/$fname_prefix-${datetime_started}.log"
else
: # just for clarity: a log file was specified, no need to do anything else
fi
Expand Down Expand Up @@ -23412,25 +23416,26 @@ draw_line() {


run_mx_all_ips() {
local datetime_started="$1"
local mxs mx
local mxport
local -i ret=0
local word=""

STARTTLS_PROTOCOL="smtp"
# test first higher priority servers
mxs=$(get_mx_record "$1" | sort -n | sed -e 's/^.* //' -e 's/\.$//' | tr '\n' ' ')
mxs=$(get_mx_record "$2" | sort -n | sed -e 's/^.* //' -e 's/\.$//' | tr '\n' ' ')
if [[ $CMDLINE_IP == one ]]; then
word="as instructed one" # with highest priority
mxs=${mxs%% *}
else
word="the only"
fi
mxport=${2:-25}
mxport=${3:-25}
if [[ -n "$LOGFILE" ]] || [[ -n "$PARENT_LOGFILE" ]]; then
prepare_logging
prepare_logging "${datetime_started}"
else
prepare_logging "${FNAME_PREFIX}mx-$1"
prepare_logging "${datetime_started}" "${FNAME_PREFIX}mx-$1"
fi
if [[ -n "$mxs" ]] && [[ "$mxs" != ' ' ]]; then
[[ $(count_words "$mxs") -gt 1 ]] && MULTIPLE_CHECKS=true
Expand Down Expand Up @@ -25324,6 +25329,7 @@ lets_roll() {
RET=0 # this is a global as we can have a function main(), see #705. Should we toss then all local $ret?
ip=""
stopwatch start
datetime_started="$(date +"%Y%m%d-%H%M")"

lets_roll init
initialize_globals
Expand All @@ -25334,9 +25340,9 @@ lets_roll() {
# html_header() needs to be called early! Otherwise if html_out() is called before html_header() and the
# command line contains --htmlfile <htmlfile> or --html, it'll make problems with html output, see #692.
# json_header and csv_header could be called later but for context reasons we'll leave it here
html_header
json_header
csv_header
html_header "${datetime_started}"
json_header "${datetime_started}"
csv_header "${datetime_started}"
get_install_dir
# see #705, we need to source TLS_DATA_FILE here instead of in get_install_dir(), see #705
[[ -r "$TLS_DATA_FILE" ]] && . "$TLS_DATA_FILE"
Expand All @@ -25361,7 +25367,7 @@ lets_roll() {
fileout_banner

if "$do_mass_testing"; then
prepare_logging
prepare_logging "${datetime_started}"
if [[ "$MASS_TESTING_MODE" == parallel ]]; then
run_mass_testing_parallel
else
Expand All @@ -25376,12 +25382,12 @@ lets_roll() {
#FIXME: do we need this really here?
count_do_variables # if we have just 1x "do_*" --> we do a standard run -- otherwise just the one specified
[[ $? -eq 1 ]] && set_scanning_defaults
run_mx_all_ips "${URI}" $PORT # we should reduce run_mx_all_ips to what's necessary as below we have similar code
run_mx_all_ips "${datetime_started}" "${URI}" $PORT # we should reduce run_mx_all_ips to what's necessary as below we have similar code
exit $?
fi

[[ -z "$NODE" ]] && parse_hn_port "${URI}" # NODE, URL_PATH, PORT, IPADDRs2CHECK and IPADDRs2SHOW is set now
prepare_logging
prepare_logging "${datetime_started}"

if [[ -n "$PROXY" ]] && $DNS_VIA_PROXY; then
NODEIP="$NODE"
Expand Down