You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wowlet/src/utils/tor.h

61 lines
1.2 KiB

// SPDX-License-Identifier: BSD-3-Clause
// Copyright (c) 2020-2021, The Monero Project.
#ifndef FEATHER_TOR_H
#define FEATHER_TOR_H
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <QRegExp>
#include <QtNetwork>
#include "utils/childproc.h"
class Tor : public QObject
{
Q_OBJECT
public:
explicit Tor(AppContext *ctx, QObject *parent = nullptr);
void start();
void stop();
bool unpackBins();
QString getVersion();
bool torConnected = false;
bool localTor = false;
QString torDir;
QString torPath;
QString torDataPath;
static QString torHost;
static quint16 torPort;
QString torLogs;
QString errorMsg = "";
signals:
void connectionStateChanged(bool connected);
void startupFailure(QString reason);
void logsUpdated();
private slots:
void stateChanged(QProcess::ProcessState);
void handleProcessOutput();
void handleProcessError(QProcess::ProcessError error);
void checkConnection();
private:
void setConnectionState(bool connected);
ChildProcess m_process;
AppContext *m_ctx;
int m_restarts = 0;
bool m_stopRetries = false;
QTimer *m_checkConnectionTimer;
};
class AppContext; // forward declaration
#endif //FEATHER_TOR_H