From 25294da5d50a1082c42717fe06d2ec00743bb6b1 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 2 Dec 2025 15:43:41 +0000 Subject: [PATCH] perf: Cache hostname lowercase in temperature proxy lookups Pre-compute strings.ToLower(hostname) before loops that search for matching PVE instances. Avoids repeated lowercasing in two functions. --- internal/api/temperature_proxy.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/api/temperature_proxy.go b/internal/api/temperature_proxy.go index 2aef16d..7b1f02f 100644 --- a/internal/api/temperature_proxy.go +++ b/internal/api/temperature_proxy.go @@ -231,6 +231,7 @@ func (h *TemperatureProxyHandlers) HandleRegister(w http.ResponseWriter, r *http var matchedInstance *config.PVEInstance var matchedIndex int var matchedEndpointIndex = -1 // For cluster nodes, track which endpoint matched + hostnameLower := strings.ToLower(hostname) for i := range nodesConfig.PVEInstances { instance := &nodesConfig.PVEInstances[i] @@ -243,7 +244,7 @@ func (h *TemperatureProxyHandlers) HandleRegister(w http.ResponseWriter, r *http } // Try to match by hostname in the Host field or cluster endpoints - if strings.Contains(strings.ToLower(instance.Host), strings.ToLower(hostname)) { + if strings.Contains(strings.ToLower(instance.Host), hostnameLower) { matchedInstance = instance matchedIndex = i break @@ -252,7 +253,7 @@ func (h *TemperatureProxyHandlers) HandleRegister(w http.ResponseWriter, r *http // Check cluster endpoints if instance.IsCluster { for j, ep := range instance.ClusterEndpoints { - if strings.EqualFold(ep.NodeName, hostname) || strings.Contains(strings.ToLower(ep.Host), strings.ToLower(hostname)) { + if strings.EqualFold(ep.NodeName, hostname) || strings.Contains(strings.ToLower(ep.Host), hostnameLower) { matchedInstance = instance matchedIndex = i matchedEndpointIndex = j @@ -480,11 +481,12 @@ func (h *TemperatureProxyHandlers) HandleUnregister(w http.ResponseWriter, r *ht // Find matching PVE instance var matchedIndex = -1 var matchedName string + hostnameLower := strings.ToLower(hostname) for i := range nodesConfig.PVEInstances { instance := &nodesConfig.PVEInstances[i] - if strings.Contains(strings.ToLower(instance.Host), strings.ToLower(hostname)) { + if strings.Contains(strings.ToLower(instance.Host), hostnameLower) { matchedIndex = i matchedName = instance.Name break @@ -492,7 +494,7 @@ func (h *TemperatureProxyHandlers) HandleUnregister(w http.ResponseWriter, r *ht if instance.IsCluster { for _, ep := range instance.ClusterEndpoints { - if strings.EqualFold(ep.NodeName, hostname) || strings.Contains(strings.ToLower(ep.Host), strings.ToLower(hostname)) { + if strings.EqualFold(ep.NodeName, hostname) || strings.Contains(strings.ToLower(ep.Host), hostnameLower) { matchedIndex = i matchedName = instance.Name break