code: func parseOptions(dsn string) (server string, opts serverOptions, err error) {
  	p, err := url.Parse(dsn)
  	if err != nil {
  		return "", serverOptions{}, err
  	}
  
  	// Grab known options from the query string
  	q := p.Query()
  	opts.id = q.Get("id")
  	opts.insecure = opts.id != "" || queryBool(q, "insecure")
  	opts.noAnnounce = queryBool(q, "noannounce")
  	opts.noLookup = queryBool(q, "nolookup")
  
  	// Check for disallowed combinations
  	if p.Scheme == "http" {
  		if !opts.insecure {
  			return "", serverOptions{}, errors.New("http without insecure not supported")
  		}
  		if !opts.noAnnounce {
  			return "", serverOptions{}, errors.New("http without noannounce not supported")
  		}
  	} else if p.Scheme != "https" {
  		return "", serverOptions{}, errors.New("unsupported scheme " + p.Scheme)
  	}
  
  	// Remove the query string
  	p.RawQuery = ""
  	server = p.String()
  
  	return
  }
docs: // parseOptions parses and strips away any ?query=val options, setting the
  // corresponding field in the serverOptions struct. Unknown query options are
  // ignored and removed.