clash/context/dns.go

48 lines
718 B
Go
Raw Normal View History

package context
import (
"context"
2023-11-03 13:01:45 +00:00
"github.com/metacubex/mihomo/common/utils"
2023-04-09 07:40:17 +00:00
"github.com/gofrs/uuid/v5"
"github.com/miekg/dns"
)
const (
DNSTypeHost = "host"
DNSTypeFakeIP = "fakeip"
DNSTypeRaw = "raw"
)
type DNSContext struct {
context.Context
id uuid.UUID
msg *dns.Msg
tp string
}
func NewDNSContext(ctx context.Context, msg *dns.Msg) *DNSContext {
return &DNSContext{
Context: ctx,
2023-03-15 02:10:03 +00:00
id: utils.NewUUIDV4(),
msg: msg,
}
}
// ID implement C.PlainContext ID
func (c *DNSContext) ID() uuid.UUID {
return c.id
}
// SetType set type of response
func (c *DNSContext) SetType(tp string) {
c.tp = tp
}
// Type return type of response
func (c *DNSContext) Type() string {
return c.tp
}