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);
130 void finished(
int exitCode, QProcess::ExitStatus);
DebugMessage error(const QString &fmt)
DeleteService_fn DeleteService
bool install(const QString &torPath, const QString &torrc, quint16 controlPort)
static void closeHandle(SC_HANDLE handle)
static ServiceFunctions _service_fns
ChangeServiceConfig2A_fn ChangeServiceConfig2A
BOOL(WINAPI * CloseServiceHandle_fn)(SC_HANDLE hSCObject)
QProcess::ExitStatus exitStatus()
void startFailed(QString error)
static bool isSupported()
QueryServiceStatus_fn QueryServiceStatus
static bool loadServiceFunctions()
void finished(int exitCode, QProcess::ExitStatus)
SC_HANDLE(WINAPI * OpenSCManagerA_fn)(LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess)
OpenSCManagerA_fn OpenSCManagerA
TorService(QObject *parent=0)
static SC_HANDLE openSCM()
ControlService_fn ControlService
BOOL(WINAPI * ChangeServiceConfig2A_fn)(SC_HANDLE hService, DWORD dwInfoLevel, LPVOID lpInfo)
SetServiceStatus_fn SetServiceStatus
BOOL(WINAPI * StartServiceA_fn)(SC_HANDLE hService, DWORD dwNumServiceArgs, LPCTSTR *lpServiceArgVectors)
BOOL(WINAPI * ControlService_fn)(SC_HANDLE hService, DWORD dwControl, LPSERVICE_STATUS lpServiceStatus)
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 * DeleteService_fn)(SC_HANDLE hService)
BOOL(WINAPI * QueryServiceStatus_fn)(SC_HANDLE hService, LPSERVICE_STATUS lpServiceStatus)
CreateServiceA_fn CreateServiceA
OpenServiceA_fn OpenServiceA
BOOL(WINAPI * SetServiceStatus_fn)(SERVICE_STATUS_HANDLE, LPSERVICE_STATUS)
StartServiceA_fn StartServiceA
SC_HANDLE(WINAPI * OpenServiceA_fn)(SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD dwDesiredAccess)
CloseServiceHandle_fn CloseServiceHandle