File tree 5 files changed +20
-9
lines changed
5 files changed +20
-9
lines changed Original file line number Diff line number Diff line change 3
3
todo.txt
4
4
/tests /reports
5
5
.project
6
+ .cache
6
7
Original file line number Diff line number Diff line change
1
+ <a name =" v0.7.3 " ></a >
2
+ ### v0.7.3 (2017-06-07)
3
+
4
+
5
+ #### Bug Fixes
6
+
7
+ * Issue with ` on_close ` called twice
8
+
9
+
1
10
<a name =" v0.7.2 " ></a >
2
11
### v0.7.2 (2017-06-04)
3
12
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ license = "MIT"
7
7
name = " ws"
8
8
readme = " README.md"
9
9
repository = " https://github.com/housleyjk/ws-rs"
10
- version = " 0.7.2 "
10
+ version = " 0.7.1 "
11
11
12
12
[dependencies ]
13
13
httparse = " 1.0"
Original file line number Diff line number Diff line change @@ -597,8 +597,12 @@ impl<H> Connection<H>
597
597
while let Some ( len) = try!( self . buffer_in ( ) ) {
598
598
try!( self . read_frames ( ) ) ;
599
599
if len == 0 {
600
- self . events . remove ( Ready :: readable ( ) ) ;
601
- break ;
600
+ if self . events . is_writable ( ) {
601
+ self . events . remove ( Ready :: readable ( ) ) ;
602
+ } else {
603
+ self . disconnect ( )
604
+ }
605
+ break
602
606
}
603
607
}
604
608
Ok ( ( ) )
Original file line number Diff line number Diff line change @@ -24,8 +24,6 @@ use connection::Connection;
24
24
use factory:: Factory ;
25
25
use util:: Slab ;
26
26
use super :: Settings ;
27
- use protocol:: CloseCode ;
28
- use handler:: Handler as HandlerT ;
29
27
30
28
const QUEUE : Token = Token ( usize:: MAX - 3 ) ;
31
29
const TIMER : Token = Token ( usize:: MAX - 4 ) ;
@@ -470,8 +468,7 @@ impl<F> Handler<F>
470
468
} else {
471
469
trace ! ( "WebSocket connection to token={:?} disconnected." , token) ;
472
470
}
473
- let mut handler = self . connections . remove ( token) . unwrap ( ) . consume ( ) ;
474
- handler. on_close ( CloseCode :: Abnormal , "" ) ;
471
+ let handler = self . connections . remove ( token) . unwrap ( ) . consume ( ) ;
475
472
self . factory . connection_lost ( handler) ;
476
473
} else {
477
474
self . schedule ( poll, & self . connections [ token] ) . or_else ( |err| {
@@ -579,9 +576,9 @@ impl<F> Handler<F>
579
576
self . connections [ token] . error ( err)
580
577
}
581
578
}
582
-
579
+
583
580
let conn_events = self . connections [ token] . events ( ) ;
584
-
581
+
585
582
if ( events & conn_events) . is_writable ( ) {
586
583
if let Err ( err) = self . connections [ token] . write ( ) {
587
584
trace ! ( "Encountered error while writing: {}" , err) ;
You can’t perform that action at this time.
0 commit comments