Prevent old/bad "backup MS" values from preventing connection
This commit is contained in:
		
							parent
							
								
									ee76c2ce61
								
							
						
					
					
						commit
						5d79a83fb5
					
				@ -22,15 +22,16 @@ class NetworkManager : public QObject {
 | 
				
			|||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  NetworkManager(AOApplication *parent);
 | 
					  explicit NetworkManager(AOApplication *parent);
 | 
				
			||||||
  ~NetworkManager();
 | 
					  ~NetworkManager() = default;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AOApplication *ao_app;
 | 
					  AOApplication *ao_app;
 | 
				
			||||||
  QNetworkAccessManager *http;
 | 
					  QNetworkAccessManager *http;
 | 
				
			||||||
  QTcpSocket *server_socket;
 | 
					  QTcpSocket *server_socket;
 | 
				
			||||||
  QTimer *heartbeat_timer;
 | 
					  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;
 | 
					  const int heartbeat_interval = 60 * 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -382,10 +382,9 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  row += 1;
 | 
					  row += 1;
 | 
				
			||||||
  ui_ms_lbl = new QLabel(ui_form_layout_widget);
 | 
					  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(
 | 
					  ui_ms_lbl->setToolTip(
 | 
				
			||||||
      tr("If the built-in server lookups fail, the game will try the "
 | 
					      tr("Overrides the base URL to retrieve server information from."));
 | 
				
			||||||
         "address given here and use it as a backup master server address."));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl);
 | 
					  ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -23,15 +23,15 @@ NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  QString master_config =
 | 
					  QString master_config =
 | 
				
			||||||
      ao_app->configini->value("master", "").value<QString>();
 | 
					      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;
 | 
					    ms_baseurl = master_config;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  connect(heartbeat_timer, &QTimer::timeout, this, &NetworkManager::send_heartbeat);
 | 
					  connect(heartbeat_timer, &QTimer::timeout, this, &NetworkManager::send_heartbeat);
 | 
				
			||||||
  heartbeat_timer->start(heartbeat_interval);
 | 
					  heartbeat_timer->start(heartbeat_interval);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NetworkManager::~NetworkManager() {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void NetworkManager::get_server_list(const std::function<void()> &cb)
 | 
					void NetworkManager::get_server_list(const std::function<void()> &cb)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QNetworkRequest req(QUrl(ms_baseurl + "/servers"));
 | 
					  QNetworkRequest req(QUrl(ms_baseurl + "/servers"));
 | 
				
			||||||
@ -120,7 +120,8 @@ void NetworkManager::request_document(MSDocumentType document_type,
 | 
				
			|||||||
          << "Failed to get " << endpoint << " (" << reply->errorString() << ") "
 | 
					          << "Failed to get " << endpoint << " (" << reply->errorString() << ") "
 | 
				
			||||||
          << "(http status " << http_status << ")";
 | 
					          << "(http status " << http_status << ")";
 | 
				
			||||||
      content = QString();
 | 
					      content = QString();
 | 
				
			||||||
    } cb(content);
 | 
					    }
 | 
				
			||||||
 | 
					    cb(content);
 | 
				
			||||||
    reply->deleteLater();
 | 
					    reply->deleteLater();
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -130,6 +131,9 @@ void NetworkManager::connect_to_server(server_type p_server)
 | 
				
			|||||||
  server_socket->close();
 | 
					  server_socket->close();
 | 
				
			||||||
  server_socket->abort();
 | 
					  server_socket->abort();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qInfo().nospace().noquote() << "connecting to " << p_server.ip << ":"
 | 
				
			||||||
 | 
					                              << p_server.port;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  server_socket->connectToHost(p_server.ip, p_server.port);
 | 
					  server_socket->connectToHost(p_server.ip, p_server.port);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user