コード例 #1
0
ファイル: exchange.go プロジェクト: h8liu/d8
func (self *Exchange) printRecv(p printer.Interface) {
	switch self.PrintFlag {
	case PrintAll:
		if self.Recv != nil {
			p.Print("recv {")
			p.ShiftIn()
			self.Recv.PrintTo(p)
			p.ShiftOut("}")
		}

		if self.Error != nil {
			p.Printf("error %v", self.Error)
		}
	case PrintReply:
		if self.Recv != nil {
			self.Recv.Packet.PrintTo(p)
			self.printTimeTaken(p)
		}
		if self.Error != nil {
			p.Printf("error %v", self.Error)
		}
	default:
		panic("unknown print flag")
	}

	p.ShiftOut("}")
}
コード例 #2
0
ファイル: info.go プロジェクト: h8liu/d8
func (self *Info) PrintTo(p printer.Interface) {
	if len(self.Cnames) > 0 {
		p.Print("cnames {")
		p.ShiftIn()
		for _, r := range self.Cnames {
			p.Printf("%v -> %v", r.Domain, rdata.ToDomain(r.Rdata))
		}
		p.ShiftOut("}")
	}

	if len(self.Results) == 0 {
		p.Print("(unresolvable)")
	} else {
		p.Print("ips {")
		p.ShiftIn()

		for _, r := range self.Results {
			d := r.Domain
			ip := rdata.ToIPv4(r.Rdata)
			if d.Equal(self.Domain) {
				p.Printf("%v", ip)
			} else {
				p.Printf("%v(%v)", ip, d)
			}
		}

		p.ShiftOut("}")
	}

	if len(self.NameServers) > 0 {
		p.Print("servers {")
		p.ShiftIn()

		for _, ns := range self.NameServers {
			p.Printf("%v", ns)
		}

		p.ShiftOut("}")
	}

	if len(self.Records) > 0 {
		p.Print("records {")
		p.ShiftIn()

		for _, rr := range self.Records {
			p.Printf("%v", rr.Digest())
		}

		p.ShiftOut("}")
	}
}
コード例 #3
0
ファイル: exchange.go プロジェクト: h8liu/d8
func (self *Exchange) printSend(p printer.Interface) {
	p.Printf("%s {", self.Query.String())
	p.ShiftIn()

	switch self.PrintFlag {
	case PrintAll:
		p.Print("send {")
		p.ShiftIn()
		self.Send.PrintTo(p)
		p.ShiftOut("}")
	case PrintReply:
		// do nothing
	default:
		panic("unknown print flag")
	}
}
コード例 #4
0
ファイル: section.go プロジェクト: h8liu/d8
func (self Section) PrintTo(p printer.Interface) {
	for _, rr := range self {
		p.Print(rr)
	}
}