Browse Source

Merge pull request #619 from srvrco/handle-dig-failure

Handle dig failure
pull/275/merge v2.32
Tim Kimber 5 years ago
committed by GitHub
parent
commit
afbed3ef9a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 2 deletions
  1. +7
    -2
      getssl
  2. +44
    -0
      test/30-handle-dig-failure.bats

+ 7
- 2
getssl View File

@ -242,11 +242,16 @@
# 2020-10-04 Add CHECK_PUBLIC_DNS_SERVER to check the DNS challenge has been updated there
# 2020-10-13 Bugfix: strip comments in drill/dig output (mhameed)
# 2020-11-18 Wildcard support (#347)(#400)(2.31)
# 2020-12-08 Fix mktemp template on alpine (#612)
# 2020-12-17 Fix delimiter issues with ${alldomains[]} in create_csr (#614)(vietw)
# 2020-12-18 Wrong SANS when domain contains a minus character (atisne)
# 2020-12-22 Fixes to get_auth_dns
# 2020-12-22 Check that dig doesn't return an error (#611)(2.32)
# ----------------------------------------------------------------------------------------
PROGNAME=${0##*/}
PROGDIR="$(cd "$(dirname "$0")" || exit; pwd -P;)"
VERSION="2.31"
VERSION="2.32"
# defaults
ACCOUNT_KEY_LENGTH=4096
@ -1094,7 +1099,7 @@ find_dns_utils() {
if [[ -n "$(command -v drill 2>/dev/null)" ]]; then
debug "HAS DIG_OR_DRILL=drill"
HAS_DIG_OR_DRILL="drill"
elif [[ -n "$(command -v dig 2>/dev/null)" ]]; then
elif [[ -n "$(command -v dig 2>/dev/null)" ]] && dig >/dev/null 2>&1; then
debug "HAS DIG_OR_DRILL=dig"
HAS_DIG_OR_DRILL="dig"
fi


+ 44
- 0
test/30-handle-dig-failure.bats View File

@ -0,0 +1,44 @@
#! /usr/bin/env bats
load '/bats-support/load.bash'
load '/bats-assert/load.bash'
load '/getssl/test/test_helper.bash'
# This is run for every test
setup() {
export CURL_CA_BUNDLE=/root/pebble-ca-bundle.crt
if [ -f /usr/bin/drill ]; then
mv /usr/bin/drill /usr/bin/drill.getssl.bak
fi
if [ -f /usr/bin/dig ]; then
chmod -x /usr/bin/dig
fi
}
teardown() {
if [ -f /usr/bin/drill.getssl.bak ]; then
mv /usr/bin/drill.getssl.bak /usr/bin/drill
fi
if [ -f /usr/bin/dig ]; then
chmod +x /usr/bin/dig
fi
}
@test "Test that if dig exists but errors HAS_DIG is not set" {
if [ -n "$STAGING" ]; then
skip "Using staging server, skipping internal test"
fi
if [ ! -f /usr/bin/dig ]; then
skip "dig not installed, skipping dig test"
fi
CONFIG_FILE="getssl-http01.cfg"
setup_environment
init_getssl
create_certificate -d
assert_success
refute_line --partial "HAS DIG_OR_DRILL=dig"
check_output_for_errors "debug"
}

Loading…
Cancel
Save