MCPcopy Create free account
hub / github.com/encodeous/nylon / checkHeader

Function checkHeader

polyamide/tun/netstack/tun.go:708–726  ·  view source on GitHub ↗
(p *dnsmessage.Parser, h dnsmessage.Header)

Source from the content-addressed store, hash-verified

706}
707
708func checkHeader(p *dnsmessage.Parser, h dnsmessage.Header) error {
709 if h.RCode == dnsmessage.RCodeNameError {
710 return errNoSuchHost
711 }
712 _, err := p.AnswerHeader()
713 if err != nil && err != dnsmessage.ErrSectionDone {
714 return errCannotUnmarshalDNSMessage
715 }
716 if h.RCode == dnsmessage.RCodeSuccess && !h.Authoritative && !h.RecursionAvailable && err == dnsmessage.ErrSectionDone {
717 return errLameReferral
718 }
719 if h.RCode != dnsmessage.RCodeSuccess && h.RCode != dnsmessage.RCodeNameError {
720 if h.RCode == dnsmessage.RCodeServerFailure {
721 return errServerTemporarilyMisbehaving
722 }
723 return errServerMisbehaving
724 }
725 return nil
726}
727
728func skipToAnswer(p *dnsmessage.Parser, qtype dnsmessage.Type) error {
729 for {

Callers 1

tryOneNameMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected