Check fingerprint ptr before usage

This commit is contained in:
WeebDataHoarder
2025-04-12 13:56:25 +02:00
parent ca49c99cad
commit 617e40099f
2 changed files with 15 additions and 7 deletions

2
go.mod
View File

@@ -15,7 +15,6 @@ require (
github.com/tetratelabs/wazero v1.9.0
github.com/yl2chen/cidranger v1.0.2
golang.org/x/crypto v0.37.0
golang.org/x/net v0.39.0
gopkg.in/yaml.v3 v3.0.1
)
@@ -26,6 +25,7 @@ require (
github.com/kevinpollet/nego v0.0.0-20211010160919-a65cd48cee43 // indirect
github.com/stoewer/go-strcase v1.3.0 // indirect
golang.org/x/exp v0.0.0 // indirect
golang.org/x/net v0.39.0 // indirect
golang.org/x/text v0.24.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250409194420-de1ac958c67a // indirect

View File

@@ -143,8 +143,12 @@ func GetLoggerForRequest(r *http.Request) *slog.Logger {
}
if fp := utils.GetTLSFingerprint(r); fp != nil {
args = append(args, "ja3n", fp.JA3N().String())
args = append(args, "ja4", fp.JA4().String())
if ja3n := fp.JA3N(); ja3n != nil {
args = append(args, "ja3n", ja3n)
}
if ja4 := fp.JA4(); ja4 != nil {
args = append(args, "ja4", ja4.String())
}
}
return slog.With(args...)
}
@@ -430,11 +434,15 @@ func (state *State) ServeHTTP(w http.ResponseWriter, r *http.Request) {
var ja3n, ja4 string
if fp := utils.GetTLSFingerprint(r); fp != nil {
ja3n = fp.JA3N().String()
ja4 = fp.JA4().String()
if ja3nPtr := fp.JA3N(); ja3nPtr != nil {
ja3n = ja3nPtr.String()
r.Header.Set("X-TLS-Fingerprint-JA3N", ja3n)
}
if ja4Ptr := fp.JA4(); ja4Ptr != nil {
ja4 = ja4Ptr.String()
r.Header.Set("X-TLS-Fingerprint-JA4", ja4)
}
}
data.ProgramEnv = map[string]any{
"host": r.Host,