mirror of
https://github.com/amnezia-vpn/amneziawg-go.git
synced 2025-04-16 22:16:55 +02:00
udptlspipe tests
Signed-off-by: Iurii Egorov <ye@amnezia.org>
This commit is contained in:
parent
28bf1e21f0
commit
253dbf58ef
11 changed files with 31 additions and 25 deletions
|
@ -101,6 +101,7 @@ type Device struct {
|
|||
|
||||
udptlspipe *pipe.Server
|
||||
serverMode bool
|
||||
udpMode bool
|
||||
}
|
||||
|
||||
type aSecCfgType struct {
|
||||
|
@ -307,8 +308,9 @@ func (device *Device) SetPrivateKey(sk NoisePrivateKey) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func NewDevice(tunDevice tun.Device, bind conn.Bind, logger *Logger) *Device {
|
||||
func NewDevice(tunDevice tun.Device, bind conn.Bind, logger *Logger, udp bool) *Device {
|
||||
device := new(Device)
|
||||
device.udpMode = udp
|
||||
device.serverMode = false
|
||||
device.state.state.Store(uint32(deviceStateDown))
|
||||
device.closed = make(chan struct{})
|
||||
|
@ -557,7 +559,7 @@ func (device *Device) BindUpdate() error {
|
|||
device.log.Verbosef("UDP bind has been updated")
|
||||
device.log.Verbosef(netc.bind.GetOffloadInfo())
|
||||
|
||||
if device.serverMode {
|
||||
if !device.udpMode && device.serverMode {
|
||||
srv, err := device.StartUDPTLSPipe(true, "0.0.0.0:443", fmt.Sprintf("127.0.0.1:%d", netc.port))
|
||||
if err != nil {
|
||||
netc.bind.Close()
|
||||
|
|
|
@ -237,7 +237,7 @@ func genTestPair(
|
|||
if _, ok := tb.(*testing.B); ok && !testing.Verbose() {
|
||||
level = LogLevelError
|
||||
}
|
||||
p.dev = NewDevice(p.tun.TUN(), binds[i], NewLogger(level, fmt.Sprintf("dev%d: ", i)))
|
||||
p.dev = NewDevice(p.tun.TUN(), binds[i], NewLogger(level, fmt.Sprintf("dev%d: ", i)), true)
|
||||
if err := p.dev.IpcSet(cfg[i]); err != nil {
|
||||
tb.Errorf("failed to configure device %d: %v", i, err)
|
||||
p.dev.Close()
|
||||
|
|
|
@ -39,7 +39,7 @@ func randDevice(t *testing.T) *Device {
|
|||
}
|
||||
tun := tuntest.NewChannelTUN()
|
||||
logger := NewLogger(LogLevelError, "")
|
||||
device := NewDevice(tun.TUN(), conn.NewDefaultBind(), logger)
|
||||
device := NewDevice(tun.TUN(), conn.NewDefaultBind(), logger, true)
|
||||
device.SetPrivateKey(sk)
|
||||
return device
|
||||
}
|
||||
|
|
|
@ -190,7 +190,7 @@ func (peer *Peer) Start() {
|
|||
device := peer.device
|
||||
device.log.Verbosef("%v - Starting", peer)
|
||||
|
||||
if !device.serverMode {
|
||||
if !device.udpMode && !device.serverMode {
|
||||
device.log.Verbosef("Starting udptlspipe")
|
||||
|
||||
if device.udptlspipe != nil {
|
||||
|
|
|
@ -279,12 +279,14 @@ func (device *Device) RoutineDecryption(id int) {
|
|||
elem.counter = binary.LittleEndian.Uint64(counter)
|
||||
// copy counter to nonce
|
||||
binary.LittleEndian.PutUint64(nonce[0x4:0xc], elem.counter)
|
||||
elem.packet, err = elem.keypair.receive.Open(
|
||||
content[:0],
|
||||
nonce[:],
|
||||
content,
|
||||
nil,
|
||||
)
|
||||
if device.udpMode {
|
||||
elem.packet, err = elem.keypair.receive.Open(
|
||||
content[:0],
|
||||
nonce[:],
|
||||
content,
|
||||
nil,
|
||||
)
|
||||
}
|
||||
if err != nil {
|
||||
elem.packet = nil
|
||||
}
|
||||
|
|
|
@ -556,12 +556,14 @@ func (device *Device) RoutineEncryption(id int) {
|
|||
// encrypt content and release to consumer
|
||||
|
||||
binary.LittleEndian.PutUint64(nonce[4:], elem.nonce)
|
||||
elem.packet = elem.keypair.send.Seal(
|
||||
header,
|
||||
nonce[:],
|
||||
elem.packet,
|
||||
nil,
|
||||
)
|
||||
if device.udpMode {
|
||||
elem.packet = elem.keypair.send.Seal(
|
||||
header,
|
||||
nonce[:],
|
||||
elem.packet,
|
||||
nil,
|
||||
)
|
||||
}
|
||||
}
|
||||
elemsContainer.Unlock()
|
||||
}
|
||||
|
|
8
main.go
8
main.go
|
@ -66,7 +66,7 @@ func main() {
|
|||
warning()
|
||||
|
||||
var foreground = false
|
||||
//var utp = false
|
||||
var udp = false
|
||||
var interfaceName = ""
|
||||
if len(os.Args) < 2 || len(os.Args) > 4 {
|
||||
printUsage()
|
||||
|
@ -78,8 +78,8 @@ func main() {
|
|||
case "-f", "--foreground":
|
||||
foreground = true
|
||||
|
||||
//case "-u", "--udptlspipe":
|
||||
//utp = true
|
||||
case "-u", "--udp":
|
||||
udp = true
|
||||
|
||||
default:
|
||||
interfaceName = arg
|
||||
|
@ -222,7 +222,7 @@ func main() {
|
|||
return
|
||||
}
|
||||
|
||||
device := device.NewDevice(tdev, conn.NewDefaultBind(), logger)
|
||||
device := device.NewDevice(tdev, conn.NewDefaultBind(), logger, udp)
|
||||
|
||||
logger.Verbosef("Device started")
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ func main() {
|
|||
os.Exit(ExitSetupFailed)
|
||||
}
|
||||
|
||||
device := device.NewDevice(tun, conn.NewDefaultBind(), logger)
|
||||
device := device.NewDevice(tun, conn.NewDefaultBind(), logger, true)
|
||||
err = device.Up()
|
||||
if err != nil {
|
||||
logger.Errorf("Failed to bring up device: %v", err)
|
||||
|
|
|
@ -26,7 +26,7 @@ func main() {
|
|||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""))
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""), true)
|
||||
err = dev.IpcSet(`private_key=087ec6e14bbed210e7215cdc73468dfa23f080a1bfb8665b2fd809bd99d28379
|
||||
public_key=c4c8e984c5322c8184c72265b92b250fdb63688705f504ba003c88f03393cf28
|
||||
allowed_ip=0.0.0.0/0
|
||||
|
|
|
@ -28,7 +28,7 @@ func main() {
|
|||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""))
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""), true)
|
||||
dev.IpcSet(`private_key=003ed5d73b55806c30de3f8a7bdab38af13539220533055e635690b8b87ad641
|
||||
listen_port=58120
|
||||
public_key=f928d4f6c1b86c12f2562c10b07c555c5c57fd00f59e90c8d8d88767271cbf7c
|
||||
|
|
|
@ -30,7 +30,7 @@ func main() {
|
|||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""))
|
||||
dev := device.NewDevice(tun, conn.NewDefaultBind(), device.NewLogger(device.LogLevelVerbose, ""), true)
|
||||
dev.IpcSet(`private_key=a8dac1d8a70a751f0f699fb14ba1cff7b79cf4fbd8f09f44c6e6a90d0369604f
|
||||
public_key=25123c5dcd3328ff645e4f2a3fce0d754400d3887a0cb7c56f0267e20fbf3c5b
|
||||
endpoint=163.172.161.0:12912
|
||||
|
|
Loading…
Add table
Reference in a new issue