main.go 563 B

1234567891011121314151617181920212223242526272829303132
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/hashicorp/go-plugin"
  5. "github.com/sftpgo/sdk/plugin/ipfilter"
  6. )
  7. type Filter struct{}
  8. func (f *Filter) CheckIP(ip, protocol string) error {
  9. if ip == "192.168.1.12" {
  10. return fmt.Errorf("ip %q is not allowed", ip)
  11. }
  12. return nil
  13. }
  14. func (f *Filter) Reload() error {
  15. return nil
  16. }
  17. func main() {
  18. plugin.Serve(&plugin.ServeConfig{
  19. HandshakeConfig: ipfilter.Handshake,
  20. Plugins: map[string]plugin.Plugin{
  21. ipfilter.PluginName: &ipfilter.Plugin{Impl: &Filter{}},
  22. },
  23. GRPCServer: plugin.DefaultGRPCServer,
  24. })
  25. }