| 676 | } |
| 677 | |
| 678 | func (d *checkPoolUpdatedDialer) Dial(network, address string) (net.Conn, error) { |
| 679 | doReal := false |
| 680 | if d.first { |
| 681 | d.first = false |
| 682 | doReal = true |
| 683 | } else if d.final { |
| 684 | d.ra++ |
| 685 | return nil, errors.New("On purpose") |
| 686 | } else { |
| 687 | d.ra++ |
| 688 | if d.ra == 15 { |
| 689 | d.ra = 0 |
| 690 | doReal = true |
| 691 | } |
| 692 | } |
| 693 | if doReal { |
| 694 | c, err := net.Dial(network, address) |
| 695 | if err != nil { |
| 696 | return nil, err |
| 697 | } |
| 698 | d.conn = c |
| 699 | return c, nil |
| 700 | } |
| 701 | return nil, errors.New("On purpose") |
| 702 | } |
| 703 | |
| 704 | func TestServerPoolUpdatedWhenRouteGoesAway(t *testing.T) { |
| 705 | if err := serverVersionAtLeast(1, 0, 7); err != nil { |