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

Method Dial

tailnet/controllers_test.go:1291–1325  ·  view source on GitHub ↗
(_ context.Context, _ tailnet.ResumeTokenController)

Source from the content-addressed store, hash-verified

1289}
1290
1291func (p *pipeDialer) Dial(_ context.Context, _ tailnet.ResumeTokenController) (tailnet.ControlProtocolClients, error) {
1292 s, c := net.Pipe()
1293 p.t.Cleanup(func() {
1294 _ = s.Close()
1295 _ = c.Close()
1296 })
1297 go func() {
1298 err := p.svc.ServeConnV2(p.ctx, s, p.streamID)
1299 p.logger.Debug(p.ctx, "piped tailnet service complete", slog.Error(err))
1300 }()
1301 client, err := tailnet.NewDRPCClient(c, p.logger)
1302 if err != nil {
1303 _ = c.Close()
1304 return tailnet.ControlProtocolClients{}, err
1305 }
1306 coord, err := client.Coordinate(context.Background())
1307 if err != nil {
1308 _ = c.Close()
1309 return tailnet.ControlProtocolClients{}, err
1310 }
1311
1312 derps := &tailnet.DERPFromDRPCWrapper{}
1313 derps.Client, err = client.StreamDERPMaps(context.Background(), &proto.StreamDERPMapsRequest{})
1314 if err != nil {
1315 _ = c.Close()
1316 return tailnet.ControlProtocolClients{}, err
1317 }
1318 return tailnet.ControlProtocolClients{
1319 Closer: client.DRPCConn(),
1320 Coordinator: coord,
1321 DERP: derps,
1322 ResumeToken: client,
1323 Telemetry: client,
1324 }, nil
1325}
1326
1327// errTimeoutOnFake is the error we send when fakes fail to send calls or receive responses before
1328// their context times out. We don't want to send the context error since that often doesn't trigger

Callers

nothing calls this directly

Calls 8

NewDRPCClientFunction · 0.92
ServeConnV2Method · 0.80
CleanupMethod · 0.65
CloseMethod · 0.65
CoordinateMethod · 0.65
StreamDERPMapsMethod · 0.65
DRPCConnMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected