File tree Expand file tree Collapse file tree 1 file changed +16
-5
lines changed
Expand file tree Collapse file tree 1 file changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -640,12 +640,23 @@ impl<S: Read + Write> RawClient<S> {
640640 loop {
641641 raw_resp. clear ( ) ;
642642
643- if let Err ( e) = reader. read_line ( & mut raw_resp) {
644- let error = Arc :: new ( e) ;
645- for ( _, s) in self . waiting_map . lock ( ) . unwrap ( ) . drain ( ) {
646- s. send ( ChannelMessage :: Error ( error. clone ( ) ) ) ?;
643+ match reader. read_line ( & mut raw_resp) {
644+ Ok ( n_bytes_read) => {
645+ if n_bytes_read == 0 {
646+ trace ! ( "Reached UnexpectedEof" ) ;
647+ return Err ( Error :: IOError ( std:: io:: Error :: new (
648+ std:: io:: ErrorKind :: UnexpectedEof ,
649+ "unexpected EOF" ,
650+ ) ) ) ;
651+ }
652+ }
653+ Err ( e) => {
654+ let error = Arc :: new ( e) ;
655+ for ( _, s) in self . waiting_map . lock ( ) . unwrap ( ) . drain ( ) {
656+ s. send ( ChannelMessage :: Error ( error. clone ( ) ) ) ?;
657+ }
658+ return Err ( Error :: SharedIOError ( error) ) ;
647659 }
648- return Err ( Error :: SharedIOError ( error) ) ;
649660 }
650661 trace ! ( "<== {}" , raw_resp) ;
651662
You can’t perform that action at this time.
0 commit comments