File tree 3 files changed +9
-4
lines changed
3 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -758,9 +758,14 @@ pub async fn op_ws_close(
758
758
return Ok ( ( ) ) ;
759
759
} ;
760
760
761
+ const EMPTY_PAYLOAD : & [ u8 ] = & [ ] ;
762
+
761
763
let frame = reason
762
764
. map ( |reason| Frame :: close ( code. unwrap_or ( 1005 ) , reason. as_bytes ( ) ) )
763
- . unwrap_or_else ( || Frame :: close_raw ( vec ! [ ] . into ( ) ) ) ;
765
+ . unwrap_or_else ( || match code {
766
+ Some ( code) => Frame :: close ( code, EMPTY_PAYLOAD ) ,
767
+ _ => Frame :: close_raw ( EMPTY_PAYLOAD . into ( ) ) ,
768
+ } ) ;
764
769
765
770
resource. closed . set ( true ) ;
766
771
let lock = resource. reserve_lock ( ) ;
Original file line number Diff line number Diff line change @@ -2663,7 +2663,6 @@ async fn websocket_server_multi_field_connection_header() {
2663
2663
2664
2664
let message = socket. read_frame ( ) . await . unwrap ( ) ;
2665
2665
assert_eq ! ( message. opcode, fastwebsockets:: OpCode :: Close ) ;
2666
- assert ! ( message. payload. is_empty( ) ) ;
2667
2666
socket
2668
2667
. write_frame ( fastwebsockets:: Frame :: close_raw ( vec ! [ ] . into ( ) ) )
2669
2668
. await
Original file line number Diff line number Diff line change @@ -262,7 +262,7 @@ Deno.test({
262
262
socket . onopen = ( ) => socket . send ( "Hello" ) ;
263
263
socket . onmessage = ( ) => {
264
264
socket . send ( "Bye" ) ;
265
- socket . close ( ) ;
265
+ socket . close ( 1000 ) ;
266
266
} ;
267
267
socket . onclose = ( ) => ac . abort ( ) ;
268
268
socket . onerror = ( ) => fail ( ) ;
@@ -288,7 +288,8 @@ Deno.test({
288
288
seenBye = true ;
289
289
}
290
290
} ;
291
- ws . onclose = ( ) => {
291
+ ws . onclose = ( e ) => {
292
+ assertEquals ( e . code , 1000 ) ;
292
293
deferred . resolve ( ) ;
293
294
} ;
294
295
await Promise . all ( [ deferred . promise , server . finished ] ) ;
You can’t perform that action at this time.
0 commit comments