Go to the documentation of this file.
23 #define TOR_SERVICE_NAME "tor"
24 #define TOR_SERVICE_DISP "Tor Win32 Service"
25 #define TOR_SERVICE_DESC \
26 TEXT("Provides an anonymous Internet communication system.")
27 #define TOR_SERVICE_ACCESS SERVICE_ALL_ACCESS
28 #define SERVICE_ERROR 8
42 LPSERVICE_STATUS lpServiceStatus);
45 LPCTSTR lpServiceName,
46 LPCTSTR lpDisplayName,
47 DWORD dwDesiredAccess,
51 LPCTSTR lpBinaryPathName,
52 LPCTSTR lpLoadOrderGroup,
54 LPCTSTR lpDependencies,
55 LPCTSTR lpServiceStartName,
60 LPCTSTR lpMachineName,
61 LPCTSTR lpDatabaseName,
62 DWORD dwDesiredAccess);
65 LPCTSTR lpServiceName,
66 DWORD dwDesiredAccess);
69 LPSERVICE_STATUS lpServiceStatus);
74 DWORD dwNumServiceArgs,
75 LPCTSTR* lpServiceArgVectors);
121 bool install(
const QString &torPath,
const QString &torrc,
122 quint16 controlPort);
OpenSCManagerA_fn OpenSCManagerA
static bool isSupported()
BOOL(WINAPI * CloseServiceHandle_fn)(SC_HANDLE hSCObject)
ChangeServiceConfig2A_fn ChangeServiceConfig2A
void finished(int exitCode, QProcess::ExitStatus)
SetServiceStatus_fn SetServiceStatus
static SC_HANDLE openSCM()
QProcess::ExitStatus exitStatus()
BOOL(WINAPI * SetServiceStatus_fn)(SERVICE_STATUS_HANDLE, LPSERVICE_STATUS)
static bool loadServiceFunctions()
BOOL(WINAPI * StartServiceA_fn)(SC_HANDLE hService, DWORD dwNumServiceArgs, LPCTSTR *lpServiceArgVectors)
SC_HANDLE(WINAPI * CreateServiceA_fn)(SC_HANDLE hSCManager, LPCTSTR lpServiceName, LPCTSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCTSTR lpBinaryPathName, LPCTSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCTSTR lpDependencies, LPCTSTR lpServiceStartName, LPCTSTR lpPassword)
BOOL(WINAPI * QueryServiceStatus_fn)(SC_HANDLE hService, LPSERVICE_STATUS lpServiceStatus)
TorService(QObject *parent=0)
CreateServiceA_fn CreateServiceA
bool install(const QString &torPath, const QString &torrc, quint16 controlPort)
CloseServiceHandle_fn CloseServiceHandle
SC_HANDLE(WINAPI * OpenServiceA_fn)(SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD dwDesiredAccess)
void startFailed(QString error)
SC_HANDLE(WINAPI * OpenSCManagerA_fn)(LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess)
BOOL(WINAPI * DeleteService_fn)(SC_HANDLE hService)
OpenServiceA_fn OpenServiceA
DebugMessage error(const QString &fmt)
StartServiceA_fn StartServiceA
ControlService_fn ControlService
BOOL(WINAPI * ChangeServiceConfig2A_fn)(SC_HANDLE hService, DWORD dwInfoLevel, LPVOID lpInfo)
QueryServiceStatus_fn QueryServiceStatus
DeleteService_fn DeleteService
static void closeHandle(SC_HANDLE handle)
BOOL(WINAPI * ControlService_fn)(SC_HANDLE hService, DWORD dwControl, LPSERVICE_STATUS lpServiceStatus)
static ServiceFunctions _service_fns