optimize(udp)/fix(quicSniffer): optimize performance of udp and fix a potential panic of quic (#301)

This commit is contained in:
mzz
2023-11-15 14:32:57 +08:00
committed by GitHub
parent dedc716413
commit 25c047a766
33 changed files with 968 additions and 466 deletions

View File

@ -72,6 +72,19 @@ func TproxyControl(c syscall.RawConn) error {
return sockOptErr
}
func TransparentControl(c syscall.RawConn) error {
var sockOptErr error
controlErr := c.Control(func(fd uintptr) {
if err := syscall.SetsockoptInt(int(fd), syscall.SOL_IP, syscall.IP_TRANSPARENT, 1); err != nil {
sockOptErr = fmt.Errorf("error setting IP_TRANSPARENT socket option: %w", err)
}
})
if controlErr != nil {
return fmt.Errorf("error invoking socket control function: %w", controlErr)
}
return sockOptErr
}
func BindControl(c syscall.RawConn, lAddrPort netip.AddrPort) error {
var sockOptErr error
controlErr := c.Control(func(fd uintptr) {