9seconds 7 лет назад
Родитель
Сommit
35b38fe55c
3 измененных файлов: 8 добавлений и 5 удалений
  1. 6
    2
      proxy/proxy.go
  2. 1
    1
      wrappers/mtproto_abridged.go
  3. 1
    2
      wrappers/wrap.go

+ 6
- 2
proxy/proxy.go Просмотреть файл

@@ -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 {

+ 1
- 1
wrappers/mtproto_abridged.go Просмотреть файл

@@ -98,7 +98,7 @@ func (m *MTProtoAbridged) Write(p []byte) (int, error) {
98 98
 		"counter", m.writeCounter,
99 99
 	)
100 100
 
101
-	if len(p)%4 == 0 {
101
+	if len(p)%4 != 0 {
102 102
 		return 0, errors.Errorf("Incorrect packet length %d", len(p))
103 103
 	}
104 104
 

+ 1
- 2
wrappers/wrap.go Просмотреть файл

@@ -44,8 +44,7 @@ type StreamReadWriter interface {
44 44
 }
45 45
 
46 46
 type StreamWriteCloser interface {
47
-	io.Closer
48
-	io.Writer
47
+	io.WriteCloser
49 48
 	Wrap
50 49
 }
51 50
 

Загрузка…
Отмена
Сохранить