Upload dragonrelaybackend.cpp
This commit is contained in:
parent
664ce94663
commit
dde82e0ddd
1 changed files with 17 additions and 16 deletions
|
|
@ -13,16 +13,18 @@ DragonRelayBackend::DragonRelayBackend(QObject *parent)
|
|||
, m_settings(QStringLiteral("WildDragon"), QStringLiteral("DragonMoonlight"))
|
||||
{
|
||||
// ── Wire RelayClient signals ──────────────────────────────────────────────
|
||||
connect(&m_relay, &RelayClient::loginDone,
|
||||
this, &DragonRelayBackend::onLoginDone);
|
||||
connect(&m_relay, &RelayClient::vpnPeerProvisioned,
|
||||
this, &DragonRelayBackend::onVPNPeerProvisioned);
|
||||
connect(&m_relay, &RelayClient::vpnError,
|
||||
this, &DragonRelayBackend::onVPNError);
|
||||
connect(&m_relay, &RelayClient::hostsFetched,
|
||||
this, &DragonRelayBackend::onHostsFetched);
|
||||
connect(&m_relay, &RelayClient::hostsError,
|
||||
this, &DragonRelayBackend::onHostsError);
|
||||
connect(&m_relay, &RelayClient::loginSucceeded,
|
||||
this, [this]() { onLoginDone(true, QString()); });
|
||||
connect(&m_relay, QOverload<const QString &>::of(&RelayClient::loginFailed),
|
||||
this, [this](const QString &err) { onLoginDone(false, err); });
|
||||
connect(&m_relay, &RelayClient::vpnProvisioned,
|
||||
this, [this](const RelayVPNConf &conf) { onVPNPeerProvisioned(conf); });
|
||||
connect(&m_relay, QOverload<const QString &>::of(&RelayClient::vpnProvisionFailed),
|
||||
this, [this](const QString &err) { onVPNError(err); });
|
||||
connect(&m_relay, &RelayClient::hostsReady,
|
||||
this, [this](const QList<RelayHost> &hosts) { onHostsFetched(hosts); });
|
||||
connect(&m_relay, QOverload<const QString &>::of(&RelayClient::hostsFetchFailed),
|
||||
this, [this](const QString &err) { onHostsError(err); });
|
||||
|
||||
// ── Wire TunnelManager signals ────────────────────────────────────────────
|
||||
connect(&m_tunnel, &TunnelManager::tunnelUp,
|
||||
|
|
@ -77,8 +79,7 @@ void DragonRelayBackend::connectRelay(const QString &url,
|
|||
m_settings.setValue(QStringLiteral("relay/username"), username);
|
||||
|
||||
setStatus(Connecting, QStringLiteral("Logging in…"));
|
||||
m_relay.setBaseURL(url);
|
||||
m_relay.login(username, password);
|
||||
m_relay.login(QUrl(url), username, password);
|
||||
}
|
||||
|
||||
// ── disconnectRelay ───────────────────────────────────────────────────────────
|
||||
|
|
@ -86,7 +87,7 @@ void DragonRelayBackend::connectRelay(const QString &url,
|
|||
void DragonRelayBackend::disconnectRelay() {
|
||||
stopHostPoll();
|
||||
m_tunnel.stop(); // triggers onTunnelDown asynchronously
|
||||
m_relay.deleteVPNPeer(); // fire-and-forget
|
||||
m_relay.revokeVPN(); // fire-and-forget
|
||||
|
||||
m_hosts.clear();
|
||||
m_hostDisplays.clear();
|
||||
|
|
@ -172,7 +173,7 @@ void DragonRelayBackend::onLoginDone(bool ok, const QString &err) {
|
|||
return;
|
||||
}
|
||||
setStatus(Connecting, QStringLiteral("Provisioning VPN peer…"));
|
||||
m_relay.provisionVPNPeer();
|
||||
m_relay.provisionVPN();
|
||||
}
|
||||
|
||||
void DragonRelayBackend::onVPNPeerProvisioned(const RelayVPNConf &conf) {
|
||||
|
|
@ -182,7 +183,7 @@ void DragonRelayBackend::onVPNPeerProvisioned(const RelayVPNConf &conf) {
|
|||
QString parseErr;
|
||||
if (!WireGuardConfig::fromConf(conf.conf, cfg, parseErr)) {
|
||||
setStatus(Error, QStringLiteral("Bad VPN config: ") + parseErr);
|
||||
m_relay.deleteVPNPeer();
|
||||
m_relay.revokeVPN();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -245,6 +246,6 @@ void DragonRelayBackend::onTunnelDown() {
|
|||
|
||||
void DragonRelayBackend::onTunnelError(const QString &err) {
|
||||
stopHostPoll();
|
||||
m_relay.deleteVPNPeer();
|
||||
m_relay.revokeVPN();
|
||||
setStatus(Error, QStringLiteral("Tunnel error: ") + err);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue