diff options
Diffstat (limited to 'contrib/external-tests/go/main.go')
-rw-r--r-- | contrib/external-tests/go/main.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/external-tests/go/main.go b/contrib/external-tests/go/main.go index 013a1a9..435063d 100644 --- a/contrib/external-tests/go/main.go +++ b/contrib/external-tests/go/main.go @@ -172,4 +172,16 @@ func main() { if echo.ID != 921 || echo.Seq != 438 || string(echo.Data) != "WireGuard" { log.Fatalf("incorrect echo response: %#v", echo) } + + keepalivePacket := make([]byte, 16) + keepalivePacket[0] = 4 // Type: Data + keepalivePacket[1] = 0 // Reserved + keepalivePacket[2] = 0 // Reserved + keepalivePacket[3] = 0 // Reserved + binary.LittleEndian.PutUint32(keepalivePacket[4:], theirIndex) + binary.LittleEndian.PutUint64(keepalivePacket[8:], 1) // Nonce + keepalivePacket = sendCipher.Encrypt(keepalivePacket, nil, nil) // Empty data means keepalive + if _, err := conn.Write(keepalivePacket); err != nil { + log.Fatalf("error writing keepalive message: %s", err) + } } |