Files
gortsplib/pkg/readbuffer/read_buffer_lin.go
2025-08-12 12:45:06 +02:00

32 lines
472 B
Go

//go:build linux
package readbuffer
import (
"syscall"
)
// ReadBuffer returns the read buffer size.
func ReadBuffer(pc PacketConn) (int, error) {
rawConn, err := pc.SyscallConn()
if err != nil {
panic(err)
}
var v int
var err2 error
err = rawConn.Control(func(fd uintptr) {
v, err2 = syscall.GetsockoptInt(int(fd), syscall.SOL_SOCKET, syscall.SO_RCVBUF)
})
if err != nil {
return 0, err
}
if err2 != nil {
return 0, err2
}
return v / 2, nil
}