| 726 | } |
| 727 | |
| 728 | func skipToAnswer(p *dnsmessage.Parser, qtype dnsmessage.Type) error { |
| 729 | for { |
| 730 | h, err := p.AnswerHeader() |
| 731 | if err == dnsmessage.ErrSectionDone { |
| 732 | return errNoSuchHost |
| 733 | } |
| 734 | if err != nil { |
| 735 | return errCannotUnmarshalDNSMessage |
| 736 | } |
| 737 | if h.Type == qtype { |
| 738 | return nil |
| 739 | } |
| 740 | if err := p.SkipAnswer(); err != nil { |
| 741 | return errCannotUnmarshalDNSMessage |
| 742 | } |
| 743 | } |
| 744 | } |
| 745 | |
| 746 | func (tnet *Net) tryOneName(ctx context.Context, name string, qtype dnsmessage.Type) (dnsmessage.Parser, string, error) { |
| 747 | var lastErr error |