golang.org/x/net@v0.25.1-0.20240516223405-c87a5b62e243/internal/socket/error_unix.go (about)

     1  // Copyright 2017 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
     6  
     7  package socket
     8  
     9  import "syscall"
    10  
    11  var (
    12  	errEAGAIN error = syscall.EAGAIN
    13  	errEINVAL error = syscall.EINVAL
    14  	errENOENT error = syscall.ENOENT
    15  )
    16  
    17  // errnoErr returns common boxed Errno values, to prevent allocations
    18  // at runtime.
    19  func errnoErr(errno syscall.Errno) error {
    20  	switch errno {
    21  	case 0:
    22  		return nil
    23  	case syscall.EAGAIN:
    24  		return errEAGAIN
    25  	case syscall.EINVAL:
    26  		return errEINVAL
    27  	case syscall.ENOENT:
    28  		return errENOENT
    29  	}
    30  	return errno
    31  }