From 1292018f51397a477eef8074b7e832c1f25fb36b Mon Sep 17 00:00:00 2001 From: dijunkun Date: Wed, 4 Sep 2024 17:03:40 +0800 Subject: [PATCH] [fix] fix crash when signal server close the connection actively --- src/single_window/render.cpp | 3 +-- src/single_window/render_callback_func.cpp | 4 ++++ thirdparty/projectx | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/single_window/render.cpp b/src/single_window/render.cpp index 0c9728a..6edbe0f 100644 --- a/src/single_window/render.cpp +++ b/src/single_window/render.cpp @@ -437,8 +437,7 @@ int Render::Run() { // Main loop while (!exit_) { if (SignalStatus::SignalConnected == signal_status_ && - !is_create_connection_ && password_inited_ && - "Failed" != connection_status_str_) { + !is_create_connection_ && password_inited_) { LOG_INFO("Connected with signal server, create p2p connection"); is_create_connection_ = CreateConnection(peer_, client_id_, password_saved_) ? false : true; diff --git a/src/single_window/render_callback_func.cpp b/src/single_window/render_callback_func.cpp index 525fdd9..fa0f8ce 100644 --- a/src/single_window/render_callback_func.cpp +++ b/src/single_window/render_callback_func.cpp @@ -174,6 +174,10 @@ void Render::OnSignalStatusCb(SignalStatus status, void *user_data) { } else if (SignalStatus::SignalReconnecting == status) { render->signal_status_str_ = "SignalReconnecting"; render->signal_connected_ = false; + } else if (SignalStatus::SignalServerClosed == status) { + render->signal_status_str_ = "SignalServerClosed"; + render->signal_connected_ = false; + render->is_create_connection_ = false; } } diff --git a/thirdparty/projectx b/thirdparty/projectx index d78dc45..d285d79 160000 --- a/thirdparty/projectx +++ b/thirdparty/projectx @@ -1 +1 @@ -Subproject commit d78dc4585f5524601baf844f3963fa358be5b433 +Subproject commit d285d7971aae1ade2705a81ea8d7d030b22e5b4d