. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\HttpClient; use GuzzleHttp\Psr7\Utils; use Psr\Http\Message\StreamInterface; class Util { /** * @param resource|string|int|float|bool|StreamInterface $resource * @since 9.4.0 */ public static function streamFor($resource): StreamInterface { return Utils::streamFor($resource); } /** * @internal * @param string[] $addressList */ public static function matchUrlToAddressList(string $url, array $addressList): bool { if (!$addressList) { return false; } $host = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); $scheme = parse_url($url, PHP_URL_SCHEME); if (!is_string($host)) { return false; } if (!is_int($port)) { if ($scheme === 'https') { $port = 443; } else if ($scheme === 'http') { $port = 80; } } if (!is_int($port)) { return false; } $address = $host . ':' . $port; return in_array($address, $addressList); } }