From 55db0cbe0d156a172f7cfe269fa046171fe6e5ec Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 20 Feb 2009 04:46:28 +0000 Subject: code cleanup --- src/win32/registryKey.cpp | 2 +- src/win32/tunDevice.cpp | 6 +- src/win32/winService.cpp | 238 +++++++++++++++++++++++----------------------- 3 files changed, 123 insertions(+), 123 deletions(-) (limited to 'src/win32') diff --git a/src/win32/registryKey.cpp b/src/win32/registryKey.cpp index 7112745..4ce92b9 100644 --- a/src/win32/registryKey.cpp +++ b/src/win32/registryKey.cpp @@ -108,7 +108,7 @@ DWORD RegistryKey::getSubKey(DWORD index, RegistryKey& subKey, REGSAM sam) const { char subkeyname[NAME_LENGTH]; DWORD len = sizeof(subkeyname); - DWORD err = RegEnumKeyEx(key_, index, subkeyname, &len, NULL, NULL, NULL, NULL); + DWORD err = RegEnumKeyExA(key_, index, subkeyname, &len, NULL, NULL, NULL, NULL); if(err != ERROR_SUCCESS) return err; diff --git a/src/win32/tunDevice.cpp b/src/win32/tunDevice.cpp index 9b8e087..4986381 100644 --- a/src/win32/tunDevice.cpp +++ b/src/win32/tunDevice.cpp @@ -57,7 +57,7 @@ TunDevice::TunDevice(std::string dev_name, std::string dev_type, std::string ifc if(handle_ == INVALID_HANDLE_VALUE) { std::stringstream tapname; tapname << USERMODEDEVICEDIR << actual_node_ << TAPSUFFIX; - handle_ = CreateFile(tapname.str().c_str(), GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, 0); + handle_ = CreateFileA(tapname.str().c_str(), GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, 0); if(handle_ == INVALID_HANDLE_VALUE) { std::stringstream msg; msg << "Unable to open device: " << actual_node_ << " (" << actual_name_ << "): " << LogErrno(GetLastError()); @@ -156,10 +156,10 @@ bool TunDevice::getAdapter(std::string const& dev_name) else { std::stringstream tapname; tapname << USERMODEDEVICEDIR << actual_node_ << TAPSUFFIX; - handle_ = CreateFile(tapname.str().c_str(), GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, 0); + handle_ = CreateFileA(tapname.str().c_str(), GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, 0); if(handle_ == INVALID_HANDLE_VALUE) continue; - found = true; + found = true; break; } } diff --git a/src/win32/winService.cpp b/src/win32/winService.cpp index 5ebade1..659513e 100644 --- a/src/win32/winService.cpp +++ b/src/win32/winService.cpp @@ -1,78 +1,78 @@ -/* - * anytun - * - * The secure anycast tunneling protocol (satp) defines a protocol used - * for communication between any combination of unicast and anycast - * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel - * mode and allows tunneling of every ETHER TYPE protocol (e.g. - * ethernet, ip, arp ...). satp directly includes cryptography and - * message authentication based on the methodes used by SRTP. It is - * intended to deliver a generic, scaleable and secure solution for - * tunneling and relaying of packets of any protocol. - * - * - * Copyright (C) 2007-2008 Othmar Gsenger, Erwin Nindl, - * Christian Pointner - * - * This file is part of Anytun. - * - * Anytun is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3 as - * published by the Free Software Foundation. - * - * Anytun is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with anytun. If not, see . - */ - -#include - -#include - -#include "winService.h" -#include "../log.h" -#include "../threadUtils.hpp" - -WinService* WinService::inst = NULL; -Mutex WinService::instMutex; -WinService& gWinService = WinService::instance(); - -WinService& WinService::instance() -{ - Lock lock(instMutex); - static instanceCleaner c; - if(!inst) - inst = new WinService(); - - return *inst; -} - -WinService::~WinService() -{ - if(started_) - CloseHandle(exit_event_); -} - -void WinService::install() -{ +/* + * anytun + * + * The secure anycast tunneling protocol (satp) defines a protocol used + * for communication between any combination of unicast and anycast + * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel + * mode and allows tunneling of every ETHER TYPE protocol (e.g. + * ethernet, ip, arp ...). satp directly includes cryptography and + * message authentication based on the methodes used by SRTP. It is + * intended to deliver a generic, scaleable and secure solution for + * tunneling and relaying of packets of any protocol. + * + * + * Copyright (C) 2007-2008 Othmar Gsenger, Erwin Nindl, + * Christian Pointner + * + * This file is part of Anytun. + * + * Anytun is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * Anytun is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with anytun. If not, see . + */ + +#include + +#include + +#include "winService.h" +#include "../log.h" +#include "../threadUtils.hpp" + +WinService* WinService::inst = NULL; +Mutex WinService::instMutex; +WinService& gWinService = WinService::instance(); + +WinService& WinService::instance() +{ + Lock lock(instMutex); + static instanceCleaner c; + if(!inst) + inst = new WinService(); + + return *inst; +} + +WinService::~WinService() +{ + if(started_) + CloseHandle(exit_event_); +} + +void WinService::install() +{ SC_HANDLE schSCManager; SC_HANDLE schService; char szPath[MAX_PATH]; if(!GetModuleFileNameA(NULL, szPath, MAX_PATH)) { - std::stringstream msg; - msg << "Error on GetModuleFileName: " << LogErrno(GetLastError()); - throw std::runtime_error(msg.str()); + std::stringstream msg; + msg << "Error on GetModuleFileName: " << LogErrno(GetLastError()); + throw std::runtime_error(msg.str()); } schSCManager = OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(NULL == schSCManager) { - std::stringstream msg; - msg << "Error on OpenSCManager: " << LogErrno(GetLastError()); + std::stringstream msg; + msg << "Error on OpenSCManager: " << LogErrno(GetLastError()); throw std::runtime_error(msg.str()); } @@ -80,8 +80,8 @@ void WinService::install() SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, szPath, NULL, NULL, NULL, NULL, NULL); // no password if(schService == NULL) { CloseServiceHandle(schSCManager); - std::stringstream msg; - msg << "Error on CreateService: " << LogErrno(GetLastError()); + std::stringstream msg; + msg << "Error on CreateService: " << LogErrno(GetLastError()); throw std::runtime_error(msg.str()); } @@ -89,44 +89,44 @@ void WinService::install() CloseServiceHandle(schService); CloseServiceHandle(schSCManager); -} - -void WinService::start() -{ - if(started_) - throw std::runtime_error("Service already started"); - - SERVICE_TABLE_ENTRY DispatchTable[] = { - {(LPSTR)name_.c_str(), (LPSERVICE_MAIN_FUNCTION)WinService::main }, - {NULL, NULL} - }; - - if(!StartServiceCtrlDispatcherA(DispatchTable)) { - std::stringstream msg; - msg << "Error on StartServiceCtrlDispatcher: " << LogErrno(GetLastError()); - throw std::runtime_error(msg.str()); - } -} - -void WinService::waitForExit() -{ - if(started_) - throw std::runtime_error("Service not started correctly"); +} + +void WinService::start() +{ + if(started_) + throw std::runtime_error("Service already started"); + + SERVICE_TABLE_ENTRY DispatchTable[] = { + {(LPSTR)name_.c_str(), (LPSERVICE_MAIN_FUNCTION)WinService::main }, + {NULL, NULL} + }; + + if(!StartServiceCtrlDispatcherA(DispatchTable)) { + std::stringstream msg; + msg << "Error on StartServiceCtrlDispatcher: " << LogErrno(GetLastError()); + throw std::runtime_error(msg.str()); + } +} + +void WinService::waitForExit() +{ + if(started_) + throw std::runtime_error("Service not started correctly"); WaitForSingleObject(exit_event_, INFINITE); reportStatus(SERVICE_STOP_PENDING, NO_ERROR); -} - -void WinService::stop() -{ - if(started_) - throw std::runtime_error("Service not started correctly"); +} + +void WinService::stop() +{ + if(started_) + throw std::runtime_error("Service not started correctly"); reportStatus(SERVICE_STOPPED, NO_ERROR); -} - -VOID WINAPI WinService::main(DWORD dwArgc, LPTSTR *lpszArgv) -{ +} + +VOID WINAPI WinService::main(DWORD dwArgc, LPTSTR *lpszArgv) +{ gWinService.status_handle_ = RegisterServiceCtrlHandlerA(gWinService.name_.c_str(), WinService::ctrlHandler); if(!gWinService.status_handle_) { cLog.msg(Log::PRIO_ERR) << "Error on RegisterServiceCtrlHandler: " << LogErrno(GetLastError()); @@ -135,23 +135,23 @@ VOID WINAPI WinService::main(DWORD dwArgc, LPTSTR *lpszArgv) gWinService.status_.dwServiceType = SERVICE_WIN32_OWN_PROCESS; gWinService.status_.dwServiceSpecificExitCode = 0; gWinService.reportStatus(SERVICE_START_PENDING, NO_ERROR); - - gWinService.exit_event_ = CreateEvent(NULL, true, false, NULL); - if(!gWinService.exit_event_) { - cLog.msg(Log::PRIO_ERR) << "Error on CreateEvent: " << LogErrno(GetLastError()); - gWinService.reportStatus(SERVICE_STOPPED, -1); - return; - } - gWinService.started_ = true; - gWinService.reportStatus(SERVICE_RUNNING, NO_ERROR); -} - -VOID WINAPI WinService::ctrlHandler(DWORD dwCtrl) -{ -} - -void WinService::reportStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint) -{ + + gWinService.exit_event_ = CreateEvent(NULL, true, false, NULL); + if(!gWinService.exit_event_) { + cLog.msg(Log::PRIO_ERR) << "Error on CreateEvent: " << LogErrno(GetLastError()); + gWinService.reportStatus(SERVICE_STOPPED, -1); + return; + } + gWinService.started_ = true; + gWinService.reportStatus(SERVICE_RUNNING, NO_ERROR); +} + +VOID WINAPI WinService::ctrlHandler(DWORD dwCtrl) +{ +} + +void WinService::reportStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint) +{ static DWORD dwCheckPoint = 1; status_.dwCurrentState = dwCurrentState; @@ -171,4 +171,4 @@ void WinService::reportStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD status_.dwCheckPoint = dwCheckPoint++; SetServiceStatus(status_handle_, &status_); -} +} -- cgit v1.2.3