proxyman.go 962 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Package proxyman defines applications for manageing inbound and outbound proxies.
  2. package proxyman
  3. import (
  4. "v2ray.com/core/app"
  5. "v2ray.com/core/proxy"
  6. )
  7. type InboundHandlerManager interface {
  8. GetHandler(tag string) (proxy.InboundHandler, int)
  9. }
  10. type InboundHandler interface {
  11. }
  12. type OutboundHandlerManager interface {
  13. GetHandler(tag string) proxy.OutboundHandler
  14. GetDefaultHandler() proxy.OutboundHandler
  15. SetDefaultHandler(handler proxy.OutboundHandler) error
  16. SetHandler(tag string, handler proxy.OutboundHandler) error
  17. }
  18. func InboundHandlerManagerFromSpace(space app.Space) InboundHandlerManager {
  19. app := space.GetApplication((*InboundHandlerManager)(nil))
  20. if app == nil {
  21. return nil
  22. }
  23. return app.(InboundHandlerManager)
  24. }
  25. func OutboundHandlerManagerFromSpace(space app.Space) OutboundHandlerManager {
  26. app := space.GetApplication((*OutboundHandlerManager)(nil))
  27. if app == nil {
  28. return nil
  29. }
  30. return app.(OutboundHandlerManager)
  31. }