mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 03:05:07 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package core
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/ed25519"
 | 
						|
)
 | 
						|
 | 
						|
func (c *Core) _applyOption(opt SetupOption) {
 | 
						|
	switch v := opt.(type) {
 | 
						|
	case Peer:
 | 
						|
		c.config._peers[v] = struct{}{}
 | 
						|
	case ListenAddress:
 | 
						|
		c.config._listeners[v] = struct{}{}
 | 
						|
	case NodeInfo:
 | 
						|
		c.config.nodeinfo = v
 | 
						|
	case NodeInfoPrivacy:
 | 
						|
		c.config.nodeinfoPrivacy = v
 | 
						|
	case IfName:
 | 
						|
		c.config.ifname = v
 | 
						|
	case IfMTU:
 | 
						|
		c.config.ifmtu = v
 | 
						|
	case AllowedPublicKey:
 | 
						|
		pk := [32]byte{}
 | 
						|
		copy(pk[:], v)
 | 
						|
		c.config._allowedPublicKeys[pk] = struct{}{}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type SetupOption interface {
 | 
						|
	isSetupOption()
 | 
						|
}
 | 
						|
 | 
						|
type ListenAddress string
 | 
						|
type Peer struct {
 | 
						|
	URI             string
 | 
						|
	SourceInterface string
 | 
						|
}
 | 
						|
type NodeInfo map[string]interface{}
 | 
						|
type NodeInfoPrivacy bool
 | 
						|
type IfName string
 | 
						|
type IfMTU uint16
 | 
						|
type AllowedPublicKey ed25519.PublicKey
 | 
						|
 | 
						|
func (a ListenAddress) isSetupOption()    {}
 | 
						|
func (a Peer) isSetupOption()             {}
 | 
						|
func (a NodeInfo) isSetupOption()         {}
 | 
						|
func (a NodeInfoPrivacy) isSetupOption()  {}
 | 
						|
func (a IfName) isSetupOption()           {}
 | 
						|
func (a IfMTU) isSetupOption()            {}
 | 
						|
func (a AllowedPublicKey) isSetupOption() {}
 |