File tree Expand file tree Collapse file tree 1 file changed +22
-5
lines changed
Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -124,14 +124,31 @@ func (c *protocolConnection) releaseReader(r *buff.Reader) error {
124124
125125 go func () {
126126 for r .Next (c .acquireReaderSignal ) {
127- if e := c .fallThrough (r ); e != nil {
128- log .Println (e )
129- _ = c .soc .Close ()
130- c .readerChan <- r
131- return
127+ switch Message (r .MsgType ) {
128+ case ErrorResponse :
129+ err := decodeErrorResponseMsg (r , "" )
130+ log .Println ("from background:" , err )
131+ r .Err = wrapAll (r .Err , err )
132+ default :
133+ if e := c .fallThrough (r ); e != nil {
134+ log .Println ("fall through in background:" , e )
135+ r .Err = wrapAll (r .Err , e )
136+ err := c .soc .Close ()
137+ if err != nil {
138+ log .Println ("error closing socket:" , err )
139+ }
140+ c .readerChan <- r
141+ return
142+ }
132143 }
133144 }
134145
146+ if r .Err != nil {
147+ err := c .soc .Close ()
148+ if err != nil {
149+ log .Println ("error closing socket:" , err )
150+ }
151+ }
135152 c .readerChan <- r
136153 }()
137154
You can’t perform that action at this time.
0 commit comments