2026-02-02 16:52:34 +08:00
|
|
|
package xicmp
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"net"
|
2026-04-12 03:37:32 +08:00
|
|
|
|
|
|
|
|
"github.com/xtls/xray-core/common/errors"
|
|
|
|
|
"github.com/xtls/xray-core/transport/internet"
|
|
|
|
|
"github.com/xtls/xray-core/transport/internet/hysteria/udphop"
|
2026-02-02 16:52:34 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (c *Config) UDP() {
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-07 23:42:18 +08:00
|
|
|
func (c *Config) WrapPacketConnClient(raw net.PacketConn, level int, levelCount int) (net.PacketConn, error) {
|
2026-04-12 03:37:32 +08:00
|
|
|
_, ok1 := raw.(*internet.FakePacketConn)
|
|
|
|
|
_, ok2 := raw.(*udphop.UdpHopPacketConn)
|
|
|
|
|
if level != 0 || ok1 || ok2 {
|
|
|
|
|
return nil, errors.New("xicmp requires being at the outermost level")
|
|
|
|
|
}
|
|
|
|
|
return NewConnClient(c, raw)
|
2026-02-02 16:52:34 +08:00
|
|
|
}
|
|
|
|
|
|
2026-03-07 23:42:18 +08:00
|
|
|
func (c *Config) WrapPacketConnServer(raw net.PacketConn, level int, levelCount int) (net.PacketConn, error) {
|
2026-04-12 03:37:32 +08:00
|
|
|
if level != 0 {
|
|
|
|
|
return nil, errors.New("xicmp requires being at the outermost level")
|
|
|
|
|
}
|
|
|
|
|
return NewConnServer(c, raw)
|
2026-02-02 16:52:34 +08:00
|
|
|
}
|