diff options
| author | oldmud0 <oldmud0@users.noreply.github.com> | 2021-12-30 21:26:28 -0600 |
|---|---|---|
| committer | oldmud0 <oldmud0@users.noreply.github.com> | 2021-12-30 21:26:28 -0600 |
| commit | 5d79a83fb5a0f322271e5e3d6c37a8782d42a61a (patch) | |
| tree | 53a808c1f435ad4a7f82f81e1bdc62043d983ea1 | |
| parent | ee76c2ce61f6996bfae3ef027eaee8485d455c95 (diff) | |
Prevent old/bad "backup MS" values from preventing connection
| -rw-r--r-- | include/networkmanager.h | 7 | ||||
| -rw-r--r-- | src/aooptionsdialog.cpp | 5 | ||||
| -rw-r--r-- | src/networkmanager.cpp | 12 |
3 files changed, 14 insertions, 10 deletions
diff --git a/include/networkmanager.h b/include/networkmanager.h index 2e61291f..1e1a60b7 100644 --- a/include/networkmanager.h +++ b/include/networkmanager.h @@ -22,15 +22,16 @@ class NetworkManager : public QObject { Q_OBJECT public: - NetworkManager(AOApplication *parent); - ~NetworkManager(); + explicit NetworkManager(AOApplication *parent); + ~NetworkManager() = default; AOApplication *ao_app; QNetworkAccessManager *http; QTcpSocket *server_socket; QTimer *heartbeat_timer; - QString ms_baseurl = "https://servers.aceattorneyonline.com"; + const QString DEFAULT_MS_BASEURL = "https://servers.aceattorneyonline.com"; + QString ms_baseurl = DEFAULT_MS_BASEURL; const int heartbeat_interval = 60 * 5; diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 5fd80b70..589bc924 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -382,10 +382,9 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) row += 1; ui_ms_lbl = new QLabel(ui_form_layout_widget); - ui_ms_lbl->setText(tr("Backup MS:")); + ui_ms_lbl->setText(tr("Alternate Server List:")); ui_ms_lbl->setToolTip( - tr("If the built-in server lookups fail, the game will try the " - "address given here and use it as a backup master server address.")); + tr("Overrides the base URL to retrieve server information from.")); ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl); diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index c1e8480f..4c823852 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -23,15 +23,15 @@ NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent) QString master_config = ao_app->configini->value("master", "").value<QString>(); - if (!master_config.isEmpty()) + if (!master_config.isEmpty() && QUrl(master_config).scheme().startsWith("http")) { + qInfo() << "using alternate master server" << master_config; ms_baseurl = master_config; + } connect(heartbeat_timer, &QTimer::timeout, this, &NetworkManager::send_heartbeat); heartbeat_timer->start(heartbeat_interval); } -NetworkManager::~NetworkManager() {} - void NetworkManager::get_server_list(const std::function<void()> &cb) { QNetworkRequest req(QUrl(ms_baseurl + "/servers")); @@ -120,7 +120,8 @@ void NetworkManager::request_document(MSDocumentType document_type, << "Failed to get " << endpoint << " (" << reply->errorString() << ") " << "(http status " << http_status << ")"; content = QString(); - } cb(content); + } + cb(content); reply->deleteLater(); }); } @@ -130,6 +131,9 @@ void NetworkManager::connect_to_server(server_type p_server) server_socket->close(); server_socket->abort(); + qInfo().nospace().noquote() << "connecting to " << p_server.ip << ":" + << p_server.port; + server_socket->connectToHost(p_server.ip, p_server.port); } |
