fakeoutboundhandler.go 670 B

123456789101112131415161718192021222324252627282930313233
  1. package mocks
  2. import (
  3. "bytes"
  4. "github.com/v2ray/v2ray-core"
  5. v2net "github.com/v2ray/v2ray-core/net"
  6. )
  7. type FakeOutboundConnectionHandler struct {
  8. Data2Send *bytes.Buffer
  9. Data2Return []byte
  10. Destination v2net.Address
  11. }
  12. func (handler *FakeOutboundConnectionHandler) Start(ray core.OutboundRay) error {
  13. input := ray.OutboundInput()
  14. output := ray.OutboundOutput()
  15. output <- handler.Data2Return
  16. for {
  17. data, open := <-input
  18. if !open {
  19. break
  20. }
  21. handler.Data2Send.Write(data)
  22. }
  23. return nil
  24. }
  25. func (handler *FakeOutboundConnectionHandler) Create(point *core.Point, dest v2net.Address) (core.OutboundConnectionHandler, error) {
  26. return handler, nil
  27. }