code: func (pool *serverPool) dial(entry *poolEntry, knownSelected bool) {
  	if pool.server == nil || entry.state != psNotConnected {
  		return
  	}
  	entry.state = psDialed
  	entry.knownSelected = knownSelected
  	if knownSelected {
  		pool.knownSelected++
  	} else {
  		pool.newSelected++
  	}
  	addr := entry.addrSelect.choose().(*poolEntryAddress)
  	log.Debug("Dialing new peer", "lesaddr", entry.node.ID().String()+"@"+addr.strKey(), "set", len(entry.addr), "known", knownSelected)
  	entry.dialed = addr
  	go func() {
  		pool.server.AddPeer(entry.node)
  		select {
  		case <-pool.quit:
  		case <-time.After(dialTimeout):
  			select {
  			case <-pool.quit:
  			case pool.timeout <- entry:
  			}
  		}
  	}()
  }
docs: // dial initiates a new connection