Only use IDN subroutines when the module is available. We have seen reports that at least DietPi is having issues with not matching PHP base and extension versions.

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2020-02-16 21:16:06 +01:00
parent 1dc359d55c
commit 7274b9bca7
2 changed files with 11 additions and 4 deletions

View File

@@ -22,7 +22,8 @@ $comment = trim($_POST['comment']);
// Convert domain name to IDNA ASCII form for international domains
// Do this only for exact domains, not for regex filters
if ($list === "white" || $list === "black") {
// Only do it when the php-intl extension is available
if (extension_loaded("intl") && ($list === "white" || $list === "black")) {
foreach($domains as &$domain)
{
$domain = idn_to_ascii($domain);

View File

@@ -352,10 +352,12 @@ if ($_POST['action'] == 'get_groups') {
array_push($groups, $gres['group_id']);
}
$res['groups'] = $groups;
if ($res['type'] === ListType::whitelist || $res['type'] === ListType::blacklist) {
if (extension_loaded("intl") &&
($res['type'] === ListType::whitelist ||
$res['type'] === ListType::blacklist) ) {
$utf8_domain = idn_to_utf8($res['domain']);
// Convert domain name to international form
// if applicable
// if applicable and extension is available
if($res['domain'] !== $utf8_domain)
{
$res['domain'] = $utf8_domain.' ('.$res['domain'].')';
@@ -389,7 +391,11 @@ if ($_POST['action'] == 'get_groups') {
if ($type === ListType::whitelist || $type === ListType::blacklist) {
// Convert domain name to IDNA ASCII form for international
// domains and convert the domain to lower case
$domain = strtolower(idn_to_ascii($domain));
// Only use IDN routine when php-intl is available
if (extension_loaded("intl")) {
$domain = idn_to_ascii($domain);
}
$domain = strtolower($domain);
// Check validity of domain
if(filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false)