mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			647 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			647 B
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2009 The Go Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style
 | 
						|
// license that can be found in the LICENSE file.
 | 
						|
 | 
						|
package net
 | 
						|
 | 
						|
import "syscall"
 | 
						|
 | 
						|
func maxListenerBacklog() int {
 | 
						|
	fd, err := open("/proc/sys/net/core/somaxconn")
 | 
						|
	if err != nil {
 | 
						|
		return syscall.SOMAXCONN
 | 
						|
	}
 | 
						|
	defer fd.close()
 | 
						|
	l, ok := fd.readLine()
 | 
						|
	if !ok {
 | 
						|
		return syscall.SOMAXCONN
 | 
						|
	}
 | 
						|
	f := getFields(l)
 | 
						|
	n, _, ok := dtoi(f[0], 0)
 | 
						|
	if n == 0 || !ok {
 | 
						|
		return syscall.SOMAXCONN
 | 
						|
	}
 | 
						|
	// Linux stores the backlog in a uint16.
 | 
						|
	// Truncate number to avoid wrapping.
 | 
						|
	// See issue 5030.
 | 
						|
	if n > 1<<16-1 {
 | 
						|
		n = 1<<16 - 1
 | 
						|
	}
 | 
						|
	return n
 | 
						|
}
 |