Skip to content

Commit 1e6afd9

Browse files
Fix race condition on WebSocket disconnect
1 parent 4bf08fd commit 1e6afd9

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/impl/websocket.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@ shared_ptr<TcpTransport> WebSocket::setTcpTransport(shared_ptr<TcpTransport> tra
252252
remoteClose();
253253
break;
254254
case State::Disconnected:
255-
remoteClose();
255+
if(state == WebSocket::State::Connecting)
256+
remoteClose();
256257
break;
257258
default:
258259
// Ignore
@@ -303,7 +304,8 @@ shared_ptr<HttpProxyTransport> WebSocket::initProxyTransport() {
303304
remoteClose();
304305
break;
305306
case State::Disconnected:
306-
remoteClose();
307+
if(state == WebSocket::State::Connecting)
308+
remoteClose();
307309
break;
308310
default:
309311
// Ignore
@@ -358,7 +360,8 @@ shared_ptr<TlsTransport> WebSocket::initTlsTransport() {
358360
remoteClose();
359361
break;
360362
case State::Disconnected:
361-
remoteClose();
363+
if(state == WebSocket::State::Connecting)
364+
remoteClose();
362365
break;
363366
default:
364367
// Ignore

0 commit comments

Comments
 (0)