(remote net.Conn)
| 151 | } |
| 152 | |
| 153 | func (s *StreamServer) Exchange(remote net.Conn) error { |
| 154 | go func() { |
| 155 | for { |
| 156 | if s.Timeout != 0 { |
| 157 | if err := remote.SetDeadline(time.Now().Add(time.Duration(s.Timeout) * time.Second)); err != nil { |
| 158 | return |
| 159 | } |
| 160 | } |
| 161 | l, err := remote.Read(s.WB[2+16 : len(s.WB)-16]) |
| 162 | if err != nil { |
| 163 | return |
| 164 | } |
| 165 | if err := s.Write(l); err != nil { |
| 166 | return |
| 167 | } |
| 168 | } |
| 169 | }() |
| 170 | for { |
| 171 | if s.Timeout != 0 { |
| 172 | if err := s.Client.SetDeadline(time.Now().Add(time.Duration(s.Timeout) * time.Second)); err != nil { |
| 173 | return nil |
| 174 | } |
| 175 | } |
| 176 | l, err := s.Read() |
| 177 | if err != nil { |
| 178 | return nil |
| 179 | } |
| 180 | if _, err := remote.Write(s.RB[2+16 : 2+16+l]); err != nil { |
| 181 | return nil |
| 182 | } |
| 183 | } |
| 184 | return nil |
| 185 | } |
| 186 | |
| 187 | func (s *StreamServer) Write(l int) error { |
| 188 | binary.BigEndian.PutUint16(s.WB[:2], uint16(l)) |
nothing calls this directly
no test coverage detected