Commit 172c2f64 authored by Tomas Touceda's avatar Tomas Touceda
Browse files

Get the current progress at connect without waiting for events

parent 56d71643
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -209,6 +209,33 @@ TorControl::disconnect()
    _controlConn->disconnect();
}

void
TorControl::getBootstrapPhase()
{
  ControlCommand cmd("GETINFO", "status/bootstrap-phase");
  ControlReply reply;
  QString str;

  if (!send(cmd, reply, &str)) {
    return;
  }

  bool ok;
  QHash<QString, QString> args;
  args = string_parse_keyvals(reply.getMessage(), &ok);

  if(!ok)
    return;

  tc::Severity severity = tc::severityFromString(args.value("status/bootstrap-phase"));
  BootstrapStatus status
    = BootstrapStatus(severity,
                      BootstrapStatus::statusFromString(args.value("TAG")),
                      args.value("PROGRESS").toInt(),
                      args.value("SUMMARY"));
  emit bootstrapStatusChanged(status);
}

/** Emits a signal that the control socket disconnected from Tor */
void
TorControl::onDisconnected()
@@ -309,6 +336,8 @@ TorControl::onAuthenticated()
  /* We want to use extended events in all async events */
  useFeature("EXTENDED_EVENTS");

  getBootstrapPhase();

  emit authenticated();
}

+1 −0
Original line number Diff line number Diff line
@@ -401,6 +401,7 @@ private:
/* The slots below simply relay signals from the appropriate member objects */
private slots:
  void onStopped(int exitCode, QProcess::ExitStatus exitStatus);
  void getBootstrapPhase();
  void onDisconnected();
  void onLogStdout(const QString &severity, const QString &message);
  void onAuthenticated();