diff --git a/src/lobby.cpp b/src/lobby.cpp index 871af8b98..05dd9ce4b 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -471,7 +471,7 @@ void Lobby::list_servers() QTreeWidgetItem *treeItem = new QTreeWidgetItem(ui_serverlist_tree); treeItem->setData(0, Qt::DisplayRole, i); - if (i_server.legacy) + if (i_server.protocol == "tcp") { treeItem->setText(1, "(Legacy) " + i_server.name); treeItem->setBackground(0, Qt::darkRed); @@ -504,7 +504,7 @@ void Lobby::list_favorites() QTreeWidgetItem *treeItem = new QTreeWidgetItem(ui_favorites_tree); treeItem->setData(0, Qt::DisplayRole, i); - if (i_server.legacy) + if (i_server.protocol == "tcp") { treeItem->setText(1, "(Legacy) " + i_server.name); treeItem->setBackground(0, Qt::darkRed); diff --git a/src/network/serverinfo.h b/src/network/serverinfo.h index 1f13e3e68..de91a011c 100644 --- a/src/network/serverinfo.h +++ b/src/network/serverinfo.h @@ -9,7 +9,7 @@ class ServerInfo QString description; QString address; quint16 port = 0; - bool legacy = false; + QString protocol = "ws"; QString toString() const; }; diff --git a/src/network/websocketconnection.cpp b/src/network/websocketconnection.cpp index 9d9183caa..e9cc1ef9f 100644 --- a/src/network/websocketconnection.cpp +++ b/src/network/websocketconnection.cpp @@ -32,7 +32,7 @@ void WebSocketConnection::connectToServer(const ServerInfo &server) disconnectFromServer(); QUrl url; - url.setScheme("ws"); + url.setScheme(server.protocol); url.setHost(server.address); url.setPort(server.port); diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index 500b2c832..1202fec88 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -60,14 +60,20 @@ void NetworkManager::ms_request_finished(QNetworkReply *reply) server.address = entry["ip"].toString(); server.name = entry["name"].toString(); server.description = entry["description"].toString(tr("No description provided.")); - if (entry.contains("ws_port")) + if (entry.contains("wss_port")) + { + server.port = entry["wss_port"].toInt(); + server.protocol = "wss"; + } + else if (entry.contains("ws_port")) { server.port = entry["ws_port"].toInt(); + server.protocol = "ws"; } else { server.port = entry["port"].toInt(); - server.legacy = true; + server.protocol = "tcp"; } if (server.port != 0) diff --git a/src/options.cpp b/src/options.cpp index caa559c80..0827399a2 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -680,11 +680,11 @@ QVector Options::favorites() f_server.description = favorite.value("desc", "No description").toString(); if (favorite.contains("protocol")) { - f_server.legacy = favorite.value("protocol").toString() == "tcp"; + f_server.protocol = favorite.value("protocol").toString(); } else { - f_server.legacy = favorite.value("legacy", false).toBool(); + f_server.protocol = "tcp"; } serverlist.append(std::move(f_server)); @@ -705,7 +705,7 @@ void Options::setFavorites(QVector value) favorite.setValue("address", fav_server.address); favorite.setValue("port", fav_server.port); favorite.setValue("desc", fav_server.description); - favorite.setValue("legacy", fav_server.legacy); + favorite.setValue("protocol", fav_server.protocol); favorite.endGroup(); } favorite.sync(); @@ -726,7 +726,7 @@ void Options::addFavorite(ServerInfo server) favorite.setValue("address", server.address); favorite.setValue("port", server.port); favorite.setValue("desc", server.description); - favorite.setValue("legacy", server.legacy); + favorite.setValue("protocol", server.protocol); favorite.endGroup(); favorite.sync(); } @@ -738,7 +738,7 @@ void Options::updateFavorite(ServerInfo server, int index) favorite.setValue("address", server.address); favorite.setValue("port", server.port); favorite.setValue("desc", server.description); - favorite.setValue("legacy", server.legacy); + favorite.setValue("protocol", server.protocol); favorite.endGroup(); favorite.sync(); }