|
|
@@ -112,22 +112,26 @@ func (p *Proxy) middlePipe(src wrappers.PacketReadCloser, dst wrappers.PacketWri
|
|
112
|
112
|
|
|
113
|
113
|
packet, err := src.Read()
|
|
114
|
114
|
if err != nil {
|
|
|
115
|
+ src.Logger().Warnw("Cannot read packet", "error", err)
|
|
115
|
116
|
return
|
|
116
|
117
|
}
|
|
117
|
118
|
if _, err = dst.Write(packet); err != nil {
|
|
|
119
|
+ src.Logger().Warnw("Cannot write packet", "error", err)
|
|
118
|
120
|
return
|
|
119
|
121
|
}
|
|
120
|
122
|
}
|
|
121
|
123
|
}
|
|
122
|
124
|
|
|
123
|
|
-func (p *Proxy) directPipe(src io.ReadCloser, dst io.WriteCloser, wait *sync.WaitGroup) {
|
|
|
125
|
+func (p *Proxy) directPipe(src wrappers.StreamReadCloser, dst wrappers.StreamWriteCloser, wait *sync.WaitGroup) {
|
|
124
|
126
|
defer func() {
|
|
125
|
127
|
src.Close()
|
|
126
|
128
|
dst.Close()
|
|
127
|
129
|
wait.Done()
|
|
128
|
130
|
}()
|
|
129
|
131
|
|
|
130
|
|
- io.Copy(dst, src)
|
|
|
132
|
+ if _, err := io.Copy(dst, src); err != nil {
|
|
|
133
|
+ src.Logger().Warnw("Cannot pump sockets", "error", err)
|
|
|
134
|
+ }
|
|
131
|
135
|
}
|
|
132
|
136
|
|
|
133
|
137
|
func NewProxy(conf *config.Config) *Proxy {
|