fix dns_1984hosting_add() so checks for HTML responses actually find HTML responses #3541
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In
dns_1984hosting.sh
, thedns_1984hosting_add()
function checks if the response contains an<html>
tag. The response I have been getting (when a POST request that adds an _acme-challenge TXT record fails) contains a<!DOCTYPE html>
and<html lang="en">
tags but not a plain<html>
tag. Therefore, the error response does not get detected. Changing response checking to look forhtml>
instead of<html>
properly catches the error response as it covers cases where<!DOCTYPE html>
,<html>
, and the closing</html>
tags are used. One alternative would be to check for all/any<!DOCTYPE html>
,<html>
, and<html lang="en">
tags. Another alternative would be to check if the response is HTML instead of the expected JSON response. All HTML has a closing</html>
tag, so what has been committed should suffice. Since<!DOCTYPE html>
is at the top, that should be the first match. Performance wise, this is ideal since_contains
does not have to get to the bottom of the page before finding a match forhtml>
.Earlier explanation of issue from #2851 (comment).