vppn/peer/interfaces.go
2025-02-10 19:11:30 +01:00

50 lines
1.0 KiB
Go

package peer
import (
"io"
"net"
"net/netip"
)
type UDPConn interface {
ReadFromUDPAddrPort(b []byte) (n int, addr netip.AddrPort, err error)
WriteToUDPAddrPort([]byte, netip.AddrPort) (int, error)
WriteToUDP([]byte, *net.UDPAddr) (int, error)
}
type ifWriter io.Writer
type udpReader interface {
ReadFromUDPAddrPort(b []byte) (n int, addr netip.AddrPort, err error)
}
type udpWriter interface {
WriteToUDPAddrPort([]byte, netip.AddrPort) (int, error)
}
type mcUDPWriter interface {
WriteToUDP([]byte, *net.UDPAddr) (int, error)
}
type Marshaller interface {
Marshal([]byte) []byte
}
type dataPacketSender interface {
SendDataPacket(pkt []byte, peer *RemotePeer)
RelayDataPacket(pkt []byte, peer, relay *RemotePeer)
}
type controlPacketSender interface {
SendControlPacket(pkt Marshaller, peer *RemotePeer)
RelayControlPacket(pkt Marshaller, peer, relay *RemotePeer)
}
type encryptedPacketSender interface {
SendEncryptedDataPacket(pkt []byte, peer *RemotePeer)
}
type controlMsgHandler interface {
HandleControlMsg(pkt any)
}