From d9ccdc4fce1a27d1e52d2d0b01b4991d174e3205 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Tue, 5 Nov 2024 07:16:19 +0900 Subject: [PATCH] Look up header values directly (#2592) stat_cache_entry::meta uses a case-insensitive comparator so there is no need to loop over each entry to compare each key with lowercase. --- src/cache.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/cache.cpp b/src/cache.cpp index 264563c..6042608 100644 --- a/src/cache.cpp +++ b/src/cache.cpp @@ -223,14 +223,11 @@ bool StatCache::GetStat(const std::string& key, struct stat* pst, headers_t* met std::string stretag; if(petag){ // find & check ETag - for(auto hiter = ent->meta.cbegin(); hiter != ent->meta.cend(); ++hiter){ - std::string tag = lower(hiter->first); - if(tag == "etag"){ - stretag = hiter->second; - if('\0' != petag[0] && petag != stretag){ - is_delete_cache = true; - } - break; + auto hiter = ent->meta.find("etag"); + if(hiter != ent->meta.end()){ + stretag = hiter->second; + if('\0' != petag[0] && petag != stretag){ + is_delete_cache = true; } } }