MCPcopy Index your code
hub / github.com/coder/coder / freeUDPPort

Function freeUDPPort

coderd/devtunnel/tunnel_test.go:147–170  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

145}
146
147func freeUDPPort(t *testing.T) uint16 {
148 t.Helper()
149
150 l, err := net.ListenUDP("udp", &net.UDPAddr{
151 IP: net.ParseIP("127.0.0.1"),
152 Port: 0,
153 })
154 require.NoError(t, err, "listen on random UDP port")
155
156 localAddr := l.LocalAddr()
157 require.NotNil(t, localAddr, "local address is nil")
158 _, port, err := net.SplitHostPort(localAddr.String())
159 require.NoError(t, err, "split host port")
160
161 portUint, err := strconv.ParseUint(port, 10, 16)
162 require.NoError(t, err, "parse port")
163
164 // This is prone to races, but since we have to tell wireguard to create the
165 // listener and can't pass in a net.Listener, we have to do this.
166 err = l.Close()
167 require.NoError(t, err, "close UDP listener")
168
169 return uint16(portUint)
170}
171
172type tunnelServer struct {
173 api *tunneld.API

Callers 1

newTunnelServerFunction · 0.85

Calls 4

HelperMethod · 0.65
CloseMethod · 0.65
LocalAddrMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected