diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-03-25 10:50:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-25 10:50:01 -0700 |
commit | db356748738762c31a036c179d23488d7978dabf (patch) | |
tree | a01d257cba3349b47ff743b11eaa7f496bac991b /pkg/specgen | |
parent | 24581d8760691af1657c4f890d42ebd76f5e85c4 (diff) | |
parent | 4ab8a6f67eb9de0de40d478cb0cbec05b1b725c0 (diff) | |
download | podman-db356748738762c31a036c179d23488d7978dabf.tar.gz podman-db356748738762c31a036c179d23488d7978dabf.tar.bz2 podman-db356748738762c31a036c179d23488d7978dabf.zip |
Merge pull request #9781 from baude/addqemu
introduce podman machine
Diffstat (limited to 'pkg/specgen')
-rw-r--r-- | pkg/specgen/generate/ports.go | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/pkg/specgen/generate/ports.go b/pkg/specgen/generate/ports.go index 6cf83ed81..678e36a70 100644 --- a/pkg/specgen/generate/ports.go +++ b/pkg/specgen/generate/ports.go @@ -6,6 +6,8 @@ import ( "strconv" "strings" + "github.com/containers/podman/v3/utils" + "github.com/containers/podman/v3/libpod/image" "github.com/containers/podman/v3/pkg/specgen" "github.com/cri-o/ocicni/pkg/ocicni" @@ -218,7 +220,7 @@ func parsePortMapping(portMappings []specgen.PortMapping) ([]ocicni.PortMapping, // Only get a random candidate for single entries or the start // of a range. Otherwise we just increment the candidate. if !tmp.isInRange || tmp.startOfRange { - candidate, err = getRandomPort() + candidate, err = utils.GetRandomPort() if err != nil { return nil, nil, nil, errors.Wrapf(err, "error getting candidate host port for container port %d", p.ContainerPort) } @@ -344,7 +346,7 @@ func createPortMappings(ctx context.Context, s *specgen.SpecGenerator, img *imag for hostPort == 0 && tries > 0 { // We can't select a specific protocol, which is // unfortunate for the UDP case. - candidate, err := getRandomPort() + candidate, err := utils.GetRandomPort() if err != nil { return nil, err } @@ -419,21 +421,3 @@ func checkProtocol(protocol string, allowSCTP bool) ([]string, error) { return finalProto, nil } - -// Find a random, open port on the host -func getRandomPort() (int, error) { - l, err := net.Listen("tcp", ":0") - if err != nil { - return 0, errors.Wrapf(err, "unable to get free TCP port") - } - defer l.Close() - _, randomPort, err := net.SplitHostPort(l.Addr().String()) - if err != nil { - return 0, errors.Wrapf(err, "unable to determine free port") - } - rp, err := strconv.Atoi(randomPort) - if err != nil { - return 0, errors.Wrapf(err, "unable to convert random port to int") - } - return rp, nil -} |