Adguardhome/internal/dnsforward/context.go
Dimitry Kolyshev 2d49f9dc96 Pull request: AGDNS-3523-upd-dnsproxy
Squashed commit of the following:

commit 26fda761b768c8fa97c018276813aaf67182be63
Merge: 3a03dda2d 31dc811ff
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Mar 13 14:48:12 2026 +0700

    Merge remote-tracking branch 'origin/master' into AGDNS-3523-upd-dnsproxy-middlewares

commit 3a03dda2df5620d2c27b041fd214e7a80046bdad
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Mar 13 09:07:03 2026 +0700

    all: upd dnsproxy

commit 95d669788e87aa63eb79dbc6dba7259196164dde
Merge: 3f1ab07f3 5558089e7
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu Mar 12 10:19:45 2026 +0700

    Merge remote-tracking branch 'origin/master' into AGDNS-3523-upd-dnsproxy-middlewares
    
    # Conflicts:
    #	go.mod
    #	go.sum
    #	internal/dnsforward/config.go
    #	internal/dnsforward/middleware.go

commit 3f1ab07f36082d27417462e403428db7b6e222b3
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed Mar 11 13:38:52 2026 +0700

    dnsforward: client id in ctx

commit c9be3e2fc37170d12cddcfc3157200d1f7ad955b
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed Mar 11 13:24:02 2026 +0700

    dnsforward: todo

commit 99206ebe3549dfe01edb1ceef4af6a270d2a7572
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed Mar 11 12:32:06 2026 +0700

    dnsforward: add log middleware

commit 4a2222b6f2d17bc47c385b86ec36f357c4513d63
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Tue Mar 10 12:30:55 2026 +0700

    all: upd dnsproxy fix

commit b6435001c41b50c072f52b1e24e01b5ecdd4e1fb
Merge: 963832d1c ad9cb3e8d
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Tue Mar 10 08:51:43 2026 +0700

    Merge remote-tracking branch 'origin/master' into AGDNS-3523-upd-dnsproxy-middlewares

commit 963832d1c812182606ae7916da491b9d3a9ecc5e
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Mon Mar 9 15:39:39 2026 +0700

    all: upd dnsproxy

commit 961b69368db927f0f72c225c71e554117d606e9d
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Tue Mar 3 09:00:50 2026 +0700

    all: upd dnsproxy

commit 38c7733939eeed4f1d3e571ecb01f8fc82cae0de
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Mon Mar 2 10:41:40 2026 +0700

    dnsforward: imp tests

commit 5a0f466bb87bf79cefb254e2df8fb9d78e7584c4
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Feb 27 11:49:58 2026 +0700

    dnsforward: imp tests

commit 6de11697d27edad2c821ea8f88054d31cb912fdb
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Feb 27 11:46:39 2026 +0700

    dnsforward: imp tests

commit 52fb326145a5c7be868cedb96a8ffe9573c6b41f
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Feb 27 11:42:16 2026 +0700

    dnsforward: imp tests

commit bc3f42165de26fa378fe53bd98f2f98903924a98
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Fri Feb 27 11:25:46 2026 +0700

    dnsforward: imp code

commit 8d1c43192c9672d66350f206248716ee8faa0f57
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed Feb 25 11:31:12 2026 +0700

    all: upd dnsproxy, rm beforerequest
2026-03-13 07:53:59 +00:00

34 lines
694 B
Go

package dnsforward
import (
"context"
"fmt"
)
// ctxKey is the type for context keys.
type ctxKey int
// Context key values.
const (
ctxKeyClientID ctxKey = iota
)
// contextWithClientID returns a new context with the given ID.
func contextWithClientID(parent context.Context, id string) (ctx context.Context) {
return context.WithValue(parent, ctxKeyClientID, id)
}
// clientIDFromContext returns ID for this request, if any.
func clientIDFromContext(ctx context.Context) (id string, ok bool) {
v := ctx.Value(ctxKeyClientID)
if v == nil {
return id, false
}
id, ok = v.(string)
if !ok {
panic(fmt.Errorf("bad type for ctxKeyClientID: %T(%[1]v)", v))
}
return id, true
}