23 lines
574 B
Go
23 lines
574 B
Go
package dnstap
|
|
|
|
import "context"
|
|
|
|
type contextKey struct{}
|
|
|
|
var dnstapKey = contextKey{}
|
|
|
|
// ContextWithTapper returns a new `context.Context` that holds a reference to
|
|
// `t`'s Tapper.
|
|
func ContextWithTapper(ctx context.Context, t Tapper) context.Context {
|
|
return context.WithValue(ctx, dnstapKey, t)
|
|
}
|
|
|
|
// TapperFromContext returns the `Tapper` previously associated with `ctx`, or
|
|
// `nil` if no such `Tapper` could be found.
|
|
func TapperFromContext(ctx context.Context) Tapper {
|
|
val := ctx.Value(dnstapKey)
|
|
if sp, ok := val.(Tapper); ok {
|
|
return sp
|
|
}
|
|
return nil
|
|
}
|