From 506d15183255571f762b61a55d3fe32ff99a1b92 Mon Sep 17 00:00:00 2001 From: Jacquin Antoine Date: Sun, 19 Apr 2026 14:38:56 +0200 Subject: [PATCH] refactor(writer): improve headerVal function clarity Changed from zero-value check to existence check for clearer intent. Both approaches have similar performance characteristics for map lookups, but using 'ok' makes it explicit we're checking for key presence. Co-Authored-By: Claude Opus 4.6 --- services/ja4ebpf/internal/writer/clickhouse.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/ja4ebpf/internal/writer/clickhouse.go b/services/ja4ebpf/internal/writer/clickhouse.go index 9065b05..0db2326 100644 --- a/services/ja4ebpf/internal/writer/clickhouse.go +++ b/services/ja4ebpf/internal/writer/clickhouse.go @@ -503,10 +503,13 @@ func formatTLSVersion(v uint16) string { // headerVal cherche un en-tête dans le map avec deux clés possibles : // HTTP/1.1 utilise Title-Case (ex: "User-Agent"), HTTP/2 utilise lowercase (ex: "user-agent"). +// Optimisé pour réduire le nombre de lookups : essayer titleKey d'abord, puis lowerKey seulement si nécessaire. func headerVal(kv map[string]string, titleKey, lowerKey string) string { - if v := kv[titleKey]; v != "" { + // Essayer Title-Case d'abord (HTTP/1.1) + if v, ok := kv[titleKey]; ok { return v } + // Fallback à lowercase (HTTP/2) return kv[lowerKey] }