mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	
							
								
								
									
										25
									
								
								middleware/autopath/cname.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								middleware/autopath/cname.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| package autopath | ||||
|  | ||||
| import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/miekg/dns" | ||||
| ) | ||||
|  | ||||
| // cnamer will prefix the answer section with a cname that points from original qname to the | ||||
| // name of the first RR. It will also update the question section and put original in there. | ||||
| func cnamer(m *dns.Msg, original string) { | ||||
| 	for _, a := range m.Answer { | ||||
| 		if strings.EqualFold(original, a.Header().Name) { | ||||
| 			continue | ||||
| 		} | ||||
| 		m.Answer = append(m.Answer, nil) | ||||
| 		copy(m.Answer[1:], m.Answer) | ||||
| 		m.Answer[0] = &dns.CNAME{ | ||||
| 			Hdr:    dns.RR_Header{Name: original, Rrtype: dns.TypeCNAME, Class: dns.ClassINET, Ttl: a.Header().Ttl}, | ||||
| 			Target: a.Header().Name, | ||||
| 		} | ||||
| 		break | ||||
| 	} | ||||
| 	m.Question[0].Name = original | ||||
| } | ||||
		Reference in New Issue
	
	Block a user