X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2Fwin32%2FregistryKey.cpp;h=4c6240c77265943869d462563505a0649c84f76a;hp=a9a095970bec227b00dd09e36a6b6197bae922e0;hb=ef0cacf2508418915d3f64b04003be3c13fed3cc;hpb=ece844834d2cecc028ce81ca283f5d441088580e diff --git a/src/win32/registryKey.cpp b/src/win32/registryKey.cpp index a9a0959..4c6240c 100644 --- a/src/win32/registryKey.cpp +++ b/src/win32/registryKey.cpp @@ -11,7 +11,7 @@ * tunneling and relaying of packets of any protocol. * * - * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, + * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, * Christian Pointner * * This file is part of Anytun. @@ -64,14 +64,16 @@ std::string RegistryKey::getName() const DWORD RegistryKey::open(HKEY hkey, std::string subKey, REGSAM samDesired) { - if(opened_) + if(opened_) { RegCloseKey(key_); + } opened_ = false; name_ = ""; LONG err = RegOpenKeyExA(hkey, subKey.c_str(), 0, samDesired, &key_); - if(err != ERROR_SUCCESS) + if(err != ERROR_SUCCESS) { return err; + } name_ = subKey; opened_ = true; @@ -80,28 +82,32 @@ DWORD RegistryKey::open(HKEY hkey, std::string subKey, REGSAM samDesired) void RegistryKey::close() { - if(opened_) + if(opened_) { RegCloseKey(key_); + } opened_ = false; } std::string RegistryKey::operator[](std::string const& name) const { - if(!opened_) + if(!opened_) { throw AnytunErrno(ERROR_INVALID_HANDLE); + } char value[STRING_VALUE_LENGTH]; DWORD len = sizeof(value); LONG err = RegQueryValueExA(key_, name.c_str(), NULL, NULL, (LPBYTE)value, &len); - if(err != ERROR_SUCCESS) + if(err != ERROR_SUCCESS) { throw AnytunErrno(err); + } if(value[len-1] != 0) { - if(len < sizeof(value)) + if(len < sizeof(value)) { value[len++] = 0; - else + } else { throw AnytunErrno(ERROR_INSUFFICIENT_BUFFER); - } + } + } return std::string(value); } @@ -110,8 +116,9 @@ DWORD RegistryKey::getSubKey(DWORD index, RegistryKey& subKey, REGSAM sam) const char subkeyname[NAME_LENGTH]; DWORD len = sizeof(subkeyname); DWORD err = RegEnumKeyExA(key_, index, subkeyname, &len, NULL, NULL, NULL, NULL); - if(err != ERROR_SUCCESS) + if(err != ERROR_SUCCESS) { return err; + } return subKey.open(key_, subkeyname, sam); }