code: func ParseHostPortAddr(hostport string, defaultPort int) (*NetAddr, error) {
  	addr, err := ParseAddr(hostport)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	// port is required but not set
  	if defaultPort == -1 && addr.Addr == addr.Host() {
  		return nil, trace.BadParameter("missing port in address %q", hostport)
  	}
  	addr.Addr = fmt.Sprintf("%v:%v", addr.Host(), addr.Port(defaultPort))
  	return addr, nil
  }
docs: // ParseHostPortAddr takes strings like "host:port" and returns
  // *NetAddr or an error
  //
  // If defaultPort == -1 it expects 'hostport' string to have it