2021-01-10 20:37:57 +03:00
|
|
|
#ifndef SHADOWSOCKSVPNPROTOCOL_H
|
|
|
|
|
#define SHADOWSOCKSVPNPROTOCOL_H
|
|
|
|
|
|
|
|
|
|
#include "openvpnprotocol.h"
|
2021-01-15 23:36:35 +03:00
|
|
|
#include "QProcess"
|
2021-05-10 02:33:31 +03:00
|
|
|
#include "protocols/protocols_defs.h"
|
2021-01-10 20:37:57 +03:00
|
|
|
|
|
|
|
|
class ShadowSocksVpnProtocol : public OpenVpnProtocol
|
|
|
|
|
{
|
|
|
|
|
public:
|
2021-02-18 15:00:41 +03:00
|
|
|
ShadowSocksVpnProtocol(const QJsonObject& configuration, QObject* parent = nullptr);
|
2021-02-21 09:44:53 -08:00
|
|
|
virtual ~ShadowSocksVpnProtocol() override;
|
2021-01-15 23:36:35 +03:00
|
|
|
|
|
|
|
|
ErrorCode start() override;
|
|
|
|
|
void stop() override;
|
|
|
|
|
|
|
|
|
|
protected:
|
2021-02-18 15:00:41 +03:00
|
|
|
void readShadowSocksConfiguration(const QJsonObject &configuration);
|
2021-01-15 23:36:35 +03:00
|
|
|
|
|
|
|
|
protected:
|
2021-02-18 15:00:41 +03:00
|
|
|
QJsonObject m_shadowSocksConfig;
|
2021-01-15 23:36:35 +03:00
|
|
|
|
2021-03-18 18:45:08 +03:00
|
|
|
private:
|
|
|
|
|
static QString shadowSocksExecPath();
|
|
|
|
|
|
2021-01-15 23:36:35 +03:00
|
|
|
private:
|
2021-02-18 15:00:41 +03:00
|
|
|
QProcess m_ssProcess;
|
2021-03-18 18:45:08 +03:00
|
|
|
QTemporaryFile m_shadowSocksCfgFile;
|
2021-01-10 20:37:57 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // SHADOWSOCKSVPNPROTOCOL_H
|