Fix compiler warnings

This commit is contained in:
Gunnar Beutner 2017-12-14 08:47:04 +01:00
parent 42744fde5b
commit 3c5af89d5f
14 changed files with 72 additions and 69 deletions

View File

@ -7,14 +7,17 @@ using System.Text;
namespace Icinga namespace Icinga
{ {
static class Program internal static class NativeMethods
{ {
[DllImport("msi.dll", SetLastError = true)] [DllImport("msi.dll", CharSet = CharSet.Unicode)]
static extern int MsiEnumProducts(int iProductIndex, StringBuilder lpProductBuf); internal static extern int MsiEnumProducts(int iProductIndex, StringBuilder lpProductBuf);
[DllImport("msi.dll", CharSet = CharSet.Unicode)] [DllImport("msi.dll", CharSet = CharSet.Unicode)]
static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref Int32 len); internal static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref Int32 len);
}
static class Program
{
public static string Icinga2InstallDir public static string Icinga2InstallDir
{ {
get get
@ -23,13 +26,13 @@ namespace Icinga
for (int index = 0; ; index++) { for (int index = 0; ; index++) {
szProduct = new StringBuilder(39); szProduct = new StringBuilder(39);
if (MsiEnumProducts(index, szProduct) != 0) if (NativeMethods.MsiEnumProducts(index, szProduct) != 0)
break; break;
int cbName = 128; int cbName = 128;
StringBuilder szName = new StringBuilder(cbName); StringBuilder szName = new StringBuilder(cbName);
if (MsiGetProductInfo(szProduct.ToString(), "ProductName", szName, ref cbName) != 0) if (NativeMethods.MsiGetProductInfo(szProduct.ToString(), "ProductName", szName, ref cbName) != 0)
continue; continue;
if (szName.ToString() != "Icinga 2") if (szName.ToString() != "Icinga 2")
@ -37,7 +40,7 @@ namespace Icinga
int cbLocation = 1024; int cbLocation = 1024;
StringBuilder szLocation = new StringBuilder(cbLocation); StringBuilder szLocation = new StringBuilder(cbLocation);
if (MsiGetProductInfo(szProduct.ToString(), "InstallLocation", szLocation, ref cbLocation) == 0) if (NativeMethods.MsiGetProductInfo(szProduct.ToString(), "InstallLocation", szLocation, ref cbLocation) == 0)
return szLocation.ToString(); return szLocation.ToString();
} }

View File

@ -36,7 +36,7 @@ REGISTER_PRIMITIVE_TYPE(Array, Object, Array::GetPrototype());
* @param index The index. * @param index The index.
* @returns The value. * @returns The value.
*/ */
Value Array::Get(unsigned int index) const Value Array::Get(SizeType index) const
{ {
ObjectLock olock(this); ObjectLock olock(this);
@ -49,7 +49,7 @@ Value Array::Get(unsigned int index) const
* @param index The index. * @param index The index.
* @param value The value. * @param value The value.
*/ */
void Array::Set(unsigned int index, const Value& value) void Array::Set(SizeType index, const Value& value)
{ {
ObjectLock olock(this); ObjectLock olock(this);
@ -62,7 +62,7 @@ void Array::Set(unsigned int index, const Value& value)
* @param index The index. * @param index The index.
* @param value The value. * @param value The value.
*/ */
void Array::Set(unsigned int index, Value&& value) void Array::Set(SizeType index, Value&& value)
{ {
ObjectLock olock(this); ObjectLock olock(this);
@ -124,7 +124,7 @@ bool Array::Contains(const Value& value) const
* @param index The index * @param index The index
* @param value The value to add * @param value The value to add
*/ */
void Array::Insert(unsigned int index, const Value& value) void Array::Insert(SizeType index, const Value& value)
{ {
ObjectLock olock(this); ObjectLock olock(this);
@ -138,7 +138,7 @@ void Array::Insert(unsigned int index, const Value& value)
* *
* @param index The index. * @param index The index.
*/ */
void Array::Remove(unsigned int index) void Array::Remove(SizeType index)
{ {
ObjectLock olock(this); ObjectLock olock(this);
@ -157,11 +157,11 @@ void Array::Remove(Array::Iterator it)
m_Data.erase(it); m_Data.erase(it);
} }
void Array::Resize(size_t new_size) void Array::Resize(SizeType newSize)
{ {
ObjectLock olock(this); ObjectLock olock(this);
m_Data.resize(new_size); m_Data.resize(newSize);
} }
void Array::Clear(void) void Array::Clear(void)
@ -171,11 +171,11 @@ void Array::Clear(void)
m_Data.clear(); m_Data.clear();
} }
void Array::Reserve(size_t new_size) void Array::Reserve(SizeType newSize)
{ {
ObjectLock olock(this); ObjectLock olock(this);
m_Data.reserve(new_size); m_Data.reserve(newSize);
} }
void Array::CopyTo(const Array::Ptr& dest) const void Array::CopyTo(const Array::Ptr& dest) const

View File

@ -57,9 +57,9 @@ public:
inline ~Array(void) inline ~Array(void)
{ } { }
Value Get(unsigned int index) const; Value Get(SizeType index) const;
void Set(unsigned int index, const Value& value); void Set(SizeType index, const Value& value);
void Set(unsigned int index, Value&& value); void Set(SizeType index, Value&& value);
void Add(const Value& value); void Add(const Value& value);
void Add(Value&& value); void Add(Value&& value);
@ -94,14 +94,14 @@ public:
size_t GetLength(void) const; size_t GetLength(void) const;
bool Contains(const Value& value) const; bool Contains(const Value& value) const;
void Insert(unsigned int index, const Value& value); void Insert(SizeType index, const Value& value);
void Remove(unsigned int index); void Remove(SizeType index);
void Remove(Iterator it); void Remove(Iterator it);
void Resize(size_t new_size); void Resize(SizeType newSize);
void Clear(void); void Clear(void);
void Reserve(size_t new_size); void Reserve(SizeType newSize);
void CopyTo(const Array::Ptr& dest) const; void CopyTo(const Array::Ptr& dest) const;
Array::Ptr ShallowClone(void) const; Array::Ptr ShallowClone(void) const;

View File

@ -25,15 +25,20 @@
namespace icinga namespace icinga
{ {
#define I2_TOKENPASTE(x, y) x ## y
#define I2_TOKENPASTE2(x, y) I2_TOKENPASTE(x, y)
#define I2_UNIQUE_NAME(prefix) I2_TOKENPASTE2(prefix, __COUNTER__)
I2_BASE_API bool InitializeOnceHelper(void (*func)(void), int priority = 0); I2_BASE_API bool InitializeOnceHelper(void (*func)(void), int priority = 0);
#define INITIALIZE_ONCE(func) \ #define INITIALIZE_ONCE(func) \
namespace { namespace UNIQUE_NAME(io) { \ namespace { namespace I2_UNIQUE_NAME(io) { \
I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func)); \ I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func)); \
} } } }
#define INITIALIZE_ONCE_WITH_PRIORITY(func, priority) \ #define INITIALIZE_ONCE_WITH_PRIORITY(func, priority) \
namespace { namespace UNIQUE_NAME(io) { \ namespace { namespace I2_UNIQUE_NAME(io) { \
I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func, priority)); \ I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func, priority)); \
} } } }
} }

View File

@ -330,29 +330,30 @@ size_t Socket::Read(void *buffer, size_t count)
*/ */
Socket::Ptr Socket::Accept(void) Socket::Ptr Socket::Accept(void)
{ {
int fd;
sockaddr_storage addr; sockaddr_storage addr;
socklen_t addrlen = sizeof(addr); socklen_t addrlen = sizeof(addr);
fd = accept(GetFD(), (sockaddr *)&addr, &addrlen); SOCKET fd = accept(GetFD(), (sockaddr *)&addr, &addrlen);
if (fd < 0) {
#ifndef _WIN32 #ifndef _WIN32
if (fd < 0) {
Log(LogCritical, "Socket") Log(LogCritical, "Socket")
<< "accept() failed with error code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\""; << "accept() failed with error code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\"";
BOOST_THROW_EXCEPTION(socket_error() BOOST_THROW_EXCEPTION(socket_error()
<< boost::errinfo_api_function("accept") << boost::errinfo_api_function("accept")
<< boost::errinfo_errno(errno)); << boost::errinfo_errno(errno));
}
#else /* _WIN32 */ #else /* _WIN32 */
if (fd == INVALID_SOCKET) {
Log(LogCritical, "Socket") Log(LogCritical, "Socket")
<< "accept() failed with error code " << WSAGetLastError() << ", \"" << Utility::FormatErrorNumber(WSAGetLastError()) << "\""; << "accept() failed with error code " << WSAGetLastError() << ", \"" << Utility::FormatErrorNumber(WSAGetLastError()) << "\"";
BOOST_THROW_EXCEPTION(socket_error() BOOST_THROW_EXCEPTION(socket_error()
<< boost::errinfo_api_function("accept") << boost::errinfo_api_function("accept")
<< errinfo_win32_error(WSAGetLastError())); << errinfo_win32_error(WSAGetLastError()));
#endif /* _WIN32 */
} }
#endif /* _WIN32 */
return new Socket(fd); return new Socket(fd);
} }

View File

@ -161,7 +161,7 @@ void TcpSocket::Connect(const String& node, const String& service)
<< errinfo_getaddrinfo_error(rc)); << errinfo_getaddrinfo_error(rc));
} }
int fd = INVALID_SOCKET; SOCKET fd = INVALID_SOCKET;
for (addrinfo *info = result; info != NULL; info = info->ai_next) { for (addrinfo *info = result; info != NULL; info = info->ai_next) {
fd = socket(info->ai_family, info->ai_socktype, info->ai_protocol); fd = socket(info->ai_family, info->ai_socktype, info->ai_protocol);

View File

@ -29,9 +29,4 @@
# define I2_HIDDEN # define I2_HIDDEN
#endif /* _WIN32 */ #endif /* _WIN32 */
#define TOKENPASTE(x, y) x ## y
#define TOKENPASTE2(x, y) TOKENPASTE(x, y)
#define UNIQUE_NAME(prefix) TOKENPASTE2(prefix, __COUNTER__)
#endif /* VISIBILITY_H */ #endif /* VISIBILITY_H */

View File

@ -27,7 +27,7 @@
using namespace icinga; using namespace icinga;
int WorkQueue::m_NextID = 1; std::atomic<int> WorkQueue::m_NextID(1);
boost::thread_specific_ptr<WorkQueue *> l_ThreadWorkQueue; boost::thread_specific_ptr<WorkQueue *> l_ThreadWorkQueue;
WorkQueue::WorkQueue(size_t maxItems, int threadCount) WorkQueue::WorkQueue(size_t maxItems, int threadCount)
@ -196,7 +196,7 @@ void WorkQueue::StatusTimerHandler(void)
ASSERT(!m_Name.IsEmpty()); ASSERT(!m_Name.IsEmpty());
int pending = m_Tasks.size(); size_t pending = m_Tasks.size();
double now = Utility::GetTime(); double now = Utility::GetTime();
double gradient = (pending - m_PendingTasks) / (now - m_PendingTasksTimestamp); double gradient = (pending - m_PendingTasks) / (now - m_PendingTasksTimestamp);
@ -295,7 +295,7 @@ void WorkQueue::IncreaseTaskCount(void)
m_TaskStats.InsertValue(now, 1); m_TaskStats.InsertValue(now, 1);
} }
int WorkQueue::GetTaskCount(RingBuffer::SizeType span) size_t WorkQueue::GetTaskCount(RingBuffer::SizeType span)
{ {
boost::mutex::scoped_lock lock(m_StatsMutex); boost::mutex::scoped_lock lock(m_StatsMutex);
return m_TaskStats.UpdateAndGetValues(Utility::GetTime(), span); return m_TaskStats.UpdateAndGetValues(Utility::GetTime(), span);

View File

@ -29,6 +29,7 @@
#include <boost/exception_ptr.hpp> #include <boost/exception_ptr.hpp>
#include <queue> #include <queue>
#include <deque> #include <deque>
#include <atomic>
namespace icinga namespace icinga
{ {
@ -93,7 +94,7 @@ public:
bool IsWorkerThread(void) const; bool IsWorkerThread(void) const;
size_t GetLength(void) const; size_t GetLength(void) const;
int GetTaskCount(RingBuffer::SizeType span); size_t GetTaskCount(RingBuffer::SizeType span);
void SetExceptionCallback(const ExceptionCallback& callback); void SetExceptionCallback(const ExceptionCallback& callback);
@ -107,7 +108,7 @@ protected:
private: private:
int m_ID; int m_ID;
String m_Name; String m_Name;
static int m_NextID; static std::atomic<int> m_NextID;
int m_ThreadCount; int m_ThreadCount;
bool m_Spawned; bool m_Spawned;
@ -128,7 +129,7 @@ private:
mutable boost::mutex m_StatsMutex; mutable boost::mutex m_StatsMutex;
RingBuffer m_TaskStats; RingBuffer m_TaskStats;
int m_PendingTasks; size_t m_PendingTasks;
double m_PendingTasksTimestamp; double m_PendingTasksTimestamp;
void WorkerThreadProc(void); void WorkerThreadProc(void);

View File

@ -294,7 +294,7 @@ void ApiClient::ExecuteScriptHttpCompletionCallback(HttpRequest& request,
} }
callback(boost::exception_ptr(), result); callback(boost::exception_ptr(), result);
} catch (const std::exception& ex) { } catch (const std::exception&) {
callback(boost::current_exception(), Empty); callback(boost::current_exception(), Empty);
} }
} }
@ -321,7 +321,7 @@ void ApiClient::AutocompleteScript(const String& session, const String& command,
req->AddHeader("Authorization", "Basic " + Base64::Encode(m_User + ":" + m_Password)); req->AddHeader("Authorization", "Basic " + Base64::Encode(m_User + ":" + m_Password));
req->AddHeader("Accept", "application/json"); req->AddHeader("Accept", "application/json");
m_Connection->SubmitRequest(req, std::bind(AutocompleteScriptHttpCompletionCallback, _1, _2, callback)); m_Connection->SubmitRequest(req, std::bind(AutocompleteScriptHttpCompletionCallback, _1, _2, callback));
} catch (const std::exception& ex) { } catch (const std::exception&) {
callback(boost::current_exception(), nullptr); callback(boost::current_exception(), nullptr);
} }
} }
@ -362,7 +362,7 @@ void ApiClient::AutocompleteScriptHttpCompletionCallback(HttpRequest& request,
} }
callback(boost::exception_ptr(), suggestions); callback(boost::exception_ptr(), suggestions);
} catch (const std::exception& ex) { } catch (const std::exception&) {
callback(boost::current_exception(), nullptr); callback(boost::current_exception(), nullptr);
} }
} }

