mirror of
				https://git.zx2c4.com/wireguard-go
				synced 2025-10-31 03:46:20 +08:00 
			
		
		
		
	 6cecaf3157
			
		
	
	6cecaf3157
	
	
	
		
			
			To simulate a full interaction between two WireGuard instances without networking, using dummy instances of the interfaces
		
			
				
	
	
		
			49 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"math/rand"
 | |
| 	"net"
 | |
| )
 | |
| 
 | |
| type DummyEndpoint struct {
 | |
| 	src [16]byte
 | |
| 	dst [16]byte
 | |
| }
 | |
| 
 | |
| func CreateDummyEndpoint() (*DummyEndpoint, error) {
 | |
| 	var end DummyEndpoint
 | |
| 	if _, err := rand.Read(end.src[:]); err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	_, err := rand.Read(end.dst[:])
 | |
| 	return &end, err
 | |
| }
 | |
| 
 | |
| func (e *DummyEndpoint) ClearSrc() {}
 | |
| 
 | |
| func (e *DummyEndpoint) SrcToString() string {
 | |
| 	var addr net.UDPAddr
 | |
| 	addr.IP = e.SrcIP()
 | |
| 	addr.Port = 1000
 | |
| 	return addr.String()
 | |
| }
 | |
| 
 | |
| func (e *DummyEndpoint) DstToString() string {
 | |
| 	var addr net.UDPAddr
 | |
| 	addr.IP = e.DstIP()
 | |
| 	addr.Port = 1000
 | |
| 	return addr.String()
 | |
| }
 | |
| 
 | |
| func (e *DummyEndpoint) SrcToBytes() []byte {
 | |
| 	return e.src[:]
 | |
| }
 | |
| 
 | |
| func (e *DummyEndpoint) DstIP() net.IP {
 | |
| 	return e.dst[:]
 | |
| }
 | |
| 
 | |
| func (e *DummyEndpoint) SrcIP() net.IP {
 | |
| 	return e.src[:]
 | |
| }
 |