* [pve-devel] [PATCH manager] api2tools: check if file changed before reusing its hash
@ 2023-10-09 9:35 Maximiliano Sandoval
0 siblings, 0 replies; only message in thread
From: Maximiliano Sandoval @ 2023-10-09 9:35 UTC (permalink / raw)
To: pve-devel
We cache the hash of this file, it makes sense to first check if the
file changed via `stat` and recompute the hash if needed.
This is to be in sync with the changes made in
https://git.proxmox.com/?p=pmg-api.git;a=commit;h=16d2ff9f8e90db64114a66d78672f5a03f5ee990.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
PVE/API2Tools.pm | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/PVE/API2Tools.pm b/PVE/API2Tools.pm
index a3d7ca84..618c13b3 100644
--- a/PVE/API2Tools.pm
+++ b/PVE/API2Tools.pm
@@ -17,14 +17,22 @@ use PVE::SafeSyslog;
use PVE::Storage::Plugin;
my $hwaddress;
+my $hwaddress_st = {};
sub get_hwaddress {
+ my $fn = '/etc/ssh/ssh_host_rsa_key.pub';
+ my $st = stat($fn);
- return $hwaddress if defined ($hwaddress);
+ if (defined($hwaddress)
+ && $hwaddress_st->{mtime} == $st->mtime
+ && $hwaddress_st->{ino} == $st->ino
+ && $hwaddress_st->{dev} == $st->dev) {
+ return $hwaddress;
+ }
- my $fn = '/etc/ssh/ssh_host_rsa_key.pub';
my $sshkey = PVE::Tools::file_get_contents($fn);
$hwaddress = uc(md5_hex($sshkey));
+ $hwaddress_st->@{'mtime', 'ino', 'dev'} = ($st->mtime, $st->ino, $st->dev);
return $hwaddress;
}
--
2.39.2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-10-09 9:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-09 9:35 [pve-devel] [PATCH manager] api2tools: check if file changed before reusing its hash Maximiliano Sandoval
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.