()
| 498 | } |
| 499 | |
| 500 | func (a *csAttempt) getTransport() error { |
| 501 | cs := a.cs |
| 502 | |
| 503 | pickInfo := balancer.PickInfo{Ctx: a.ctx, FullMethodName: cs.callHdr.Method} |
| 504 | pick, err := cs.cc.pickerWrapper.pick(a.ctx, cs.callInfo.failFast, pickInfo) |
| 505 | a.transport, a.pickResult = pick.transport, pick.result |
| 506 | if err != nil { |
| 507 | if de, ok := err.(dropError); ok { |
| 508 | err = de.error |
| 509 | a.drop = true |
| 510 | } |
| 511 | return err |
| 512 | } |
| 513 | if a.trInfo != nil { |
| 514 | a.trInfo.firstLine.SetRemoteAddr(a.transport.Peer().Addr) |
| 515 | } |
| 516 | if pick.blocked && a.statsHandler != nil { |
| 517 | a.statsHandler.HandleRPC(a.ctx, &stats.DelayedPickComplete{}) |
| 518 | } |
| 519 | return nil |
| 520 | } |
| 521 | |
| 522 | func (a *csAttempt) newStream() error { |
| 523 | cs := a.cs |
no test coverage detected