mirror of
https://github.com/aler9/gortsplib
synced 2025-12-24 13:38:08 +08:00
32 lines
472 B
Go
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
|
|
}
|