code: func (pf *PortForwarder) listenOnPort(port *ForwardedPort) error {
  	var errors []error
  	failCounters := make(map[string]int, 2)
  	successCounters := make(map[string]int, 2)
  	for _, addr := range pf.addresses {
  		err := pf.listenOnPortAndAddress(port, addr.protocol, addr.address)
  		if err != nil {
  			errors = append(errors, err)
  			failCounters[addr.failureMode]++
  		} else {
  			successCounters[addr.failureMode]++
  		}
  	}
  	if successCounters["all"] == 0 && failCounters["all"] > 0 {
  		return fmt.Errorf("%s: %v", "Listeners failed to create with the following errors", errors)
  	}
  	if failCounters["any"] > 0 {
  		return fmt.Errorf("%s: %v", "Listeners failed to create with the following errors", errors)
  	}
  	return nil
  }
docs: // listenOnPort delegates listener creation and waits for connections on requested bind addresses.
  // An error is raised based on address groups (default and localhost) and their failure modes