package net
import
func () ( int, int) {
var syscall.Utsname
if := syscall.Uname(&); != nil {
return
}
:= .Release
var [2]int
:= 0
:= 0
for , := range {
if >= '0' && <= '9' {
= ( * 10) + int(-'0')
} else {
[] =
++
if >= len() {
break
}
= 0
}
}
switch {
case 0:
return 0, 0
case 1:
return [0], 0
case 2:
return [0], [1]
}
return
}
func ( int) int {
, := kernelVersion()
:= 16
if > 4 || ( == 4 && >= 1) {
= 32
}
var uint = 1<< - 1
if uint() > {
= int()
}
return
}
func () int {
, := open("/proc/sys/net/core/somaxconn")
if != nil {
return syscall.SOMAXCONN
}
defer .close()
, := .readLine()
if ! {
return syscall.SOMAXCONN
}
:= getFields()
, , := dtoi([0])
if == 0 || ! {
return syscall.SOMAXCONN
}
if > 1<<16-1 {
return maxAckBacklog()
}
return
}