transport.go 420 B

123456789101112131415161718192021222324252627
  1. package io
  2. import (
  3. "github.com/v2ray/v2ray-core/common/log"
  4. )
  5. func Pipe(reader Reader, writer Writer) error {
  6. for {
  7. buffer, err := reader.Read()
  8. if err != nil {
  9. log.Debug("IO: Pipe exits as ", err)
  10. return err
  11. }
  12. if buffer.IsEmpty() {
  13. buffer.Release()
  14. continue
  15. }
  16. err = writer.Write(buffer)
  17. if err != nil {
  18. log.Debug("IO: Pipe exits as ", err)
  19. buffer.Release()
  20. return err
  21. }
  22. }
  23. }