MCPcopy
hub / github.com/txthinking/brook / Exchange

Method Exchange

simplepacketserver.go:45–78  ·  view source on GitHub ↗
(remote net.Conn)

Source from the content-addressed store, hash-verified

43}
44
45func (s *SimplePacketServer) Exchange(remote net.Conn) error {
46 go func() {
47 for {
48 if s.Timeout != 0 {
49 if err := remote.SetDeadline(time.Now().Add(time.Duration(s.Timeout) * time.Second)); err != nil {
50 return
51 }
52 }
53 l, err := remote.Read(s.WB[s.dstl:])
54 if err != nil {
55 return
56 }
57 _, err = s.Client.Write(s.WB[:s.dstl+l])
58 if err != nil {
59 return
60 }
61 }
62 }()
63 for {
64 if s.Timeout != 0 {
65 if err := s.Client.SetDeadline(time.Now().Add(time.Duration(s.Timeout) * time.Second)); err != nil {
66 return nil
67 }
68 }
69 l, err := s.Client.Read(s.RB)
70 if err != nil {
71 return nil
72 }
73 if _, err := remote.Write(s.RB[:l]); err != nil {
74 return nil
75 }
76 }
77 return nil
78}
79
80func (s *SimplePacketServer) Clean() {
81 x.BP65507.Put(s.RB)

Callers

nothing calls this directly

Calls 3

SetDeadlineMethod · 0.45
ReadMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected