mirror of
https://github.com/cmz0228/hysteria-dev.git
synced 2025-06-08 05:19:53 +00:00

it seems like syscall.Syscall6(SYS_SOCKETCALL, SYS_GETSOCKOPT, ...) always failed with EFAULT. so we call syscall.socketcall() instead. close: #583
18 lines
344 B
Go
18 lines
344 B
Go
//go:build !386
|
|
// +build !386
|
|
|
|
package redirect
|
|
|
|
import (
|
|
"syscall"
|
|
"unsafe"
|
|
)
|
|
|
|
func getsockopt(s uintptr, level uintptr, name uintptr, val unsafe.Pointer, vallen *uint32) (err error) {
|
|
_, _, e := syscall.Syscall6(syscall.SYS_GETSOCKOPT, s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
|
|
if e != 0 {
|
|
err = e
|
|
}
|
|
return
|
|
}
|