context.php: add DnsDriver

This commit is contained in:
Zankaria 2025-04-24 00:49:09 +02:00
parent 35218b356f
commit 038a2f74d6

View File

@ -3,10 +3,12 @@ namespace Vichan;
use Vichan\Controller\FloodManager; use Vichan\Controller\FloodManager;
use Vichan\Data\Driver\{CacheDriver, HttpDriver, ErrorLogLogDriver, FileLogDriver, LogDriver, StderrLogDriver, SyslogLogDriver}; use Vichan\Data\Driver\{CacheDriver, HttpDriver, ErrorLogLogDriver, FileLogDriver, LogDriver, StderrLogDriver, SyslogLogDriver};
use Vichan\Data\Driver\Dns\{DnsDriver, HostDnsDriver, LibcDnsDriver};
use Vichan\Data\{FloodQueries, IpNoteQueries, UserPostQueries, ReportQueries}; use Vichan\Data\{FloodQueries, IpNoteQueries, UserPostQueries, ReportQueries};
use Vichan\Service\FilterService; use Vichan\Service\FilterService;
use Vichan\Service\FloodService; use Vichan\Service\FloodService;
use Vichan\Service\HCaptchaQuery; use Vichan\Service\HCaptchaQuery;
use Vichan\Service\IpBlacklistService;
use Vichan\Service\SecureImageCaptchaQuery; use Vichan\Service\SecureImageCaptchaQuery;
use Vichan\Service\ReCaptchaQuery; use Vichan\Service\ReCaptchaQuery;
use Vichan\Service\YandexCaptchaQuery; use Vichan\Service\YandexCaptchaQuery;
@ -71,6 +73,14 @@ function build_context(array $config): Context {
); );
}, },
CacheDriver::class => fn(): CacheDriver => \Cache::getCache(), CacheDriver::class => fn(): CacheDriver => \Cache::getCache(),
DnsDriver::class => function(Context $c) {
$config = $c->get('config');
if ($config['dns_system']) {
return new HostDnsDriver(2);
} else {
return new LibcDnsDriver(2);
}
},
\PDO::class => function(): \PDO { \PDO::class => function(): \PDO {
global $pdo; global $pdo;
// Ensure the PDO is initialized. // Ensure the PDO is initialized.
@ -106,7 +116,7 @@ function build_context(array $config): Context {
$c->get(FloodService::class), $c->get(FloodService::class),
$c->get(IpNoteQueries::class), $c->get(IpNoteQueries::class),
$c->get(LogDriver::class) $c->get(LogDriver::class)
), )
]); ]);
} }