code: func setup(c *caddy.Controller) error {
  	var max int
  
  	for c.Next() {
  		val := c.Val()
  		switch val {
  		case "requestlimit":
  			if !c.NextArg() {
  				fmt.Println("Missing limit argument for requestlimit")
  				return c.ArgErr()
  			} else {
  				val := c.Val()
  				if val != "" {
  					max64, err := strconv.ParseInt(c.Val(), 10, 32)
  					if err != nil {
  						msg := fmt.Sprintf("Cannot parse request limit value %s", val)
  						return errors.New(msg)
  					} else {
  						max = int(max64)
  						fmt.Printf("Setting up requestlimit with a limit of %d\n", max)
  						break
  					}
  				}
  			}
  		default:
  			return c.ArgErr()
  		}
  	}
  
  	httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
  		return RequestLimitHandler{Next: next, sem: make(chan int, max)}
  	})
  
  	return nil
  }
docs: // Setup the rate limiter with the configuration in the Caddyfile