handler.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package adapter
  2. import (
  3. "context"
  4. "net"
  5. "github.com/sagernet/sing/common/buf"
  6. E "github.com/sagernet/sing/common/exceptions"
  7. M "github.com/sagernet/sing/common/metadata"
  8. N "github.com/sagernet/sing/common/network"
  9. )
  10. // Deprecated
  11. type ConnectionHandler interface {
  12. NewConnection(ctx context.Context, conn net.Conn, metadata InboundContext) error
  13. }
  14. type ConnectionHandlerEx interface {
  15. NewConnectionEx(ctx context.Context, conn net.Conn, metadata InboundContext, onClose N.CloseHandlerFunc)
  16. }
  17. // Deprecated: use PacketHandlerEx instead
  18. type PacketHandler interface {
  19. NewPacket(ctx context.Context, conn N.PacketConn, buffer *buf.Buffer, metadata InboundContext) error
  20. }
  21. type PacketHandlerEx interface {
  22. NewPacketEx(buffer *buf.Buffer, source M.Socksaddr)
  23. }
  24. // Deprecated: use OOBPacketHandlerEx instead
  25. type OOBPacketHandler interface {
  26. NewPacket(ctx context.Context, conn N.PacketConn, buffer *buf.Buffer, oob []byte, metadata InboundContext) error
  27. }
  28. type OOBPacketHandlerEx interface {
  29. NewPacketEx(buffer *buf.Buffer, oob []byte, source M.Socksaddr)
  30. }
  31. // Deprecated
  32. type PacketConnectionHandler interface {
  33. NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata InboundContext) error
  34. }
  35. type PacketConnectionHandlerEx interface {
  36. NewPacketConnectionEx(ctx context.Context, conn N.PacketConn, metadata InboundContext, onClose N.CloseHandlerFunc)
  37. }
  38. // Deprecated: use TCPConnectionHandlerEx instead
  39. //
  40. //nolint:staticcheck
  41. type UpstreamHandlerAdapter interface {
  42. N.TCPConnectionHandler
  43. N.UDPConnectionHandler
  44. E.Handler
  45. }
  46. type UpstreamHandlerAdapterEx interface {
  47. N.TCPConnectionHandlerEx
  48. N.UDPConnectionHandlerEx
  49. }