mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-12-17 04:26:47 +08:00
[fix] fix self-hosted server configuration being reset when disabling self-hosted mode
This commit is contained in:
@@ -41,16 +41,43 @@ int ConfigCenter::Load() {
|
|||||||
|
|
||||||
enable_turn_ = ini_.GetBoolValue(section_, "enable_turn", enable_turn_);
|
enable_turn_ = ini_.GetBoolValue(section_, "enable_turn", enable_turn_);
|
||||||
enable_srtp_ = ini_.GetBoolValue(section_, "enable_srtp", enable_srtp_);
|
enable_srtp_ = ini_.GetBoolValue(section_, "enable_srtp", enable_srtp_);
|
||||||
signal_server_host_ = ini_.GetValue(section_, "signal_server_host",
|
|
||||||
signal_server_host_.c_str());
|
|
||||||
signal_server_port_ = static_cast<int>(
|
|
||||||
ini_.GetLongValue(section_, "signal_server_port", signal_server_port_));
|
|
||||||
coturn_server_port_ = static_cast<int>(
|
|
||||||
ini_.GetLongValue(section_, "coturn_server_port", coturn_server_port_));
|
|
||||||
cert_file_path_ =
|
|
||||||
ini_.GetValue(section_, "cert_file_path", cert_file_path_.c_str());
|
|
||||||
enable_self_hosted_ =
|
enable_self_hosted_ =
|
||||||
ini_.GetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
ini_.GetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
||||||
|
|
||||||
|
const char* signal_server_host_value =
|
||||||
|
ini_.GetValue(section_, "signal_server_host", nullptr);
|
||||||
|
if (signal_server_host_value != nullptr &&
|
||||||
|
strlen(signal_server_host_value) > 0) {
|
||||||
|
signal_server_host_ = signal_server_host_value;
|
||||||
|
} else {
|
||||||
|
signal_server_host_ = "";
|
||||||
|
}
|
||||||
|
const char* signal_server_port_value =
|
||||||
|
ini_.GetValue(section_, "signal_server_port", nullptr);
|
||||||
|
if (signal_server_port_value != nullptr &&
|
||||||
|
strlen(signal_server_port_value) > 0) {
|
||||||
|
signal_server_port_ =
|
||||||
|
static_cast<int>(ini_.GetLongValue(section_, "signal_server_port", 0));
|
||||||
|
} else {
|
||||||
|
signal_server_port_ = 0;
|
||||||
|
}
|
||||||
|
const char* coturn_server_port_value =
|
||||||
|
ini_.GetValue(section_, "coturn_server_port", nullptr);
|
||||||
|
if (coturn_server_port_value != nullptr &&
|
||||||
|
strlen(coturn_server_port_value) > 0) {
|
||||||
|
coturn_server_port_ =
|
||||||
|
static_cast<int>(ini_.GetLongValue(section_, "coturn_server_port", 0));
|
||||||
|
} else {
|
||||||
|
coturn_server_port_ = 0;
|
||||||
|
}
|
||||||
|
const char* cert_file_path_value =
|
||||||
|
ini_.GetValue(section_, "cert_file_path", nullptr);
|
||||||
|
if (cert_file_path_value != nullptr && strlen(cert_file_path_value) > 0) {
|
||||||
|
cert_file_path_ = cert_file_path_value;
|
||||||
|
} else {
|
||||||
|
cert_file_path_ = "";
|
||||||
|
}
|
||||||
|
|
||||||
enable_autostart_ =
|
enable_autostart_ =
|
||||||
ini_.GetBoolValue(section_, "enable_autostart", enable_autostart_);
|
ini_.GetBoolValue(section_, "enable_autostart", enable_autostart_);
|
||||||
enable_daemon_ = ini_.GetBoolValue(section_, "enable_daemon", enable_daemon_);
|
enable_daemon_ = ini_.GetBoolValue(section_, "enable_daemon", enable_daemon_);
|
||||||
@@ -71,11 +98,18 @@ int ConfigCenter::Save() {
|
|||||||
ini_.SetBoolValue(section_, "hardware_video_codec", hardware_video_codec_);
|
ini_.SetBoolValue(section_, "hardware_video_codec", hardware_video_codec_);
|
||||||
ini_.SetBoolValue(section_, "enable_turn", enable_turn_);
|
ini_.SetBoolValue(section_, "enable_turn", enable_turn_);
|
||||||
ini_.SetBoolValue(section_, "enable_srtp", enable_srtp_);
|
ini_.SetBoolValue(section_, "enable_srtp", enable_srtp_);
|
||||||
ini_.SetValue(section_, "signal_server_host", signal_server_host_.c_str());
|
|
||||||
ini_.SetLongValue(section_, "signal_server_port",
|
|
||||||
static_cast<long>(signal_server_port_));
|
|
||||||
ini_.SetValue(section_, "cert_file_path", cert_file_path_.c_str());
|
|
||||||
ini_.SetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
ini_.SetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
||||||
|
|
||||||
|
// only save when self hosted
|
||||||
|
if (enable_self_hosted_) {
|
||||||
|
ini_.SetValue(section_, "signal_server_host", signal_server_host_.c_str());
|
||||||
|
ini_.SetLongValue(section_, "signal_server_port",
|
||||||
|
static_cast<long>(signal_server_port_));
|
||||||
|
ini_.SetLongValue(section_, "coturn_server_port",
|
||||||
|
static_cast<long>(coturn_server_port_));
|
||||||
|
ini_.SetValue(section_, "cert_file_path", cert_file_path_.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
ini_.SetBoolValue(section_, "enable_autostart", enable_autostart_);
|
ini_.SetBoolValue(section_, "enable_autostart", enable_autostart_);
|
||||||
ini_.SetBoolValue(section_, "enable_daemon", enable_daemon_);
|
ini_.SetBoolValue(section_, "enable_daemon", enable_daemon_);
|
||||||
ini_.SetBoolValue(section_, "enable_minimize_to_tray",
|
ini_.SetBoolValue(section_, "enable_minimize_to_tray",
|
||||||
@@ -210,6 +244,43 @@ int ConfigCenter::SetCertFilePath(const std::string& cert_file_path) {
|
|||||||
int ConfigCenter::SetSelfHosted(bool enable_self_hosted) {
|
int ConfigCenter::SetSelfHosted(bool enable_self_hosted) {
|
||||||
enable_self_hosted_ = enable_self_hosted;
|
enable_self_hosted_ = enable_self_hosted;
|
||||||
ini_.SetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
ini_.SetBoolValue(section_, "enable_self_hosted", enable_self_hosted_);
|
||||||
|
|
||||||
|
// load from config if self hosted is enabled
|
||||||
|
if (enable_self_hosted_) {
|
||||||
|
const char* signal_server_host_value =
|
||||||
|
ini_.GetValue(section_, "signal_server_host", nullptr);
|
||||||
|
if (signal_server_host_value != nullptr &&
|
||||||
|
strlen(signal_server_host_value) > 0) {
|
||||||
|
signal_server_host_ = signal_server_host_value;
|
||||||
|
}
|
||||||
|
const char* signal_server_port_value =
|
||||||
|
ini_.GetValue(section_, "signal_server_port", nullptr);
|
||||||
|
if (signal_server_port_value != nullptr &&
|
||||||
|
strlen(signal_server_port_value) > 0) {
|
||||||
|
signal_server_port_ = static_cast<int>(
|
||||||
|
ini_.GetLongValue(section_, "signal_server_port", 0));
|
||||||
|
}
|
||||||
|
const char* coturn_server_port_value =
|
||||||
|
ini_.GetValue(section_, "coturn_server_port", nullptr);
|
||||||
|
if (coturn_server_port_value != nullptr &&
|
||||||
|
strlen(coturn_server_port_value) > 0) {
|
||||||
|
coturn_server_port_ = static_cast<int>(
|
||||||
|
ini_.GetLongValue(section_, "coturn_server_port", 0));
|
||||||
|
}
|
||||||
|
const char* cert_file_path_value =
|
||||||
|
ini_.GetValue(section_, "cert_file_path", nullptr);
|
||||||
|
if (cert_file_path_value != nullptr && strlen(cert_file_path_value) > 0) {
|
||||||
|
cert_file_path_ = cert_file_path_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
ini_.SetValue(section_, "signal_server_host", signal_server_host_.c_str());
|
||||||
|
ini_.SetLongValue(section_, "signal_server_port",
|
||||||
|
static_cast<long>(signal_server_port_));
|
||||||
|
ini_.SetLongValue(section_, "coturn_server_port",
|
||||||
|
static_cast<long>(coturn_server_port_));
|
||||||
|
ini_.SetValue(section_, "cert_file_path", cert_file_path_.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
SI_Error rc = ini_.SaveFile(config_path_.c_str());
|
SI_Error rc = ini_.SaveFile(config_path_.c_str());
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ class ConfigCenter {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string config_path_;
|
std::string config_path_;
|
||||||
std::string cert_file_path_;
|
|
||||||
CSimpleIniA ini_;
|
CSimpleIniA ini_;
|
||||||
const char* section_ = "Settings";
|
const char* section_ = "Settings";
|
||||||
|
|
||||||
@@ -81,12 +80,13 @@ class ConfigCenter {
|
|||||||
bool hardware_video_codec_ = false;
|
bool hardware_video_codec_ = false;
|
||||||
bool enable_turn_ = true;
|
bool enable_turn_ = true;
|
||||||
bool enable_srtp_ = false;
|
bool enable_srtp_ = false;
|
||||||
std::string signal_server_host_ = "api.crossdesk.cn";
|
std::string signal_server_host_ = "";
|
||||||
std::string signal_server_host_default_ = "api.crossdesk.cn";
|
std::string signal_server_host_default_ = "api.crossdesk.cn";
|
||||||
int signal_server_port_ = 9099;
|
int signal_server_port_ = 0;
|
||||||
int server_port_default_ = 9099;
|
int server_port_default_ = 9099;
|
||||||
int coturn_server_port_ = 3478;
|
int coturn_server_port_ = 0;
|
||||||
int coturn_server_port_default_ = 3478;
|
int coturn_server_port_default_ = 3478;
|
||||||
|
std::string cert_file_path_ = "";
|
||||||
std::string cert_file_path_default_ = "";
|
std::string cert_file_path_default_ = "";
|
||||||
bool enable_self_hosted_ = false;
|
bool enable_self_hosted_ = false;
|
||||||
bool enable_minimize_to_tray_ = false;
|
bool enable_minimize_to_tray_ = false;
|
||||||
|
|||||||
@@ -491,14 +491,22 @@ int Render::CreateConnectionPeer() {
|
|||||||
strncpy(signal_server_ip_self_, config_center_->GetSignalServerHost().c_str(),
|
strncpy(signal_server_ip_self_, config_center_->GetSignalServerHost().c_str(),
|
||||||
sizeof(signal_server_ip_self_) - 1);
|
sizeof(signal_server_ip_self_) - 1);
|
||||||
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
||||||
strncpy(signal_server_port_self_,
|
int signal_port = config_center_->GetSignalServerPort();
|
||||||
std::to_string(config_center_->GetSignalServerPort()).c_str(),
|
if (signal_port > 0) {
|
||||||
sizeof(signal_server_port_self_) - 1);
|
strncpy(signal_server_port_self_, std::to_string(signal_port).c_str(),
|
||||||
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
sizeof(signal_server_port_self_) - 1);
|
||||||
strncpy(coturn_server_port_self_,
|
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
||||||
std::to_string(config_center_->GetCoturnServerPort()).c_str(),
|
} else {
|
||||||
sizeof(coturn_server_port_self_) - 1);
|
signal_server_port_self_[0] = '\0';
|
||||||
coturn_server_port_self_[sizeof(coturn_server_port_self_) - 1] = '\0';
|
}
|
||||||
|
int coturn_port = config_center_->GetCoturnServerPort();
|
||||||
|
if (coturn_port > 0) {
|
||||||
|
strncpy(coturn_server_port_self_, std::to_string(coturn_port).c_str(),
|
||||||
|
sizeof(coturn_server_port_self_) - 1);
|
||||||
|
coturn_server_port_self_[sizeof(coturn_server_port_self_) - 1] = '\0';
|
||||||
|
} else {
|
||||||
|
coturn_server_port_self_[0] = '\0';
|
||||||
|
}
|
||||||
tls_cert_path_self_ = config_center_->GetCertFilePath();
|
tls_cert_path_self_ = config_center_->GetCertFilePath();
|
||||||
|
|
||||||
// peer config
|
// peer config
|
||||||
@@ -1038,10 +1046,15 @@ int Render::Run() {
|
|||||||
config_center_->GetSignalServerHost().c_str(),
|
config_center_->GetSignalServerHost().c_str(),
|
||||||
sizeof(signal_server_ip_self_) - 1);
|
sizeof(signal_server_ip_self_) - 1);
|
||||||
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
||||||
strncpy(signal_server_port_self_,
|
int signal_port_init = config_center_->GetSignalServerPort();
|
||||||
std::to_string(config_center_->GetSignalServerPort()).c_str(),
|
if (signal_port_init > 0) {
|
||||||
sizeof(signal_server_port_self_) - 1);
|
strncpy(signal_server_port_self_,
|
||||||
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
std::to_string(signal_port_init).c_str(),
|
||||||
|
sizeof(signal_server_port_self_) - 1);
|
||||||
|
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
||||||
|
} else {
|
||||||
|
signal_server_port_self_[0] = '\0';
|
||||||
|
}
|
||||||
strncpy(cert_file_path_, cert_path_.c_str(), sizeof(cert_file_path_) - 1);
|
strncpy(cert_file_path_, cert_path_.c_str(), sizeof(cert_file_path_) - 1);
|
||||||
cert_file_path_[sizeof(cert_file_path_) - 1] = '\0';
|
cert_file_path_[sizeof(cert_file_path_) - 1] = '\0';
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -275,16 +275,27 @@ int Render::SelfHostedServerWindow() {
|
|||||||
localization::cancel[localization_language_index_].c_str())) {
|
localization::cancel[localization_language_index_].c_str())) {
|
||||||
show_self_hosted_server_config_window_ = false;
|
show_self_hosted_server_config_window_ = false;
|
||||||
self_hosted_server_config_window_pos_reset_ = true;
|
self_hosted_server_config_window_pos_reset_ = true;
|
||||||
|
strncpy(signal_server_ip_self_,
|
||||||
strncpy(signal_server_ip_self_, signal_server_ip_,
|
config_center_->GetSignalServerHost().c_str(),
|
||||||
sizeof(signal_server_ip_self_) - 1);
|
sizeof(signal_server_ip_self_) - 1);
|
||||||
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
signal_server_ip_self_[sizeof(signal_server_ip_self_) - 1] = '\0';
|
||||||
strncpy(signal_server_port_self_, signal_server_port_,
|
int signal_port = config_center_->GetSignalServerPort();
|
||||||
sizeof(signal_server_port_self_) - 1);
|
if (signal_port > 0) {
|
||||||
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
strncpy(signal_server_port_self_, std::to_string(signal_port).c_str(),
|
||||||
config_center_->SetServerHost(signal_server_ip_self_);
|
sizeof(signal_server_port_self_) - 1);
|
||||||
config_center_->SetServerPort(atoi(signal_server_port_self_));
|
signal_server_port_self_[sizeof(signal_server_port_self_) - 1] = '\0';
|
||||||
tls_cert_path_self_.clear();
|
} else {
|
||||||
|
signal_server_port_self_[0] = '\0';
|
||||||
|
}
|
||||||
|
int coturn_port = config_center_->GetCoturnServerPort();
|
||||||
|
if (coturn_port > 0) {
|
||||||
|
strncpy(coturn_server_port_self_, std::to_string(coturn_port).c_str(),
|
||||||
|
sizeof(coturn_server_port_self_) - 1);
|
||||||
|
coturn_server_port_self_[sizeof(coturn_server_port_self_) - 1] = '\0';
|
||||||
|
} else {
|
||||||
|
coturn_server_port_self_[0] = '\0';
|
||||||
|
}
|
||||||
|
tls_cert_path_self_ = config_center_->GetCertFilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SetWindowFontScale(1.0f);
|
ImGui::SetWindowFontScale(1.0f);
|
||||||
|
|||||||
Reference in New Issue
Block a user