50 lines
1.0 KiB
Go
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)
|
|
}
|