]> granicus.if.org Git - icinga2/commitdiff
Fixed crash bug in Timer::StopAllTimers
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 29 Mar 2012 18:23:13 +0000 (20:23 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 29 Mar 2012 18:23:13 +0000 (20:23 +0200)
Fixed compilation error with gcc (in connectionmanager.cpp)
Use unformatted JSON strings in release builds

base/timer.cpp
jsonrpc/connectionmanager.cpp
jsonrpc/netstring.cpp

index 885bb06930cf7116f431bbc31b522e3c3bf10be0..6ff6e191f57053cb5b76b2b043a80a58dd285fb5 100644 (file)
@@ -62,7 +62,8 @@ void Timer::CallExpiredTimers(void)
 void Timer::StopAllTimers(void)
 {
        for (list<Timer::WeakRefType>::iterator i = Timers.begin(); i != Timers.end(); ) {
-               Timer::RefType timer = Timer::RefType(*i);
+               Timer::RefType timer = i->lock();
+
                i++;
 
                if (timer == NULL)
index 98787f35dde7798b2383d859103f8a94ae846ad2..3d23299c959318c1f6a657e1e1fd7a865f069540 100644 (file)
@@ -1,8 +1,6 @@
 #include "i2-jsonrpc.h"
 
 using namespace icinga;
-using std::map;
-using std::function;
 
 void ConnectionManager::BindServer(JsonRpcServer::RefType server)
 {
index 7b0885041a61ccfb5e6957d3417e2d29b0a6ce96..05e6227cee50f6002c05cdb9ace3390917876eaf 100644 (file)
@@ -59,8 +59,16 @@ cJSON *Netstring::ReadJSONFromFIFO(FIFO::RefType fifo)
 
 void Netstring::WriteJSONToFIFO(FIFO::RefType fifo, cJSON *object)
 {
-       char *json = cJSON_Print(object);
-       size_t len = strlen(json);
+       char *json;
+       size_t len;
+
+#ifdef _DEBUG
+       json = cJSON_Print(object);
+#else /* _DEBUG */
+       json = cJSON_PrintUnformatted(object);
+#endif /* _DEBUG */
+
+       len = strlen(json);
        char strLength[50];
        sprintf(strLength, "%lu", (unsigned long)len);