|
|
@ -103,13 +103,14 @@ class rcube_utils |
|
|
|
} |
|
|
|
|
|
|
|
foreach ($domain_array as $part) { |
|
|
|
if (!preg_match('/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]))$/', $part)) { |
|
|
|
if (!preg_match('/^((xn--)?([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]))$/', $part)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// last domain part
|
|
|
|
if (preg_match('/[^a-zA-Z]/', array_pop($domain_array))) { |
|
|
|
$last_part = array_pop($domain_array); |
|
|
|
if (strpos($last_part, 'xn--') !== 0 && preg_match('/[^a-zA-Z]/', $last_part)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|