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