make MCResolver a dynamic object so it doesnt get deleted before the callback

See https://discord.com/channels/1031648380885147709/1031823065937629267/1307471566166167696
This commit is contained in:
iTrooz 2024-11-16 23:37:20 +01:00
parent 87c9066a2b
commit fe28a051d5
No known key found for this signature in database
GPG Key ID: 8B83F77667B1BC6A

View File

@ -140,8 +140,9 @@ class ServerPingTask : public Task {
virtual void executeTask() override { virtual void executeTask() override {
qDebug() << "Querying status of " << m_server.m_address; qDebug() << "Querying status of " << m_server.m_address;
auto [domain, port] = m_server.splitAddress(); auto [domain, port] = m_server.splitAddress();
MCResolver resolver(nullptr, domain, port); MCResolver *resolver = new MCResolver(nullptr, domain, port);
QObject::connect(&resolver, &MCResolver::succeed, [&](QString ip, int port) { QObject::connect(resolver, &MCResolver::succeed, [=](QString ip, int port) {
resolver->deleteLater();
qDebug() << "Resolved Addresse for" << domain << ": " << ip << ":" << port; qDebug() << "Resolved Addresse for" << domain << ": " << ip << ":" << port;
McClient client(nullptr, domain, ip, port); McClient client(nullptr, domain, ip, port);
int online = client.getOnlinePlayers(); int online = client.getOnlinePlayers();
@ -149,7 +150,7 @@ class ServerPingTask : public Task {
client.close(); client.close();
}); });
resolver.ping(); resolver->ping();
} }
private: private: