mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 00:42:24 -05:00 
			
		
		
		
	[chore]: Bump github.com/miekg/dns from 1.1.50 to 1.1.51 (#1566)
Bumps [github.com/miekg/dns](https://github.com/miekg/dns) from 1.1.50 to 1.1.51. - [Release notes](https://github.com/miekg/dns/releases) - [Changelog](https://github.com/miekg/dns/blob/master/Makefile.release) - [Commits](https://github.com/miekg/dns/compare/v1.1.50...v1.1.51) --- updated-dependencies: - dependency-name: github.com/miekg/dns dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
		
					parent
					
						
							
								6c2bd141f7
							
						
					
				
			
			
				commit
				
					
						8696a8cdf0
					
				
			
		
					 58 changed files with 1019 additions and 168 deletions
				
			
		
							
								
								
									
										49
									
								
								vendor/github.com/miekg/dns/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										49
									
								
								vendor/github.com/miekg/dns/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,30 +1,29 @@ | |||
| Copyright (c) 2009 The Go Authors. All rights reserved. | ||||
| BSD 3-Clause License | ||||
| 
 | ||||
| Copyright (c) 2009, The Go Authors. Extensions copyright (c) 2011, Miek Gieben.  | ||||
| All rights reserved. | ||||
| 
 | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are | ||||
| met: | ||||
| modification, are permitted provided that the following conditions are met: | ||||
| 
 | ||||
|    * Redistributions of source code must retain the above copyright | ||||
| notice, this list of conditions and the following disclaimer. | ||||
|    * Redistributions in binary form must reproduce the above | ||||
| copyright notice, this list of conditions and the following disclaimer | ||||
| in the documentation and/or other materials provided with the | ||||
| distribution. | ||||
|    * Neither the name of Google Inc. nor the names of its | ||||
| contributors may be used to endorse or promote products derived from | ||||
| this software without specific prior written permission. | ||||
| 1. Redistributions of source code must retain the above copyright notice, this | ||||
|    list of conditions and the following disclaimer. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| 2. Redistributions in binary form must reproduce the above copyright notice, | ||||
|    this list of conditions and the following disclaimer in the documentation | ||||
|    and/or other materials provided with the distribution. | ||||
| 
 | ||||
| 3. Neither the name of the copyright holder nor the names of its | ||||
|    contributors may be used to endorse or promote products derived from | ||||
|    this software without specific prior written permission. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
| FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
| DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
| SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| 
 | ||||
| As this is fork of the official Go code the same license applies. | ||||
| Extensions of the original work are copyright (c) 2011 Miek Gieben | ||||
|  |  | |||
							
								
								
									
										6
									
								
								vendor/github.com/miekg/dns/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/miekg/dns/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -77,6 +77,10 @@ A not-so-up-to-date-list-that-may-be-actually-current: | |||
| * https://ping.sx/dig | ||||
| * https://fleetdeck.io/ | ||||
| * https://github.com/markdingo/autoreverse | ||||
| * https://github.com/slackhq/nebula | ||||
| * https://github.com/dnschecktool/dow-proxy | ||||
| * https://dnscheck.tools/ | ||||
| * https://github.com/egbakou/domainverifier | ||||
| 
 | ||||
| 
 | ||||
| Send pull request if you want to be listed here. | ||||
|  | @ -140,6 +144,7 @@ Example programs can be found in the `github.com/miekg/exdns` repository. | |||
| * 340{1,2,3} - NAPTR record | ||||
| * 3445 - Limiting the scope of (DNS)KEY | ||||
| * 3597 - Unknown RRs | ||||
| * 4025 - A Method for Storing IPsec Keying Material in DNS | ||||
| * 403{3,4,5} - DNSSEC + validation functions | ||||
| * 4255 - SSHFP record | ||||
| * 4343 - Case insensitivity | ||||
|  | @ -175,6 +180,7 @@ Example programs can be found in the `github.com/miekg/exdns` repository. | |||
| * 8080 - EdDSA for DNSSEC | ||||
| * 8499 - DNS Terminology | ||||
| * 8659 - DNS Certification Authority Authorization (CAA) Resource Record | ||||
| * 8777 - DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery | ||||
| * 8914 - Extended DNS Errors | ||||
| * 8976 - Message Digest for DNS Zones (ZONEMD RR) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/acceptfunc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/acceptfunc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,7 +19,6 @@ type MsgAcceptFunc func(dh Header) MsgAcceptAction | |||
| // * has more than 0 RRs in the Authority section | ||||
| // | ||||
| // * has more than 2 RRs in the Additional section | ||||
| // | ||||
| var DefaultMsgAcceptFunc MsgAcceptFunc = defaultMsgAcceptFunc | ||||
| 
 | ||||
| // MsgAcceptAction represents the action to be taken. | ||||
|  |  | |||
							
								
								
									
										5
									
								
								vendor/github.com/miekg/dns/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/miekg/dns/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -185,7 +185,7 @@ func (c *Client) Exchange(m *Msg, address string) (r *Msg, rtt time.Duration, er | |||
| // that entails when using "tcp" and especially "tcp-tls" clients. | ||||
| // | ||||
| // When the singleflight is set for this client the context is _not_ forwarded to the (shared) exchange, to | ||||
| // prevent one cancelation from canceling all outstanding requests. | ||||
| // prevent one cancellation from canceling all outstanding requests. | ||||
| func (c *Client) ExchangeWithConn(m *Msg, conn *Conn) (r *Msg, rtt time.Duration, err error) { | ||||
| 	return c.exchangeWithConnContext(context.Background(), m, conn) | ||||
| } | ||||
|  | @ -198,7 +198,7 @@ func (c *Client) exchangeWithConnContext(ctx context.Context, m *Msg, conn *Conn | |||
| 	q := m.Question[0] | ||||
| 	key := fmt.Sprintf("%s:%d:%d", q.Name, q.Qtype, q.Qclass) | ||||
| 	r, rtt, err, shared := c.group.Do(key, func() (*Msg, time.Duration, error) { | ||||
| 		// When we're doing singleflight we don't want one context cancelation, cancel _all_ outstanding queries. | ||||
| 		// When we're doing singleflight we don't want one context cancellation, cancel _all_ outstanding queries. | ||||
| 		// Hence we ignore the context and use Background(). | ||||
| 		return c.exchangeContext(context.Background(), m, conn) | ||||
| 	}) | ||||
|  | @ -431,7 +431,6 @@ func ExchangeContext(ctx context.Context, m *Msg, a string) (r *Msg, err error) | |||
| //	co.WriteMsg(m) | ||||
| //	in, _  := co.ReadMsg() | ||||
| //	co.Close() | ||||
| // | ||||
| func ExchangeConn(c net.Conn, m *Msg) (r *Msg, err error) { | ||||
| 	println("dns: ExchangeConn: this function is deprecated") | ||||
| 	co := new(Conn) | ||||
|  |  | |||
							
								
								
									
										86
									
								
								vendor/github.com/miekg/dns/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								vendor/github.com/miekg/dns/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -13,28 +13,28 @@ names in a message will result in a packing failure. | |||
| Resource records are native types. They are not stored in wire format. Basic | ||||
| usage pattern for creating a new resource record: | ||||
| 
 | ||||
|      r := new(dns.MX) | ||||
|      r.Hdr = dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeMX, Class: dns.ClassINET, Ttl: 3600} | ||||
|      r.Preference = 10 | ||||
|      r.Mx = "mx.miek.nl." | ||||
| 	r := new(dns.MX) | ||||
| 	r.Hdr = dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeMX, Class: dns.ClassINET, Ttl: 3600} | ||||
| 	r.Preference = 10 | ||||
| 	r.Mx = "mx.miek.nl." | ||||
| 
 | ||||
| Or directly from a string: | ||||
| 
 | ||||
|      mx, err := dns.NewRR("miek.nl. 3600 IN MX 10 mx.miek.nl.") | ||||
| 	mx, err := dns.NewRR("miek.nl. 3600 IN MX 10 mx.miek.nl.") | ||||
| 
 | ||||
| Or when the default origin (.) and TTL (3600) and class (IN) suit you: | ||||
| 
 | ||||
|      mx, err := dns.NewRR("miek.nl MX 10 mx.miek.nl") | ||||
| 	mx, err := dns.NewRR("miek.nl MX 10 mx.miek.nl") | ||||
| 
 | ||||
| Or even: | ||||
| 
 | ||||
|      mx, err := dns.NewRR("$ORIGIN nl.\nmiek 1H IN MX 10 mx.miek") | ||||
| 	mx, err := dns.NewRR("$ORIGIN nl.\nmiek 1H IN MX 10 mx.miek") | ||||
| 
 | ||||
| In the DNS messages are exchanged, these messages contain resource records | ||||
| (sets). Use pattern for creating a message: | ||||
| 
 | ||||
|      m := new(dns.Msg) | ||||
|      m.SetQuestion("miek.nl.", dns.TypeMX) | ||||
| 	m := new(dns.Msg) | ||||
| 	m.SetQuestion("miek.nl.", dns.TypeMX) | ||||
| 
 | ||||
| Or when not certain if the domain name is fully qualified: | ||||
| 
 | ||||
|  | @ -45,17 +45,17 @@ records for the miek.nl. zone. | |||
| 
 | ||||
| The following is slightly more verbose, but more flexible: | ||||
| 
 | ||||
|      m1 := new(dns.Msg) | ||||
|      m1.Id = dns.Id() | ||||
|      m1.RecursionDesired = true | ||||
|      m1.Question = make([]dns.Question, 1) | ||||
|      m1.Question[0] = dns.Question{"miek.nl.", dns.TypeMX, dns.ClassINET} | ||||
| 	m1 := new(dns.Msg) | ||||
| 	m1.Id = dns.Id() | ||||
| 	m1.RecursionDesired = true | ||||
| 	m1.Question = make([]dns.Question, 1) | ||||
| 	m1.Question[0] = dns.Question{"miek.nl.", dns.TypeMX, dns.ClassINET} | ||||
| 
 | ||||
| After creating a message it can be sent. Basic use pattern for synchronous | ||||
| querying the DNS at a server configured on 127.0.0.1 and port 53: | ||||
| 
 | ||||
|      c := new(dns.Client) | ||||
|      in, rtt, err := c.Exchange(m1, "127.0.0.1:53") | ||||
| 	c := new(dns.Client) | ||||
| 	in, rtt, err := c.Exchange(m1, "127.0.0.1:53") | ||||
| 
 | ||||
| Suppressing multiple outstanding queries (with the same question, type and | ||||
| class) is as easy as setting: | ||||
|  | @ -72,7 +72,7 @@ and port to use for the connection: | |||
| 		Port: 12345, | ||||
| 		Zone: "", | ||||
| 	} | ||||
| 	c.Dialer := &net.Dialer{ | ||||
| 	c.Dialer = &net.Dialer{ | ||||
| 		Timeout: 200 * time.Millisecond, | ||||
| 		LocalAddr: &laddr, | ||||
| 	} | ||||
|  | @ -96,7 +96,7 @@ the Answer section: | |||
| 		// do something with t.Txt | ||||
| 	} | ||||
| 
 | ||||
| Domain Name and TXT Character String Representations | ||||
| # Domain Name and TXT Character String Representations | ||||
| 
 | ||||
| Both domain names and TXT character strings are converted to presentation form | ||||
| both when unpacked and when converted to strings. | ||||
|  | @ -108,7 +108,7 @@ be escaped. Bytes below 32 and above 127 will be converted to \DDD form. | |||
| For domain names, in addition to the above rules brackets, periods, spaces, | ||||
| semicolons and the at symbol are escaped. | ||||
| 
 | ||||
| DNSSEC | ||||
| # DNSSEC | ||||
| 
 | ||||
| DNSSEC (DNS Security Extension) adds a layer of security to the DNS. It uses | ||||
| public key cryptography to sign resource records. The public keys are stored in | ||||
|  | @ -117,12 +117,12 @@ DNSKEY records and the signatures in RRSIG records. | |||
| Requesting DNSSEC information for a zone is done by adding the DO (DNSSEC OK) | ||||
| bit to a request. | ||||
| 
 | ||||
|      m := new(dns.Msg) | ||||
|      m.SetEdns0(4096, true) | ||||
| 	m := new(dns.Msg) | ||||
| 	m.SetEdns0(4096, true) | ||||
| 
 | ||||
| Signature generation, signature verification and key generation are all supported. | ||||
| 
 | ||||
| DYNAMIC UPDATES | ||||
| # DYNAMIC UPDATES | ||||
| 
 | ||||
| Dynamic updates reuses the DNS message format, but renames three of the | ||||
| sections. Question is Zone, Answer is Prerequisite, Authority is Update, only | ||||
|  | @ -133,30 +133,30 @@ certain resource records or names in a zone to specify if resource records | |||
| should be added or removed. The table from RFC 2136 supplemented with the Go | ||||
| DNS function shows which functions exist to specify the prerequisites. | ||||
| 
 | ||||
|  3.2.4 - Table Of Metavalues Used In Prerequisite Section | ||||
| 	3.2.4 - Table Of Metavalues Used In Prerequisite Section | ||||
| 
 | ||||
|   CLASS    TYPE     RDATA    Meaning                    Function | ||||
|   -------------------------------------------------------------- | ||||
|   ANY      ANY      empty    Name is in use             dns.NameUsed | ||||
|   ANY      rrset    empty    RRset exists (value indep) dns.RRsetUsed | ||||
|   NONE     ANY      empty    Name is not in use         dns.NameNotUsed | ||||
|   NONE     rrset    empty    RRset does not exist       dns.RRsetNotUsed | ||||
|   zone     rrset    rr       RRset exists (value dep)   dns.Used | ||||
| 	 CLASS    TYPE     RDATA    Meaning                    Function | ||||
| 	 -------------------------------------------------------------- | ||||
| 	 ANY      ANY      empty    Name is in use             dns.NameUsed | ||||
| 	 ANY      rrset    empty    RRset exists (value indep) dns.RRsetUsed | ||||
| 	 NONE     ANY      empty    Name is not in use         dns.NameNotUsed | ||||
| 	 NONE     rrset    empty    RRset does not exist       dns.RRsetNotUsed | ||||
| 	 zone     rrset    rr       RRset exists (value dep)   dns.Used | ||||
| 
 | ||||
| The prerequisite section can also be left empty. If you have decided on the | ||||
| prerequisites you can tell what RRs should be added or deleted. The next table | ||||
| shows the options you have and what functions to call. | ||||
| 
 | ||||
|  3.4.2.6 - Table Of Metavalues Used In Update Section | ||||
| 	3.4.2.6 - Table Of Metavalues Used In Update Section | ||||
| 
 | ||||
|   CLASS    TYPE     RDATA    Meaning                     Function | ||||
|   --------------------------------------------------------------- | ||||
|   ANY      ANY      empty    Delete all RRsets from name dns.RemoveName | ||||
|   ANY      rrset    empty    Delete an RRset             dns.RemoveRRset | ||||
|   NONE     rrset    rr       Delete an RR from RRset     dns.Remove | ||||
|   zone     rrset    rr       Add to an RRset             dns.Insert | ||||
| 	 CLASS    TYPE     RDATA    Meaning                     Function | ||||
| 	 --------------------------------------------------------------- | ||||
| 	 ANY      ANY      empty    Delete all RRsets from name dns.RemoveName | ||||
| 	 ANY      rrset    empty    Delete an RRset             dns.RemoveRRset | ||||
| 	 NONE     rrset    rr       Delete an RR from RRset     dns.Remove | ||||
| 	 zone     rrset    rr       Add to an RRset             dns.Insert | ||||
| 
 | ||||
| TRANSACTION SIGNATURE | ||||
| # TRANSACTION SIGNATURE | ||||
| 
 | ||||
| An TSIG or transaction signature adds a HMAC TSIG record to each message sent. | ||||
| The supported algorithms include: HmacSHA1, HmacSHA256 and HmacSHA512. | ||||
|  | @ -239,7 +239,7 @@ Basic use pattern validating and replying to a message that has TSIG set. | |||
| 		w.WriteMsg(m) | ||||
| 	} | ||||
| 
 | ||||
| PRIVATE RRS | ||||
| # PRIVATE RRS | ||||
| 
 | ||||
| RFC 6895 sets aside a range of type codes for private use. This range is 65,280 | ||||
| - 65,534 (0xFF00 - 0xFFFE). When experimenting with new Resource Records these | ||||
|  | @ -248,7 +248,7 @@ can be used, before requesting an official type code from IANA. | |||
| See https://miek.nl/2014/september/21/idn-and-private-rr-in-go-dns/ for more | ||||
| information. | ||||
| 
 | ||||
| EDNS0 | ||||
| # EDNS0 | ||||
| 
 | ||||
| EDNS0 is an extension mechanism for the DNS defined in RFC 2671 and updated by | ||||
| RFC 6891. It defines a new RR type, the OPT RR, which is then completely | ||||
|  | @ -279,9 +279,9 @@ SIG(0) | |||
| 
 | ||||
| From RFC 2931: | ||||
| 
 | ||||
|     SIG(0) provides protection for DNS transactions and requests .... | ||||
|     ... protection for glue records, DNS requests, protection for message headers | ||||
|     on requests and responses, and protection of the overall integrity of a response. | ||||
| 	SIG(0) provides protection for DNS transactions and requests .... | ||||
| 	... protection for glue records, DNS requests, protection for message headers | ||||
| 	on requests and responses, and protection of the overall integrity of a response. | ||||
| 
 | ||||
| It works like TSIG, except that SIG(0) uses public key cryptography, instead of | ||||
| the shared secret approach in TSIG. Supported algorithms: ECDSAP256SHA256, | ||||
|  |  | |||
							
								
								
									
										9
									
								
								vendor/github.com/miekg/dns/edns.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/miekg/dns/edns.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -78,7 +78,10 @@ func (rr *OPT) String() string { | |||
| 	if rr.Do() { | ||||
| 		s += "flags: do; " | ||||
| 	} else { | ||||
| 		s += "flags: ; " | ||||
| 		s += "flags:; " | ||||
| 	} | ||||
| 	if rr.Hdr.Ttl&0x7FFF != 0 { | ||||
| 		s += fmt.Sprintf("MBZ: 0x%04x, ", rr.Hdr.Ttl&0x7FFF) | ||||
| 	} | ||||
| 	s += "udp: " + strconv.Itoa(int(rr.UDPSize())) | ||||
| 
 | ||||
|  | @ -98,6 +101,8 @@ func (rr *OPT) String() string { | |||
| 			s += "\n; SUBNET: " + o.String() | ||||
| 		case *EDNS0_COOKIE: | ||||
| 			s += "\n; COOKIE: " + o.String() | ||||
| 		case *EDNS0_EXPIRE: | ||||
| 			s += "\n; EXPIRE: " + o.String() | ||||
| 		case *EDNS0_TCP_KEEPALIVE: | ||||
| 			s += "\n; KEEPALIVE: " + o.String() | ||||
| 		case *EDNS0_UL: | ||||
|  | @ -258,7 +263,7 @@ func (e *EDNS0_NSID) copy() EDNS0           { return &EDNS0_NSID{e.Code, e.Nsid} | |||
| //	o.Hdr.Name = "." | ||||
| //	o.Hdr.Rrtype = dns.TypeOPT | ||||
| //	e := new(dns.EDNS0_SUBNET) | ||||
| //	e.Code = dns.EDNS0SUBNET | ||||
| //	e.Code = dns.EDNS0SUBNET // by default this is filled in through unpacking OPT packets (unpackDataOpt)   | ||||
| //	e.Family = 1	// 1 for IPv4 source address, 2 for IPv6 | ||||
| //	e.SourceNetmask = 32	// 32 for IPV4, 128 for IPv6 | ||||
| //	e.SourceScope = 0 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/fuzz.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/fuzz.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build fuzz | ||||
| // +build fuzz | ||||
| 
 | ||||
| package dns | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/miekg/dns/labels.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/miekg/dns/labels.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -122,7 +122,7 @@ func Split(s string) []int { | |||
| } | ||||
| 
 | ||||
| // NextLabel returns the index of the start of the next label in the | ||||
| // string s starting at offset. | ||||
| // string s starting at offset. A negative offset will cause a panic. | ||||
| // The bool end is true when the end of the string has been reached. | ||||
| // Also see PrevLabel. | ||||
| func NextLabel(s string, offset int) (i int, end bool) { | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/listen_no_reuseport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/listen_no_reuseport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build !go1.11 || (!aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd) | ||||
| // +build !go1.11 !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd | ||||
| 
 | ||||
| package dns | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/listen_reuseport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/listen_reuseport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build go1.11 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd) | ||||
| // +build go1.11 | ||||
| // +build aix darwin dragonfly freebsd linux netbsd openbsd | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/miekg/dns/msg.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/miekg/dns/msg.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -680,9 +680,9 @@ func unpackRRslice(l int, msg []byte, off int) (dst1 []RR, off1 int, err error) | |||
| 
 | ||||
| // Convert a MsgHdr to a string, with dig-like headers: | ||||
| // | ||||
| //;; opcode: QUERY, status: NOERROR, id: 48404 | ||||
| // ;; opcode: QUERY, status: NOERROR, id: 48404 | ||||
| // | ||||
| //;; flags: qr aa rd ra; | ||||
| // ;; flags: qr aa rd ra; | ||||
| func (h *MsgHdr) String() string { | ||||
| 	if h == nil { | ||||
| 		return "<nil> MsgHdr" | ||||
|  |  | |||
							
								
								
									
										34
									
								
								vendor/github.com/miekg/dns/msg_helpers.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/miekg/dns/msg_helpers.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -810,3 +810,37 @@ func unpackDataAplPrefix(msg []byte, off int) (APLPrefix, int, error) { | |||
| 		Network:  ipnet, | ||||
| 	}, off, nil | ||||
| } | ||||
| 
 | ||||
| func unpackIPSECGateway(msg []byte, off int, gatewayType uint8) (net.IP, string, int, error) { | ||||
| 	var retAddr net.IP | ||||
| 	var retString string | ||||
| 	var err error | ||||
| 
 | ||||
| 	switch gatewayType { | ||||
| 	case IPSECGatewayNone: // do nothing | ||||
| 	case IPSECGatewayIPv4: | ||||
| 		retAddr, off, err = unpackDataA(msg, off) | ||||
| 	case IPSECGatewayIPv6: | ||||
| 		retAddr, off, err = unpackDataAAAA(msg, off) | ||||
| 	case IPSECGatewayHost: | ||||
| 		retString, off, err = UnpackDomainName(msg, off) | ||||
| 	} | ||||
| 
 | ||||
| 	return retAddr, retString, off, err | ||||
| } | ||||
| 
 | ||||
| func packIPSECGateway(gatewayAddr net.IP, gatewayString string, msg []byte, off int, gatewayType uint8, compression compressionMap, compress bool) (int, error) { | ||||
| 	var err error | ||||
| 
 | ||||
| 	switch gatewayType { | ||||
| 	case IPSECGatewayNone: // do nothing | ||||
| 	case IPSECGatewayIPv4: | ||||
| 		off, err = packDataA(gatewayAddr, msg, off) | ||||
| 	case IPSECGatewayIPv6: | ||||
| 		off, err = packDataAAAA(gatewayAddr, msg, off) | ||||
| 	case IPSECGatewayHost: | ||||
| 		off, err = packDomainName(gatewayString, msg, off, compression, compress) | ||||
| 	} | ||||
| 
 | ||||
| 	return off, err | ||||
| } | ||||
|  |  | |||
							
								
								
									
										112
									
								
								vendor/github.com/miekg/dns/scan_rr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										112
									
								
								vendor/github.com/miekg/dns/scan_rr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,6 +3,7 @@ package dns | |||
| import ( | ||||
| 	"bytes" | ||||
| 	"encoding/base64" | ||||
| 	"errors" | ||||
| 	"net" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | @ -1216,6 +1217,117 @@ func (rr *DS) parse(c *zlexer, o string) *ParseError      { return rr.parseDS(c, | |||
| func (rr *DLV) parse(c *zlexer, o string) *ParseError     { return rr.parseDS(c, o, "DLV") } | ||||
| func (rr *CDS) parse(c *zlexer, o string) *ParseError     { return rr.parseDS(c, o, "CDS") } | ||||
| 
 | ||||
| func (rr *IPSECKEY) parse(c *zlexer, o string) *ParseError { | ||||
| 	l, _ := c.Next() | ||||
| 	num, err := strconv.ParseUint(l.token, 10, 8) | ||||
| 	if err != nil || l.err { | ||||
| 		return &ParseError{"", "bad IPSECKEY value", l} | ||||
| 	} | ||||
| 	rr.Precedence = uint8(num) | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	num, err = strconv.ParseUint(l.token, 10, 8) | ||||
| 	if err != nil || l.err { | ||||
| 		return &ParseError{"", "bad IPSECKEY value", l} | ||||
| 	} | ||||
| 	rr.GatewayType = uint8(num) | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	num, err = strconv.ParseUint(l.token, 10, 8) | ||||
| 	if err != nil || l.err { | ||||
| 		return &ParseError{"", "bad IPSECKEY value", l} | ||||
| 	} | ||||
| 	rr.Algorithm = uint8(num) | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	if l.err { | ||||
| 		return &ParseError{"", "bad IPSECKEY gateway", l} | ||||
| 	} | ||||
| 
 | ||||
| 	rr.GatewayAddr, rr.GatewayHost, err = parseAddrHostUnion(l.token, o, rr.GatewayType) | ||||
| 	if err != nil { | ||||
| 		return &ParseError{"", "AMTRELAY " + err.Error(), l} | ||||
| 	} | ||||
| 
 | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	s, pErr := endingToString(c, "bad IPSECKEY PublicKey") | ||||
| 	if pErr != nil { | ||||
| 		return pErr | ||||
| 	} | ||||
| 	rr.PublicKey = s | ||||
| 	return slurpRemainder(c) | ||||
| } | ||||
| 
 | ||||
| func (rr *AMTRELAY) parse(c *zlexer, o string) *ParseError { | ||||
| 	l, _ := c.Next() | ||||
| 	num, err := strconv.ParseUint(l.token, 10, 8) | ||||
| 	if err != nil || l.err { | ||||
| 		return &ParseError{"", "bad AMTRELAY value", l} | ||||
| 	} | ||||
| 	rr.Precedence = uint8(num) | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	if l.err || !(l.token == "0" || l.token == "1") { | ||||
| 		return &ParseError{"", "bad discovery value", l} | ||||
| 	} | ||||
| 	if l.token == "1" { | ||||
| 		rr.GatewayType = 0x80 | ||||
| 	} | ||||
| 
 | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	num, err = strconv.ParseUint(l.token, 10, 8) | ||||
| 	if err != nil || l.err { | ||||
| 		return &ParseError{"", "bad AMTRELAY value", l} | ||||
| 	} | ||||
| 	rr.GatewayType |= uint8(num) | ||||
| 	c.Next() // zBlank | ||||
| 
 | ||||
| 	l, _ = c.Next() | ||||
| 	if l.err { | ||||
| 		return &ParseError{"", "bad AMTRELAY gateway", l} | ||||
| 	} | ||||
| 
 | ||||
| 	rr.GatewayAddr, rr.GatewayHost, err = parseAddrHostUnion(l.token, o, rr.GatewayType&0x7f) | ||||
| 	if err != nil { | ||||
| 		return &ParseError{"", "AMTRELAY " + err.Error(), l} | ||||
| 	} | ||||
| 
 | ||||
| 	return slurpRemainder(c) | ||||
| } | ||||
| 
 | ||||
| // same constants and parsing between IPSECKEY and AMTRELAY | ||||
| func parseAddrHostUnion(token, o string, gatewayType uint8) (addr net.IP, host string, err error) { | ||||
| 	switch gatewayType { | ||||
| 	case IPSECGatewayNone: | ||||
| 		if token != "." { | ||||
| 			return addr, host, errors.New("gateway type none with gateway set") | ||||
| 		} | ||||
| 	case IPSECGatewayIPv4, IPSECGatewayIPv6: | ||||
| 		addr = net.ParseIP(token) | ||||
| 		if addr == nil { | ||||
| 			return addr, host, errors.New("gateway IP invalid") | ||||
| 		} | ||||
| 		if (addr.To4() == nil) == (gatewayType == IPSECGatewayIPv4) { | ||||
| 			return addr, host, errors.New("gateway IP family mismatch") | ||||
| 		} | ||||
| 	case IPSECGatewayHost: | ||||
| 		var ok bool | ||||
| 		host, ok = toAbsoluteName(token, o) | ||||
| 		if !ok { | ||||
| 			return addr, host, errors.New("invalid gateway host") | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return addr, host, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *RKEY) parse(c *zlexer, o string) *ParseError { | ||||
| 	l, _ := c.Next() | ||||
| 	i, e := strconv.ParseUint(l.token, 10, 16) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/miekg/dns/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/miekg/dns/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -18,7 +18,7 @@ import ( | |||
| const maxTCPQueries = 128 | ||||
| 
 | ||||
| // aLongTimeAgo is a non-zero time, far in the past, used for | ||||
| // immediate cancelation of network operations. | ||||
| // immediate cancellation of network operations. | ||||
| var aLongTimeAgo = time.Unix(1, 0) | ||||
| 
 | ||||
| // Handler is implemented by any value that implements ServeDNS. | ||||
|  |  | |||
							
								
								
									
										16
									
								
								vendor/github.com/miekg/dns/svcb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/miekg/dns/svcb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -353,7 +353,7 @@ func (*SVCBAlpn) Key() SVCBKey { return SVCB_ALPN } | |||
| func (s *SVCBAlpn) String() string { | ||||
| 	// An ALPN value is a comma-separated list of values, each of which can be | ||||
| 	// an arbitrary binary value. In order to allow parsing, the comma and | ||||
| 	// backslash characters are themselves excaped. | ||||
| 	// backslash characters are themselves escaped. | ||||
| 	// | ||||
| 	// However, this escaping is done in addition to the normal escaping which | ||||
| 	// happens in zone files, meaning that these values must be | ||||
|  | @ -563,15 +563,15 @@ func (s *SVCBPort) parse(b string) error { | |||
| // to the hinted IP address may be terminated and a new connection may be opened. | ||||
| // Basic use pattern for creating an ipv4hint option: | ||||
| // | ||||
| //	h := new(dns.HTTPS) | ||||
| //	h.Hdr = dns.RR_Header{Name: ".", Rrtype: dns.TypeHTTPS, Class: dns.ClassINET} | ||||
| //	e := new(dns.SVCBIPv4Hint) | ||||
| //	e.Hint = []net.IP{net.IPv4(1,1,1,1).To4()} | ||||
| //		h := new(dns.HTTPS) | ||||
| //		h.Hdr = dns.RR_Header{Name: ".", Rrtype: dns.TypeHTTPS, Class: dns.ClassINET} | ||||
| //		e := new(dns.SVCBIPv4Hint) | ||||
| //		e.Hint = []net.IP{net.IPv4(1,1,1,1).To4()} | ||||
| // | ||||
| //  Or | ||||
| //	 Or | ||||
| // | ||||
| //	e.Hint = []net.IP{net.ParseIP("1.1.1.1").To4()} | ||||
| //	h.Value = append(h.Value, e) | ||||
| //		e.Hint = []net.IP{net.ParseIP("1.1.1.1").To4()} | ||||
| //		h.Value = append(h.Value, e) | ||||
| type SVCBIPv4Hint struct { | ||||
| 	Hint []net.IP | ||||
| } | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/tools.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/tools.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build tools | ||||
| // +build tools | ||||
| 
 | ||||
| // We include our tool dependencies for `go generate` here to ensure they're | ||||
|  |  | |||
							
								
								
									
										81
									
								
								vendor/github.com/miekg/dns/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										81
									
								
								vendor/github.com/miekg/dns/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -65,6 +65,7 @@ const ( | |||
| 	TypeAPL        uint16 = 42 | ||||
| 	TypeDS         uint16 = 43 | ||||
| 	TypeSSHFP      uint16 = 44 | ||||
| 	TypeIPSECKEY   uint16 = 45 | ||||
| 	TypeRRSIG      uint16 = 46 | ||||
| 	TypeNSEC       uint16 = 47 | ||||
| 	TypeDNSKEY     uint16 = 48 | ||||
|  | @ -98,6 +99,7 @@ const ( | |||
| 	TypeURI        uint16 = 256 | ||||
| 	TypeCAA        uint16 = 257 | ||||
| 	TypeAVC        uint16 = 258 | ||||
| 	TypeAMTRELAY   uint16 = 260 | ||||
| 
 | ||||
| 	TypeTKEY uint16 = 249 | ||||
| 	TypeTSIG uint16 = 250 | ||||
|  | @ -159,6 +161,22 @@ const ( | |||
| 	ZoneMDHashAlgSHA512 = 2 | ||||
| ) | ||||
| 
 | ||||
| // Used in IPSEC https://datatracker.ietf.org/doc/html/rfc4025#section-2.3 | ||||
| const ( | ||||
| 	IPSECGatewayNone uint8 = iota | ||||
| 	IPSECGatewayIPv4 | ||||
| 	IPSECGatewayIPv6 | ||||
| 	IPSECGatewayHost | ||||
| ) | ||||
| 
 | ||||
| // Used in AMTRELAY https://datatracker.ietf.org/doc/html/rfc8777#section-4.2.3 | ||||
| const ( | ||||
| 	AMTRELAYNone = IPSECGatewayNone | ||||
| 	AMTRELAYIPv4 = IPSECGatewayIPv4 | ||||
| 	AMTRELAYIPv6 = IPSECGatewayIPv6 | ||||
| 	AMTRELAYHost = IPSECGatewayHost | ||||
| ) | ||||
| 
 | ||||
| // Header is the wire format for the DNS packet header. | ||||
| type Header struct { | ||||
| 	Id                                 uint16 | ||||
|  | @ -994,6 +1012,69 @@ func (rr *DNSKEY) String() string { | |||
| 		" " + rr.PublicKey | ||||
| } | ||||
| 
 | ||||
| // IPSECKEY RR. See RFC 4025. | ||||
| type IPSECKEY struct { | ||||
| 	Hdr         RR_Header | ||||
| 	Precedence  uint8 | ||||
| 	GatewayType uint8 | ||||
| 	Algorithm   uint8 | ||||
| 	GatewayAddr net.IP `dns:"-"` // packing/unpacking/parsing/etc handled together with GatewayHost | ||||
| 	GatewayHost string `dns:"ipsechost"` | ||||
| 	PublicKey   string `dns:"base64"` | ||||
| } | ||||
| 
 | ||||
| func (rr *IPSECKEY) String() string { | ||||
| 	var gateway string | ||||
| 	switch rr.GatewayType { | ||||
| 	case IPSECGatewayIPv4, IPSECGatewayIPv6: | ||||
| 		gateway = rr.GatewayAddr.String() | ||||
| 	case IPSECGatewayHost: | ||||
| 		gateway = rr.GatewayHost | ||||
| 	case IPSECGatewayNone: | ||||
| 		fallthrough | ||||
| 	default: | ||||
| 		gateway = "." | ||||
| 	} | ||||
| 
 | ||||
| 	return rr.Hdr.String() + strconv.Itoa(int(rr.Precedence)) + | ||||
| 		" " + strconv.Itoa(int(rr.GatewayType)) + | ||||
| 		" " + strconv.Itoa(int(rr.Algorithm)) + | ||||
| 		" " + gateway + | ||||
| 		" " + rr.PublicKey | ||||
| } | ||||
| 
 | ||||
| // AMTRELAY RR. See RFC 8777. | ||||
| type AMTRELAY struct { | ||||
| 	Hdr         RR_Header | ||||
| 	Precedence  uint8 | ||||
| 	GatewayType uint8  // discovery is packed in here at bit 0x80 | ||||
| 	GatewayAddr net.IP `dns:"-"` // packing/unpacking/parsing/etc handled together with GatewayHost | ||||
| 	GatewayHost string `dns:"amtrelayhost"` | ||||
| } | ||||
| 
 | ||||
| func (rr *AMTRELAY) String() string { | ||||
| 	var gateway string | ||||
| 	switch rr.GatewayType & 0x7f { | ||||
| 	case AMTRELAYIPv4, AMTRELAYIPv6: | ||||
| 		gateway = rr.GatewayAddr.String() | ||||
| 	case AMTRELAYHost: | ||||
| 		gateway = rr.GatewayHost | ||||
| 	case AMTRELAYNone: | ||||
| 		fallthrough | ||||
| 	default: | ||||
| 		gateway = "." | ||||
| 	} | ||||
| 	boolS := "0" | ||||
| 	if rr.GatewayType&0x80 == 0x80 { | ||||
| 		boolS = "1" | ||||
| 	} | ||||
| 
 | ||||
| 	return rr.Hdr.String() + strconv.Itoa(int(rr.Precedence)) + | ||||
| 		" " + boolS + | ||||
| 		" " + strconv.Itoa(int(rr.GatewayType&0x7f)) + | ||||
| 		" " + gateway | ||||
| } | ||||
| 
 | ||||
| // RKEY RR. See https://www.iana.org/assignments/dns-parameters/RKEY/rkey-completed-template. | ||||
| type RKEY struct { | ||||
| 	Hdr       RR_Header | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/udp.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/udp.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build !windows | ||||
| // +build !windows | ||||
| 
 | ||||
| package dns | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/udp_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/udp_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | |||
| //go:build windows | ||||
| // +build windows | ||||
| 
 | ||||
| package dns | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/miekg/dns/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/miekg/dns/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,7 +3,7 @@ package dns | |||
| import "fmt" | ||||
| 
 | ||||
| // Version is current version of this library. | ||||
| var Version = v{1, 1, 50} | ||||
| var Version = v{1, 1, 51} | ||||
| 
 | ||||
| // v holds the version of this library. | ||||
| type v struct { | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/xfr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/xfr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -44,7 +44,6 @@ func (t *Transfer) tsigProvider() TsigProvider { | |||
| //	dnscon := &dns.Conn{Conn:con} | ||||
| //	transfer = &dns.Transfer{Conn: dnscon} | ||||
| //	channel, err := transfer.In(message, master) | ||||
| // | ||||
| func (t *Transfer) In(q *Msg, a string) (env chan *Envelope, err error) { | ||||
| 	switch q.Question[0].Qtype { | ||||
| 	case TypeAXFR, TypeIXFR: | ||||
|  |  | |||
							
								
								
									
										58
									
								
								vendor/github.com/miekg/dns/zduplicate.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								vendor/github.com/miekg/dns/zduplicate.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -43,6 +43,32 @@ func (r1 *AFSDB) isDuplicate(_r2 RR) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| func (r1 *AMTRELAY) isDuplicate(_r2 RR) bool { | ||||
| 	r2, ok := _r2.(*AMTRELAY) | ||||
| 	if !ok { | ||||
| 		return false | ||||
| 	} | ||||
| 	_ = r2 | ||||
| 	if r1.Precedence != r2.Precedence { | ||||
| 		return false | ||||
| 	} | ||||
| 	if r1.GatewayType != r2.GatewayType { | ||||
| 		return false | ||||
| 	} | ||||
| 	switch r1.GatewayType { | ||||
| 	case IPSECGatewayIPv4, IPSECGatewayIPv6: | ||||
| 		if !r1.GatewayAddr.Equal(r2.GatewayAddr) { | ||||
| 			return false | ||||
| 		} | ||||
| 	case IPSECGatewayHost: | ||||
| 		if !isDuplicateName(r1.GatewayHost, r2.GatewayHost) { | ||||
| 			return false | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| func (r1 *ANY) isDuplicate(_r2 RR) bool { | ||||
| 	r2, ok := _r2.(*ANY) | ||||
| 	if !ok { | ||||
|  | @ -423,6 +449,38 @@ func (r1 *HTTPS) isDuplicate(_r2 RR) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| func (r1 *IPSECKEY) isDuplicate(_r2 RR) bool { | ||||
| 	r2, ok := _r2.(*IPSECKEY) | ||||
| 	if !ok { | ||||
| 		return false | ||||
| 	} | ||||
| 	_ = r2 | ||||
| 	if r1.Precedence != r2.Precedence { | ||||
| 		return false | ||||
| 	} | ||||
| 	if r1.GatewayType != r2.GatewayType { | ||||
| 		return false | ||||
| 	} | ||||
| 	if r1.Algorithm != r2.Algorithm { | ||||
| 		return false | ||||
| 	} | ||||
| 	switch r1.GatewayType { | ||||
| 	case IPSECGatewayIPv4, IPSECGatewayIPv6: | ||||
| 		if !r1.GatewayAddr.Equal(r2.GatewayAddr) { | ||||
| 			return false | ||||
| 		} | ||||
| 	case IPSECGatewayHost: | ||||
| 		if !isDuplicateName(r1.GatewayHost, r2.GatewayHost) { | ||||
| 			return false | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if r1.PublicKey != r2.PublicKey { | ||||
| 		return false | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| func (r1 *KEY) isDuplicate(_r2 RR) bool { | ||||
| 	r2, ok := _r2.(*KEY) | ||||
| 	if !ok { | ||||
|  |  | |||
							
								
								
									
										110
									
								
								vendor/github.com/miekg/dns/zmsg.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										110
									
								
								vendor/github.com/miekg/dns/zmsg.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -32,6 +32,22 @@ func (rr *AFSDB) pack(msg []byte, off int, compression compressionMap, compress | |||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *AMTRELAY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { | ||||
| 	off, err = packUint8(rr.Precedence, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packUint8(rr.GatewayType, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packIPSECGateway(rr.GatewayAddr, rr.GatewayHost, msg, off, rr.GatewayType, compression, false) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *ANY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { | ||||
| 	return off, nil | ||||
| } | ||||
|  | @ -332,6 +348,30 @@ func (rr *HTTPS) pack(msg []byte, off int, compression compressionMap, compress | |||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *IPSECKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { | ||||
| 	off, err = packUint8(rr.Precedence, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packUint8(rr.GatewayType, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packUint8(rr.Algorithm, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packIPSECGateway(rr.GatewayAddr, rr.GatewayHost, msg, off, rr.GatewayType, compression, false) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	off, err = packStringBase64(rr.PublicKey, msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *KEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { | ||||
| 	off, err = packUint16(rr.Flags, msg, off) | ||||
| 	if err != nil { | ||||
|  | @ -1180,6 +1220,34 @@ func (rr *AFSDB) unpack(msg []byte, off int) (off1 int, err error) { | |||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *AMTRELAY) unpack(msg []byte, off int) (off1 int, err error) { | ||||
| 	rdStart := off | ||||
| 	_ = rdStart | ||||
| 
 | ||||
| 	rr.Precedence, off, err = unpackUint8(msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.GatewayType, off, err = unpackUint8(msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *ANY) unpack(msg []byte, off int) (off1 int, err error) { | ||||
| 	rdStart := off | ||||
| 	_ = rdStart | ||||
|  | @ -1636,6 +1704,48 @@ func (rr *HTTPS) unpack(msg []byte, off int) (off1 int, err error) { | |||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *IPSECKEY) unpack(msg []byte, off int) (off1 int, err error) { | ||||
| 	rdStart := off | ||||
| 	_ = rdStart | ||||
| 
 | ||||
| 	rr.Precedence, off, err = unpackUint8(msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.GatewayType, off, err = unpackUint8(msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.Algorithm, off, err = unpackUint8(msg, off) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	if off == len(msg) { | ||||
| 		return off, nil | ||||
| 	} | ||||
| 	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) | ||||
| 	if err != nil { | ||||
| 		return off, err | ||||
| 	} | ||||
| 	return off, nil | ||||
| } | ||||
| 
 | ||||
| func (rr *KEY) unpack(msg []byte, off int) (off1 int, err error) { | ||||
| 	rdStart := off | ||||
| 	_ = rdStart | ||||
|  |  | |||
							
								
								
									
										42
									
								
								vendor/github.com/miekg/dns/ztypes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/miekg/dns/ztypes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,6 +12,7 @@ var TypeToRR = map[uint16]func() RR{ | |||
| 	TypeA:          func() RR { return new(A) }, | ||||
| 	TypeAAAA:       func() RR { return new(AAAA) }, | ||||
| 	TypeAFSDB:      func() RR { return new(AFSDB) }, | ||||
| 	TypeAMTRELAY:   func() RR { return new(AMTRELAY) }, | ||||
| 	TypeANY:        func() RR { return new(ANY) }, | ||||
| 	TypeAPL:        func() RR { return new(APL) }, | ||||
| 	TypeAVC:        func() RR { return new(AVC) }, | ||||
|  | @ -34,6 +35,7 @@ var TypeToRR = map[uint16]func() RR{ | |||
| 	TypeHINFO:      func() RR { return new(HINFO) }, | ||||
| 	TypeHIP:        func() RR { return new(HIP) }, | ||||
| 	TypeHTTPS:      func() RR { return new(HTTPS) }, | ||||
| 	TypeIPSECKEY:   func() RR { return new(IPSECKEY) }, | ||||
| 	TypeKEY:        func() RR { return new(KEY) }, | ||||
| 	TypeKX:         func() RR { return new(KX) }, | ||||
| 	TypeL32:        func() RR { return new(L32) }, | ||||
|  | @ -90,6 +92,7 @@ var TypeToString = map[uint16]string{ | |||
| 	TypeA:          "A", | ||||
| 	TypeAAAA:       "AAAA", | ||||
| 	TypeAFSDB:      "AFSDB", | ||||
| 	TypeAMTRELAY:   "AMTRELAY", | ||||
| 	TypeANY:        "ANY", | ||||
| 	TypeAPL:        "APL", | ||||
| 	TypeATMA:       "ATMA", | ||||
|  | @ -114,6 +117,7 @@ var TypeToString = map[uint16]string{ | |||
| 	TypeHINFO:      "HINFO", | ||||
| 	TypeHIP:        "HIP", | ||||
| 	TypeHTTPS:      "HTTPS", | ||||
| 	TypeIPSECKEY:   "IPSECKEY", | ||||
| 	TypeISDN:       "ISDN", | ||||
| 	TypeIXFR:       "IXFR", | ||||
| 	TypeKEY:        "KEY", | ||||
|  | @ -176,6 +180,7 @@ var TypeToString = map[uint16]string{ | |||
| func (rr *A) Header() *RR_Header          { return &rr.Hdr } | ||||
| func (rr *AAAA) Header() *RR_Header       { return &rr.Hdr } | ||||
| func (rr *AFSDB) Header() *RR_Header      { return &rr.Hdr } | ||||
| func (rr *AMTRELAY) Header() *RR_Header   { return &rr.Hdr } | ||||
| func (rr *ANY) Header() *RR_Header        { return &rr.Hdr } | ||||
| func (rr *APL) Header() *RR_Header        { return &rr.Hdr } | ||||
| func (rr *AVC) Header() *RR_Header        { return &rr.Hdr } | ||||
|  | @ -198,6 +203,7 @@ func (rr *GPOS) Header() *RR_Header       { return &rr.Hdr } | |||
| func (rr *HINFO) Header() *RR_Header      { return &rr.Hdr } | ||||
| func (rr *HIP) Header() *RR_Header        { return &rr.Hdr } | ||||
| func (rr *HTTPS) Header() *RR_Header      { return &rr.Hdr } | ||||
| func (rr *IPSECKEY) Header() *RR_Header   { return &rr.Hdr } | ||||
| func (rr *KEY) Header() *RR_Header        { return &rr.Hdr } | ||||
| func (rr *KX) Header() *RR_Header         { return &rr.Hdr } | ||||
| func (rr *L32) Header() *RR_Header        { return &rr.Hdr } | ||||
|  | @ -270,6 +276,20 @@ func (rr *AFSDB) len(off int, compression map[string]struct{}) int { | |||
| 	l += domainNameLen(rr.Hostname, off+l, compression, false) | ||||
| 	return l | ||||
| } | ||||
| func (rr *AMTRELAY) len(off int, compression map[string]struct{}) int { | ||||
| 	l := rr.Hdr.len(off, compression) | ||||
| 	l++ // Precedence | ||||
| 	l++ // GatewayType | ||||
| 	switch rr.GatewayType { | ||||
| 	case AMTRELAYIPv4: | ||||
| 		l += net.IPv4len | ||||
| 	case AMTRELAYIPv6: | ||||
| 		l += net.IPv6len | ||||
| 	case AMTRELAYHost: | ||||
| 		l += len(rr.GatewayHost) + 1 | ||||
| 	} | ||||
| 	return l | ||||
| } | ||||
| func (rr *ANY) len(off int, compression map[string]struct{}) int { | ||||
| 	l := rr.Hdr.len(off, compression) | ||||
| 	return l | ||||
|  | @ -379,6 +399,22 @@ func (rr *HIP) len(off int, compression map[string]struct{}) int { | |||
| 	} | ||||
| 	return l | ||||
| } | ||||
| func (rr *IPSECKEY) len(off int, compression map[string]struct{}) int { | ||||
| 	l := rr.Hdr.len(off, compression) | ||||
| 	l++ // Precedence | ||||
| 	l++ // GatewayType | ||||
| 	l++ // Algorithm | ||||
| 	switch rr.GatewayType { | ||||
| 	case IPSECGatewayIPv4: | ||||
| 		l += net.IPv4len | ||||
| 	case IPSECGatewayIPv6: | ||||
| 		l += net.IPv6len | ||||
| 	case IPSECGatewayHost: | ||||
| 		l += len(rr.GatewayHost) + 1 | ||||
| 	} | ||||
| 	l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) | ||||
| 	return l | ||||
| } | ||||
| func (rr *KX) len(off int, compression map[string]struct{}) int { | ||||
| 	l := rr.Hdr.len(off, compression) | ||||
| 	l += 2 // Preference | ||||
|  | @ -706,6 +742,9 @@ func (rr *AAAA) copy() RR { | |||
| func (rr *AFSDB) copy() RR { | ||||
| 	return &AFSDB{rr.Hdr, rr.Subtype, rr.Hostname} | ||||
| } | ||||
| func (rr *AMTRELAY) copy() RR { | ||||
| 	return &AMTRELAY{rr.Hdr, rr.Precedence, rr.GatewayType, copyIP(rr.GatewayAddr), rr.GatewayHost} | ||||
| } | ||||
| func (rr *ANY) copy() RR { | ||||
| 	return &ANY{rr.Hdr} | ||||
| } | ||||
|  | @ -782,6 +821,9 @@ func (rr *HIP) copy() RR { | |||
| func (rr *HTTPS) copy() RR { | ||||
| 	return &HTTPS{*rr.SVCB.copy().(*SVCB)} | ||||
| } | ||||
| func (rr *IPSECKEY) copy() RR { | ||||
| 	return &IPSECKEY{rr.Hdr, rr.Precedence, rr.GatewayType, rr.Algorithm, copyIP(rr.GatewayAddr), rr.GatewayHost, rr.PublicKey} | ||||
| } | ||||
| func (rr *KEY) copy() RR { | ||||
| 	return &KEY{*rr.DNSKEY.copy().(*DNSKEY)} | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue