Merge pull request #2237 from dokku/2231_mh-reject-invalid-domains

reject invalid domains in domains:add
This commit is contained in:
Michael Hobbs
2016-06-10 13:56:39 -07:00
committed by GitHub
3 changed files with 22 additions and 0 deletions

View File

@@ -753,6 +753,16 @@ strip_inline_comments() {
echo "$stripped_line"
}
is_valid_hostname() {
declare desc="return 0 if argument is a valid hostname; else return 1"
local hostname_string="$1"; local hostname_regex='^(([a-zA-Z\*](-?[a-zA-Z0-9])*)\.)*[a-zA-Z\*](-?[a-zA-Z0-9])+\.[a-zA-Z]{2,}$'
if [[ $hostname_string =~ $hostname_regex ]]; then
return 0
else
return 1
fi
}
is_val_in_list() {
declare desc="return true if value ($1) is in list ($2) separated by delimiter ($3); delimiter defaults to comma"
local value="$1" list="$2" delimiter="${3:-,}"

View File

@@ -67,6 +67,11 @@ domains_add() {
local APP="$1"; local APP_VHOST_PATH="$DOKKU_ROOT/$APP/VHOST"
shift 1
for DOMAIN in "$@"; do
if ! (is_valid_hostname "$DOMAIN"); then
dokku_log_fail "$DOMAIN is invalid. exiting..."
fi
done
for DOMAIN in "$@"; do
if [[ $(egrep -w "^$DOMAIN$" "$APP_VHOST_PATH" > /dev/null 2>&1; echo $?) -eq 0 ]]; then

View File

@@ -52,6 +52,13 @@ teardown() {
assert_success
}
@test "(domains) domains:add (invalid)" {
run dokku domains:add $TEST_APP http://test.app.dokku.me
echo "output: "$output
echo "status: "$status
assert_failure
}
@test "(domains) domains:remove" {
run dokku domains:add $TEST_APP test.app.dokku.me
echo "output: "$output