go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/connection/ssh/awsssmsession/available_port.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package awsssmsession 5 6 import "net" 7 8 // GetAvailablePort get an open port that is ready to use from the kernel 9 func GetAvailablePort() (int, error) { 10 // get a new address 11 addr, err := net.ResolveTCPAddr("tcp", "localhost:0") 12 if err != nil { 13 return 0, err 14 } 15 16 // try to listen on port 17 l, err := net.ListenTCP("tcp", addr) 18 if err != nil { 19 return 0, err 20 } 21 defer l.Close() 22 return l.Addr().(*net.TCPAddr).Port, nil 23 }