code: func (c *Config) CheckAndSetDefaults() error {
  	if c.Listener == nil {
  		return trace.BadParameter("missing parameter Listener")
  	}
  	if c.Context == nil {
  		c.Context = context.TODO()
  	}
  	if c.ReadDeadline == 0 {
  		c.ReadDeadline = defaults.ReadHeadersTimeout
  	}
  	if c.Clock == nil {
  		c.Clock = clockwork.NewRealClock()
  	}
  	return nil
  }
docs: // CheckAndSetDefaults verifies configuration and sets defaults