1// Copyright (c) The Thanos Authors.
2// Licensed under the Apache License 2.0.
3
4package e2eutil
5
6import "net"
7
8// FreePort returns port that is free now.
9func FreePort() (int, error) {
10	addr, err := net.ResolveTCPAddr("tcp", ":0")
11	if err != nil {
12		return 0, err
13	}
14
15	l, err := net.ListenTCP("tcp", addr)
16	if err != nil {
17		return 0, err
18	}
19	return l.Addr().(*net.TCPAddr).Port, l.Close()
20}
21