View File

@ -322,18 +322,17 @@ void JsonRpcConnection::TimeoutTimerHandler(void)
} }
} }
int JsonRpcConnection::GetWorkQueueCount(void) size_t JsonRpcConnection::GetWorkQueueCount(void)
{ {
return l_JsonRpcConnectionWorkQueueCount; return l_JsonRpcConnectionWorkQueueCount;
} }
int JsonRpcConnection::GetWorkQueueLength(void) size_t JsonRpcConnection::GetWorkQueueLength(void)
{ {
int itemCount = 0; size_t itemCount = 0;
for (int i = 0; i < GetWorkQueueCount(); i++) { for (size_t i = 0; i < GetWorkQueueCount(); i++)
itemCount += l_JsonRpcConnectionWorkQueues[i].GetLength(); itemCount += l_JsonRpcConnectionWorkQueues[i].GetLength();
}
return itemCount; return itemCount;
} }
@ -341,15 +340,14 @@ int JsonRpcConnection::GetWorkQueueLength(void)
double JsonRpcConnection::GetWorkQueueRate(void) double JsonRpcConnection::GetWorkQueueRate(void)
{ {
double rate = 0.0; double rate = 0.0;
int count = GetWorkQueueCount(); size_t count = GetWorkQueueCount();
/* If this is a standalone environment, we don't have any queues. */ /* If this is a standalone environment, we don't have any queues. */
if (count == 0) if (count == 0)
return 0.0; return 0.0;
for (int i = 0; i < count; i++) { for (size_t i = 0; i < count; i++)
rate += l_JsonRpcConnectionWorkQueues[i].GetTaskCount(60) / 60.0; rate += l_JsonRpcConnectionWorkQueues[i].GetTaskCount(60) / 60.0;
}
return rate / count; return rate / count;
} }

