// Copyright 2011 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.

//go:build unix

package net

import (
	
	
	
)

const _SO_TYPE = syscall.SO_TYPE

func dupFileSocket( *os.File) (int, error) {
	, ,  := poll.DupCloseOnExec(int(.Fd()))
	if  != nil {
		if  != "" {
			 = os.NewSyscallError(, )
		}
		return -1, 
	}
	if  := syscall.SetNonblock(, true);  != nil {
		poll.CloseFunc()
		return -1, os.NewSyscallError("setnonblock", )
	}
	return , nil
}