mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-04 03:03:14 -05:00 
			
		
		
		
	* doc: some function/vars/const/package level updates Various update that stood out while reading godoc.org for CoreDNS. * Fix some misspellings as well
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package parse contains functions that can be used in the setup code for plugins.
 | 
						|
package parse
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/coredns/coredns/plugin/pkg/dnsutil"
 | 
						|
	"github.com/mholt/caddy"
 | 
						|
)
 | 
						|
 | 
						|
// Transfer parses transfer statements: 'transfer [to|from] [address...]'.
 | 
						|
func Transfer(c *caddy.Controller, secondary bool) (tos, froms []string, err error) {
 | 
						|
	if !c.NextArg() {
 | 
						|
		return nil, nil, c.ArgErr()
 | 
						|
	}
 | 
						|
	value := c.Val()
 | 
						|
	switch value {
 | 
						|
	case "to":
 | 
						|
		tos = c.RemainingArgs()
 | 
						|
		for i := range tos {
 | 
						|
			if tos[i] != "*" {
 | 
						|
				normalized, err := dnsutil.ParseHostPort(tos[i], "53")
 | 
						|
				if err != nil {
 | 
						|
					return nil, nil, err
 | 
						|
				}
 | 
						|
				tos[i] = normalized
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
	case "from":
 | 
						|
		if !secondary {
 | 
						|
			return nil, nil, fmt.Errorf("can't use `transfer from` when not being a secondary")
 | 
						|
		}
 | 
						|
		froms = c.RemainingArgs()
 | 
						|
		for i := range froms {
 | 
						|
			if froms[i] != "*" {
 | 
						|
				normalized, err := dnsutil.ParseHostPort(froms[i], "53")
 | 
						|
				if err != nil {
 | 
						|
					return nil, nil, err
 | 
						|
				}
 | 
						|
				froms[i] = normalized
 | 
						|
			} else {
 | 
						|
				return nil, nil, fmt.Errorf("can't use '*' in transfer from")
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 |