relay packets

This commit is contained in:
2026-07-21 22:21:34 +02:00
parent 7ca7089476
commit 0a968b3910
3 changed files with 75 additions and 39 deletions

View File

@@ -2,6 +2,7 @@ package main
import (
"encoding/binary"
"encoding/hex"
"log"
"net"
"os"
@@ -94,15 +95,20 @@ func receivePacket(pkt []byte) {
switch pktType {
case shared.RESP_REGISTER:
internalIP = net.IP(pkt[4:])
log.Println("Received IP from the server:", internalIP.String())
initInterface()
log.Println("got assigned IP by the server:", internalIP.String())
setupInterface()
go sendPackets()
case shared.RESP_DATA:
log.Println("received pkt:", hex.EncodeToString(pkt[4:]))
if _, err := iface.Write(pkt[4:]); err != nil {
log.Println(err)
}
default:
log.Println("unknown packet type")
}
}
func initInterface() {
func setupInterface() {
config := water.Config{DeviceType: water.TAP}
config.Name = IFACE_NAME