Files

44 lines
1.0 KiB
C++
Raw Permalink Normal View History

2024-03-27 11:02:34 +00:00
#ifndef XRAYPROTOCOL_H
#define XRAYPROTOCOL_H
#include "QProcess"
#include <QtCore/qsharedpointer.h>
#include <QHostAddress>
#include <QList>
#include "core/utils/errorCodes.h"
#include "core/utils/routeModes.h"
#include "core/utils/commonStructs.h"
#include "core/utils/ipcClient.h"
#include "vpnProtocol.h"
2024-03-27 11:02:34 +00:00
class XrayProtocol : public VpnProtocol
{
public:
XrayProtocol(const QJsonObject &configuration, QObject *parent = nullptr);
2024-03-27 11:02:34 +00:00
virtual ~XrayProtocol() override;
ErrorCode start() override;
void stop() override;
private:
ErrorCode setupRouting();
ErrorCode startTun2Socks();
2024-03-27 11:02:34 +00:00
QJsonObject m_xrayConfig;
amnezia::RouteMode m_routeMode;
QList<QHostAddress> m_dnsServers;
QString m_remoteAddress;
2026-04-13 15:06:08 +03:00
QString m_socksUser;
QString m_socksPassword;
int m_socksPort = 10808;
QSharedPointer<IpcProcessInterfaceReplica> m_tun2socksProcess;
int m_tun2socksRetryCount = 0;
static constexpr int maxTun2SocksRetries = 5;
static constexpr int tun2socksRetryDelayMs = 400;
2024-03-27 11:02:34 +00:00
};
#endif // XRAYPROTOCOL_H