['example.com', 'mail.example.com']] * * @return string[][] */ public static function getAll() { // This is implemented as map of maps to avoid duplicates, // the caller is expected to handle it as map of sequences though $sni = []; /** @var self $hook */ foreach (Hook::all('X509\Sni') as $hook) { foreach ($hook->getHosts() as $ip => $hostname) { $sni[$ip][$hostname] = $hostname; } } foreach (Config::module('x509', 'sni') as $ip => $config) { foreach (array_filter(StringHelper::trimSplit($config->get('hostnames', []))) as $hostname) { $sni[$ip][$hostname] = $hostname; } } return $sni; } /** * Aggregate pairs of ip => hostname * * @param Filter $filter * * @return \Generator */ abstract public function getHosts(Filter $filter = null); }