Compress synthetic responses
This commit is contained in:
parent
9553d7f8c5
commit
a7b7bdc11e
|
@ -31,13 +31,13 @@ func FetchCurrentDNSCryptCert(proxy *Proxy, serverName *string, proto string, pk
|
|||
if serverName == nil {
|
||||
serverName = &providerName
|
||||
}
|
||||
query := new(dns.Msg)
|
||||
query := dns.Msg{}
|
||||
query.SetQuestion(providerName, dns.TypeTXT)
|
||||
if !strings.HasPrefix(providerName, "2.dnscrypt-cert.") {
|
||||
dlog.Warnf("[%v] uses a non-standard provider name ('%v' doesn't start with '2.dnscrypt-cert.')", *serverName, providerName)
|
||||
relayUDPAddr, relayTCPAddr = nil, nil
|
||||
}
|
||||
in, rtt, err := dnsExchange(proxy, proto, query, serverAddress, relayUDPAddr, relayTCPAddr, serverName)
|
||||
in, rtt, err := dnsExchange(proxy, proto, &query, serverAddress, relayUDPAddr, relayTCPAddr, serverName)
|
||||
if err != nil {
|
||||
dlog.Noticef("[%s] TIMEOUT", *serverName)
|
||||
return CertInfo{}, 0, err
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func EmptyResponseFromMessage(srcMsg *dns.Msg) *dns.Msg {
|
||||
dstMsg := dns.Msg{MsgHdr: srcMsg.MsgHdr}
|
||||
dstMsg := dns.Msg{MsgHdr: srcMsg.MsgHdr, Compress: true}
|
||||
dstMsg.Question = srcMsg.Question
|
||||
dstMsg.Response = true
|
||||
if srcMsg.RecursionDesired {
|
||||
|
@ -26,11 +26,11 @@ func EmptyResponseFromMessage(srcMsg *dns.Msg) *dns.Msg {
|
|||
}
|
||||
|
||||
func TruncatedResponse(packet []byte) ([]byte, error) {
|
||||
srcMsg := new(dns.Msg)
|
||||
srcMsg := dns.Msg{}
|
||||
if err := srcMsg.Unpack(packet); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dstMsg := EmptyResponseFromMessage(srcMsg)
|
||||
dstMsg := EmptyResponseFromMessage(&srcMsg)
|
||||
dstMsg.Truncated = true
|
||||
return dstMsg.Pack()
|
||||
}
|
||||
|
|
|
@ -203,11 +203,11 @@ func (xTransport *XTransport) resolveUsingSystem(host string) (ip net.IP, ttl ti
|
|||
func (xTransport *XTransport) resolveUsingResolver(proto, host string, resolver string) (ip net.IP, ttl time.Duration, err error) {
|
||||
dnsClient := dns.Client{Net: proto}
|
||||
if xTransport.useIPv4 {
|
||||
msg := new(dns.Msg)
|
||||
msg := dns.Msg{}
|
||||
msg.SetQuestion(dns.Fqdn(host), dns.TypeA)
|
||||
msg.SetEdns0(uint16(MaxDNSPacketSize), true)
|
||||
var in *dns.Msg
|
||||
if in, _, err = dnsClient.Exchange(msg, resolver); err == nil {
|
||||
if in, _, err = dnsClient.Exchange(&msg, resolver); err == nil {
|
||||
answers := make([]dns.RR, 0)
|
||||
for _, answer := range in.Answer {
|
||||
if answer.Header().Rrtype == dns.TypeA {
|
||||
|
@ -223,11 +223,11 @@ func (xTransport *XTransport) resolveUsingResolver(proto, host string, resolver
|
|||
}
|
||||
}
|
||||
if xTransport.useIPv6 {
|
||||
msg := new(dns.Msg)
|
||||
msg := dns.Msg{}
|
||||
msg.SetQuestion(dns.Fqdn(host), dns.TypeAAAA)
|
||||
msg.SetEdns0(uint16(MaxDNSPacketSize), true)
|
||||
var in *dns.Msg
|
||||
if in, _, err = dnsClient.Exchange(msg, resolver); err == nil {
|
||||
if in, _, err = dnsClient.Exchange(&msg, resolver); err == nil {
|
||||
answers := make([]dns.RR, 0)
|
||||
for _, answer := range in.Answer {
|
||||
if answer.Header().Rrtype == dns.TypeAAAA {
|
||||
|
|
Loading…
Reference in New Issue