packet_dispatcher.go 711 B

123456789101112131415161718192021222324
  1. package app
  2. import (
  3. v2net "github.com/v2ray/v2ray-core/common/net"
  4. "github.com/v2ray/v2ray-core/transport/ray"
  5. )
  6. // PacketDispatcher dispatch a packet and possibly further network payload to its destination.
  7. type PacketDispatcher interface {
  8. DispatchToOutbound(packet v2net.Packet) ray.InboundRay
  9. }
  10. type PacketDispatcherWithContext interface {
  11. DispatchToOutbound(context Context, packet v2net.Packet) ray.InboundRay
  12. }
  13. type contextedPacketDispatcher struct {
  14. context Context
  15. packetDispatcher PacketDispatcherWithContext
  16. }
  17. func (this *contextedPacketDispatcher) DispatchToOutbound(packet v2net.Packet) ray.InboundRay {
  18. return this.packetDispatcher.DispatchToOutbound(this.context, packet)
  19. }