From ae131519365a6b87bc767dc80b013f86fa579c07 Mon Sep 17 00:00:00 2001 From: yggverse Date: Tue, 9 Apr 2024 11:59:59 +0300 Subject: [PATCH] cache resolved host in memory --- src/Box/Main.php | 71 ++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/src/Box/Main.php b/src/Box/Main.php index bda22619..991e3f90 100644 --- a/src/Box/Main.php +++ b/src/Box/Main.php @@ -72,36 +72,7 @@ class Main function ($entry) { global $config; - - $host = null; - - if ($config->resolver->enabled) - { - $resolve = new \Yggverse\Net\Resolve( - $config->resolver->request->record, - $config->resolver->request->host, - $config->resolver->request->timeout, - $config->resolver->result->shuffle - ); - - $address = new \Yggverse\Net\Address( - $entry->get_text() - ); - - $resolved = $resolve->address( - $address - ); - - if ($resolved) - { - $host = $resolved->getHost(); // @TODO memory cache - } - } - - $request = new \Yggverse\Gemini\Client\Request( - $entry->get_text(), - $host - ); + global $memory; $this->tray->label->set_text( sprintf( @@ -112,6 +83,46 @@ class Main $start = microtime(true); + $host = null; + + if ($config->resolver->enabled) + { + $address = new \Yggverse\Net\Address( + $entry->get_text() + ); + + $name = $address->getHost(); + + if (!$host = $memory->get($name)) + { + $resolve = new \Yggverse\Net\Resolve( + $config->resolver->request->record, + $config->resolver->request->host, + $config->resolver->request->timeout, + $config->resolver->result->shuffle + ); + + $resolved = $resolve->address( + $address + ); + + if ($resolved) + { + $host = $resolved->getHost(); + + $memory->set( + $name, + $host + ); + } + } + } + + $request = new \Yggverse\Gemini\Client\Request( + $entry->get_text(), + $host + ); + $raw = $request->getResponse(); $end = microtime(true);