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

Method StartClient

tailnet/test/integration/integration.go:405–449  ·  view source on GitHub ↗
(t *testing.T, logger slog.Logger, serverURL *url.URL, derpMap *tailcfg.DERPMap, me, peer Client)

Source from the content-addressed store, hash-verified

403}
404
405func (b BasicClientStarter) StartClient(t *testing.T, logger slog.Logger, serverURL *url.URL, derpMap *tailcfg.DERPMap, me, peer Client) *tailnet.Conn {
406 var hook capture.Callback
407 if b.LogPackets {
408 pktLogger := packetLogger{logger}
409 hook = pktLogger.LogPacket
410 }
411 conn := startClientOptions(t, logger, serverURL, me, peer, &tailnet.Options{
412 Addresses: []netip.Prefix{tailnet.TailscaleServicePrefix.PrefixFromUUID(me.ID)},
413 DERPMap: derpMap,
414 BlockEndpoints: b.BlockEndpoints,
415 Logger: logger,
416 DERPForceWebSockets: b.DERPForceWebsockets,
417 ListenPort: me.ListenPort,
418 // These tests don't have internet connection, so we need to force
419 // magicsock to do anything.
420 ForceNetworkUp: true,
421 CaptureHook: hook,
422 })
423
424 if b.Service != nil {
425 b.Service.StartService(t, logger, conn)
426 }
427
428 if b.WaitForConnection || b.WaitForDirect {
429 // Wait for connection to be established.
430 peerIP := tailnet.TailscaleServicePrefix.AddrFromUUID(peer.ID)
431 require.Eventually(t, func() bool {
432 t.Log("attempting ping to peer to judge direct connection")
433 ctx := testutil.Context(t, testutil.WaitShort)
434 _, p2p, pong, err := conn.Ping(ctx, peerIP)
435 if err != nil {
436 t.Logf("ping failed: %v", err)
437 return false
438 }
439 if !p2p && b.WaitForDirect {
440 t.Log("ping succeeded, but not direct yet")
441 return false
442 }
443 t.Logf("ping succeeded, p2p=%t, endpoint=%s", p2p, pong.Endpoint)
444 return true
445 }, testutil.WaitLong, testutil.IntervalMedium)
446 }
447
448 return conn
449}
450
451const EchoPort = 2381
452

Callers

nothing calls this directly

Calls 8

ContextFunction · 0.92
startClientOptionsFunction · 0.85
PrefixFromUUIDMethod · 0.80
AddrFromUUIDMethod · 0.80
LogMethod · 0.80
StartServiceMethod · 0.65
PingMethod · 0.65
LogfMethod · 0.65

Tested by

no test coverage detected