setup.go 690 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package geoip
  2. import (
  3. "github.com/mholt/caddy"
  4. "github.com/mholt/caddy/caddyhttp/httpserver"
  5. )
  6. // GeoIP Comments me
  7. type GeoIP struct {
  8. Next httpserver.Handler
  9. Config Config
  10. }
  11. // Init initializes the plugin
  12. func init() {
  13. caddy.RegisterPlugin("geoip", caddy.Plugin{
  14. ServerType: "http",
  15. Action: setup,
  16. })
  17. }
  18. func setup(c *caddy.Controller) error {
  19. ifconfig, err := parseConfig(c)
  20. if err != nil {
  21. return err
  22. }
  23. // Create new middleware
  24. newMiddleWare := func(next httpserver.Handler) httpserver.Handler {
  25. return &GeoIP{
  26. Next: next,
  27. Config: ifconfig,
  28. }
  29. }
  30. // Add middleware
  31. cfg := httpserver.GetConfig(c)
  32. cfg.AddMiddleware(newMiddleWare)
  33. return nil
  34. }