mirror of
https://github.com/soypat/lneto.git
synced 2026-09-10 08:39:30 +00:00
More IPv6 support and race condition fixes (#123)
* changes in preparation of wireguard impl * suggestions by @MDr164
This commit is contained in:
@@ -26,6 +26,8 @@ type Stack6 interface {
|
||||
Register6(node lneto.StackNode) error
|
||||
DialUDP6(conn *udp.Conn, localPort uint16, raddr [16]byte, rport uint16) error
|
||||
DialTCP6(conn *tcp.Conn, localPort uint16, raddr [16]byte, rport uint16, iss tcp.Value) error
|
||||
RegisterListenerTCP6(listener *tcp.Listener) error
|
||||
RegisterListenerUDP6(pktconn *udp.PacketConn) error
|
||||
IngressIPv6(ipframe []byte) error
|
||||
EgressIPv6(ipframe []byte) (int, error)
|
||||
IPv6Stack() lneto.StackNode
|
||||
@@ -119,6 +121,18 @@ func (s *stack6) EnableICMP6(enabled bool) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
// RegisterListenerTCP6 registers a passive TCP listener on the IPv6 stack so it
|
||||
// receives inbound IPv6 segments. Mirrors StackAsync.RegisterListenerTCP for IPv4.
|
||||
func (s *stack6) RegisterListenerTCP6(listener *tcp.Listener) error {
|
||||
return s.tcps6.RegisterMACFiltered(listener, nil)
|
||||
}
|
||||
|
||||
// RegisterListenerUDP6 registers a UDP packet connection on the IPv6 stack so it
|
||||
// receives inbound IPv6 datagrams. Mirrors StackAsync.RegisterListenerUDP for IPv4.
|
||||
func (s *stack6) RegisterListenerUDP6(pktconn *udp.PacketConn) error {
|
||||
return s.udps6.RegisterMACFiltered(pktconn, nil)
|
||||
}
|
||||
|
||||
func (s *stack6) IngressIPv6(ipFrame []byte) error {
|
||||
return s.ip6.Demux(ipFrame, 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user