From 7f1dc902530de9bee11fcd57d1a5efe016b2cdba Mon Sep 17 00:00:00 2001 From: "Alan M. Carroll" Date: Mon, 1 May 2023 18:25:16 -0500 Subject: [PATCH 1/2] Cleanup: remove ts::Buffer from LogField. --- proxy/logging/LogField.cc | 16 +++++++++------- proxy/logging/LogField.h | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/proxy/logging/LogField.cc b/proxy/logging/LogField.cc index abd4c53f064..5838ec3e6ed 100644 --- a/proxy/logging/LogField.cc +++ b/proxy/logging/LogField.cc @@ -29,6 +29,8 @@ ***************************************************************************/ #include "tscore/ink_platform.h" #include "swoc/swoc_meta.h" +#include "swoc/TextView.h" +#include "swoc/string_view_util.h" #include "MIME.h" #include "LogUtils.h" @@ -165,14 +167,14 @@ namespace { struct cmp_str { bool - operator()(ts::ConstBuffer a, ts::ConstBuffer b) const + operator()(swoc::TextView const &a, swoc::TextView const &b) const { - return ptr_len_casecmp(a._ptr, a._size, b._ptr, b._size) < 0; + return a.size() == b.size() && 0 == strncasecmp(a.data(), b.data(), a.size()); } }; } // namespace -using milestone_map = std::map; +using milestone_map = std::map; static milestone_map m_milestone_map; struct milestone { @@ -213,7 +215,7 @@ LogField::init_milestone_container() if (m_milestone_map.empty()) { for (unsigned i = 0; i < countof(milestones); ++i) { m_milestone_map.insert( - std::make_pair(ts::ConstBuffer(milestones[i].msname, strlen(milestones[i].msname)), milestones[i].mstype)); + std::make_pair(swoc::TextView(milestones[i].msname, strlen(milestones[i].msname)), milestones[i].mstype)); } } } @@ -283,7 +285,7 @@ LogField::milestone_from_m_name() milestone_map::iterator it; TSMilestonesType result = TS_MILESTONE_LAST_ENTRY; - it = m_milestone_map.find(ts::ConstBuffer(m_name, strlen(m_name))); + it = m_milestone_map.find(m_name); if (it != m_milestone_map.end()) { result = it->second; } @@ -295,9 +297,9 @@ int LogField::milestones_from_m_name(TSMilestonesType *ms1, TSMilestonesType *ms2) { milestone_map::iterator it; - ts::ConstBuffer ms1_name, ms2_name(m_name, strlen(m_name)); + swoc::TextView ms1_name, ms2_name(m_name); - ms1_name = ms2_name.splitOn('-'); + ms1_name = ms2_name.take_prefix_at('-'); it = m_milestone_map.find(ms1_name); if (it != m_milestone_map.end()) { diff --git a/proxy/logging/LogField.h b/proxy/logging/LogField.h index bfa11ead418..2345b908110 100644 --- a/proxy/logging/LogField.h +++ b/proxy/logging/LogField.h @@ -29,7 +29,6 @@ #include "tscore/ink_platform.h" #include "tscore/List.h" -#include "tscore/TsBuffer.h" #include "LogFieldAliasMap.h" #include "Milestones.h" From 0e12e45c596594f28bbb01f9456c8c3c3729cd85 Mon Sep 17 00:00:00 2001 From: "Alan M. Carroll" Date: Mon, 1 May 2023 20:12:00 -0500 Subject: [PATCH 2/2] Fix strikng comparison functor. --- proxy/logging/LogField.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy/logging/LogField.cc b/proxy/logging/LogField.cc index 5838ec3e6ed..2c202988b44 100644 --- a/proxy/logging/LogField.cc +++ b/proxy/logging/LogField.cc @@ -169,7 +169,7 @@ struct cmp_str { bool operator()(swoc::TextView const &a, swoc::TextView const &b) const { - return a.size() == b.size() && 0 == strncasecmp(a.data(), b.data(), a.size()); + return strcasecmp(a, b) < 0; } }; } // namespace