View File

@ -71,8 +71,8 @@ public:
static void HeartbeatTimerHandler(void); static void HeartbeatTimerHandler(void);
static Value HeartbeatAPIHandler(const intrusive_ptr<MessageOrigin>& origin, const Dictionary::Ptr& params); static Value HeartbeatAPIHandler(const intrusive_ptr<MessageOrigin>& origin, const Dictionary::Ptr& params);
static int GetWorkQueueCount(void); static size_t GetWorkQueueCount(void);
static int GetWorkQueueLength(void); static size_t GetWorkQueueLength(void);
static double GetWorkQueueRate(void); static double GetWorkQueueRate(void);
static void SendCertificateRequest(const JsonRpcConnection::Ptr& aclient, const intrusive_ptr<MessageOrigin>& origin, const String& path); static void SendCertificateRequest(const JsonRpcConnection::Ptr& aclient, const intrusive_ptr<MessageOrigin>& origin, const String& path);

View File

@ -186,7 +186,7 @@ static INT parseArguments(INT ac, WCHAR **av, po::variables_map& vm, printInfoSt
printInfo.unit = BunitB; printInfo.unit = BunitB;
} }
printInfo.showUsed = vm.count("show-used"); printInfo.showUsed = vm.count("show-used") > 0;
if (vm.count("debug")) if (vm.count("debug"))
debug = TRUE; debug = TRUE;

View File

@ -129,7 +129,7 @@ std::wstring threshold::pString(CONST DOUBLE max)
std::wstring removeZero(DOUBLE val) std::wstring removeZero(DOUBLE val)
{ {
std::wstring ret = boost::lexical_cast<std::wstring>(val); std::wstring ret = boost::lexical_cast<std::wstring>(val);
INT pos = ret.length(); std::wstring::size_type pos = ret.length();
if (ret.find_first_of(L".") == std::string::npos) if (ret.find_first_of(L".") == std::string::npos)
return ret; return ret;
for (std::wstring::reverse_iterator rit = ret.rbegin(); rit != ret.rend(); ++rit) { for (std::wstring::reverse_iterator rit = ret.rbegin(); rit != ret.rend(); ++rit) {