Mercurial > hg > isophonics-drupal-site
diff vendor/symfony/validator/Constraints/UrlValidator.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 7a779792577d |
children | c2387f117808 |
line wrap: on
line diff
--- a/vendor/symfony/validator/Constraints/UrlValidator.php Mon Apr 23 09:33:26 2018 +0100 +++ b/vendor/symfony/validator/Constraints/UrlValidator.php Mon Apr 23 09:46:53 2018 +0100 @@ -13,6 +13,7 @@ use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; +use Symfony\Component\Validator\Exception\InvalidOptionsException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** @@ -22,9 +23,9 @@ { const PATTERN = '~^ (%s):// # protocol - (([\pL\pN-]+:)?([\pL\pN-]+)@)? # basic auth + (([\.\pL\pN-]+:)?([\.\pL\pN-]+)@)? # basic auth ( - ([\pL\pN\pS-\.])+(\.?([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name + ([\pL\pN\pS\-\.])+(\.?([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name | # or \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address | # or @@ -72,9 +73,32 @@ } if ($constraint->checkDNS) { + // backwards compatibility + if (true === $constraint->checkDNS) { + $constraint->checkDNS = Url::CHECK_DNS_TYPE_ANY; + @trigger_error(sprintf('Use of the boolean TRUE for the "checkDNS" option in %s is deprecated. Use Url::CHECK_DNS_TYPE_ANY instead.', Url::class), E_USER_DEPRECATED); + } + + if (!in_array($constraint->checkDNS, array( + Url::CHECK_DNS_TYPE_ANY, + Url::CHECK_DNS_TYPE_A, + Url::CHECK_DNS_TYPE_A6, + Url::CHECK_DNS_TYPE_AAAA, + Url::CHECK_DNS_TYPE_CNAME, + Url::CHECK_DNS_TYPE_MX, + Url::CHECK_DNS_TYPE_NAPTR, + Url::CHECK_DNS_TYPE_NS, + Url::CHECK_DNS_TYPE_PTR, + Url::CHECK_DNS_TYPE_SOA, + Url::CHECK_DNS_TYPE_SRV, + Url::CHECK_DNS_TYPE_TXT, + ))) { + throw new InvalidOptionsException(sprintf('Invalid value for option "checkDNS" in constraint %s', get_class($constraint)), array('checkDNS')); + } + $host = parse_url($value, PHP_URL_HOST); - if (!is_string($host) || !checkdnsrr($host, 'ANY')) { + if (!is_string($host) || !checkdnsrr($host, $constraint->checkDNS)) { $this->context->buildViolation($constraint->dnsMessage) ->setParameter('{{ value }}', $this->formatValue($host)) ->setCode(Url::INVALID_URL_ERROR)