- Changes in logging and debug output
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 28 Sep 2004 16:45:23 +0000 (16:45 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 28 Sep 2004 16:45:23 +0000 (16:45 +0000)
- Console changed for new DCI data types

21 files changed:
src/console/win32/DCIDataView.cpp
src/console/win32/DCIThresholdsPage.cpp
src/console/win32/Graph.cpp
src/console/win32/globals.cpp
src/server/core/actions.cpp
src/server/core/config.cpp
src/server/core/datacoll.cpp
src/server/core/db.cpp
src/server/core/dcithreshold.cpp
src/server/core/discovery.cpp
src/server/core/evproc.cpp
src/server/core/hk.cpp
src/server/core/locks.cpp
src/server/core/log.cpp
src/server/core/main.cpp
src/server/core/nms_core.h
src/server/core/node.cpp
src/server/core/np.cpp
src/server/core/syncer.cpp
src/server/core/tools.cpp
src/server/core/watchdog.cpp

index 656ff3e..99a19e7 100644 (file)
@@ -152,11 +152,17 @@ void CDCIDataView::OnViewRefresh()
             {
                switch(pData->wDataType)
                {
-                  case DCI_DT_INTEGER:
+                  case DCI_DT_INT:
                      sprintf(szBuffer, "%ld", pRow->value.dwInt32);
                      break;
+                  case DCI_DT_UINT:
+                     sprintf(szBuffer, "%lu", pRow->value.dwInt32);
+                     break;
                   case DCI_DT_INT64:
-                     sprintf(szBuffer, "%I64", pRow->value.qwInt64);
+                     sprintf(szBuffer, "%I64d", pRow->value.qwInt64);
+                     break;
+                  case DCI_DT_UINT64:
+                     sprintf(szBuffer, "%I64u", pRow->value.qwInt64);
                      break;
                   case DCI_DT_FLOAT:
                      sprintf(szBuffer, "%f", pRow->value.dFloat);
index 4846f59..81a52b1 100644 (file)
@@ -124,11 +124,17 @@ void CDCIThresholdsPage::UpdateListEntry(int iItem, DWORD dwIndex)
 
    switch(m_pItem->iDataType)
    {
-      case DCI_DT_INTEGER:
-         sprintf(szValue, "%d", m_pItem->pThresholdList[dwIndex].value.dwInt32);
+      case DCI_DT_INT:
+         sprintf(szValue, "%ld", m_pItem->pThresholdList[dwIndex].value.dwInt32);
+         break;
+      case DCI_DT_UINT:
+         sprintf(szValue, "%lu", m_pItem->pThresholdList[dwIndex].value.dwInt32);
          break;
       case DCI_DT_INT64:
-         sprintf(szValue, "%64I", m_pItem->pThresholdList[dwIndex].value.qwInt64);
+         sprintf(szValue, "%I64d", m_pItem->pThresholdList[dwIndex].value.qwInt64);
+         break;
+      case DCI_DT_UINT64:
+         sprintf(szValue, "%I64u", m_pItem->pThresholdList[dwIndex].value.qwInt64);
          break;
       case DCI_DT_FLOAT:
          sprintf(szValue, "%f", m_pItem->pThresholdList[dwIndex].value.dFloat);
@@ -165,12 +171,20 @@ BOOL CDCIThresholdsPage::EditThreshold(NXC_DCI_THRESHOLD *pThreshold)
    dlg.m_dwEventId = pThreshold->dwEvent;
    switch(m_pItem->iDataType)
    {
-      case DCI_DT_INTEGER:
+      case DCI_DT_INT:
          sprintf(szBuffer, "%d", pThreshold->value.dwInt32);
          dlg.m_strValue = szBuffer;
          break;
+      case DCI_DT_UINT:
+         sprintf(szBuffer, "%u", pThreshold->value.dwInt32);
+         dlg.m_strValue = szBuffer;
+         break;
       case DCI_DT_INT64:
-         sprintf(szBuffer, "%64I", pThreshold->value.qwInt64);
+         sprintf(szBuffer, "%I64d", pThreshold->value.qwInt64);
+         dlg.m_strValue = szBuffer;
+         break;
+      case DCI_DT_UINT64:
+         sprintf(szBuffer, "%I64u", pThreshold->value.qwInt64);
          dlg.m_strValue = szBuffer;
          break;
       case DCI_DT_FLOAT:
@@ -189,12 +203,18 @@ BOOL CDCIThresholdsPage::EditThreshold(NXC_DCI_THRESHOLD *pThreshold)
       pThreshold->dwEvent = dlg.m_dwEventId;
       switch(m_pItem->iDataType)
       {
-         case DCI_DT_INTEGER:
+         case DCI_DT_INT:
             pThreshold->value.dwInt32 = strtol((LPCTSTR)dlg.m_strValue, NULL, 0);
             break;
+         case DCI_DT_UINT:
+            pThreshold->value.dwInt32 = strtoul((LPCTSTR)dlg.m_strValue, NULL, 0);
+            break;
          case DCI_DT_INT64:
             /* TODO: add conversion for 64 bit integers */
             break;
+         case DCI_DT_UINT64:
+            /* TODO: add conversion for 64 bit integers */
+            break;
          case DCI_DT_FLOAT:
             pThreshold->value.dFloat = strtod((LPCTSTR)dlg.m_strValue, NULL);
             break;
index ae6f0b1..a942d65 100644 (file)
@@ -7,8 +7,8 @@
 #include <math.h>
 
 #define ROW_DATA(row, dt)  ((dt == DCI_DT_STRING) ? strtod(row->value.szString, NULL) : \
-                            ((dt == DCI_DT_INTEGER) ? row->value.dwInt32 : \
-                             ((dt == DCI_DT_INT64) ? row->value.qwInt64 : \
+                            (((dt == DCI_DT_INT) || (dt == DCI_DT_UINT)) ? row->value.dwInt32 : \
+                             (((dt == DCI_DT_INT64) || (dt == DCI_DT_UINT64)) ? row->value.qwInt64 : \
                               ((dt == DCI_DT_FLOAT) ? row->value.dFloat : 0) \
                              ) \
                             ) \
index 2132f8b..8d6fb8e 100644 (file)
@@ -127,7 +127,7 @@ COLORREF g_statusColorTable[9] =
 
 char *g_pszItemOrigin[] = { "Internal", "Agent", "SNMP" };
 char *g_pszItemOriginLong[] = { "Internal", "NetXMS Agent", "SNMP Agent" };
-char *g_pszItemDataType[] = { "Integer", "Int64", "String", "Float" };
+char *g_pszItemDataType[] = { "Integer", "Unsigned Integer", "Int64", "Unsigned Int64", "String", "Float" };
 char *g_pszItemStatus[] = { "Active", "Disabled", "Not supported" };
 char *g_pszThresholdOperation[] = { "<", "<=", "=", ">=", ">", "!=", "~", "!~" };
 char *g_pszThresholdOperationLong[] = { "less", "less or equal", "equal", "greater or equal", "greater", "not equal", "like", "not like" };
index e512ab5..0efed72 100644 (file)
@@ -213,7 +213,7 @@ BOOL ExecuteAction(DWORD dwActionId, Event *pEvent)
    {
       if (pAction->bIsDisabled)
       {
-         DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Action %d (%s) is disabled and will not be executed\n",
+         DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Action %d (%s) is disabled and will not be executed",
                    dwActionId, pAction->szName);
          bSuccess = TRUE;
       }
@@ -225,21 +225,21 @@ BOOL ExecuteAction(DWORD dwActionId, Event *pEvent)
          switch(pAction->iType)
          {
             case ACTION_EXEC:
-               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Executing command \"%s\"\n", pszExpandedData);
+               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Executing command \"%s\"", pszExpandedData);
                bSuccess = ExecCommand(pszExpandedData);
                break;
             case ACTION_SEND_EMAIL:
-               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Sending mail to %s: \"%s\"\n", 
+               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Sending mail to %s: \"%s\"", 
                          pAction->szRcptAddr, pszExpandedData);
                PostMail(pAction->szRcptAddr, pAction->szEmailSubject, pszExpandedData);
                bSuccess = TRUE;
                break;
             case ACTION_SEND_SMS:
-               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Sending SMS to %s: \"%s\"\n", 
+               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Sending SMS to %s: \"%s\"", 
                          pAction->szRcptAddr, pszExpandedData);
                break;
             case ACTION_REMOTE:
-               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Executing on \"%s\": \"%s\"\n", 
+               DbgPrintf(AF_DEBUG_ACTIONS, "*actions* Executing on \"%s\": \"%s\"", 
                          pAction->szRcptAddr, pszExpandedData);
                break;
             default:
index b3aae02..e4ea429 100644 (file)
@@ -42,6 +42,7 @@ static char help_text[]="NetXMS Server Version " NETXMS_VERSION_STRING "\n"
                         "   --debug-events      : Print events to console.\n"
                         "   --debug-housekeeper : Print debug information for housekeeping thread.\n"
                         "   --debug-locks       : Print debug information about component locking.\n"
+                        "   --debug-sql         : Print all SQL queries.\n"
                         "\n"
                         "Valid commands are:\n"
                         "   check-config        : Check configuration file syntax\n"
index cbcd245..bfee0cc 100644 (file)
@@ -86,12 +86,12 @@ static THREAD_RESULT THREAD_CALL DataCollector(void *pArg)
       }
       else     /* pNode == NULL */
       {
-         DbgPrintf(AF_DEBUG_DC, "*** DataCollector: Attempt to collect information for non-existing node.\n");
+         DbgPrintf(AF_DEBUG_DC, "*** DataCollector: Attempt to collect information for non-existing node.");
       }
    }
 
    free(pBuffer);
-   DbgPrintf(AF_DEBUG_DC, "Data collector thread terminated\n");
+   DbgPrintf(AF_DEBUG_DC, "Data collector thread terminated");
    return THREAD_OK;
 }
 
@@ -122,7 +122,7 @@ static THREAD_RESULT THREAD_CALL ItemPoller(void *pArg)
 
       dwElapsed = (DWORD)(GetCurrentTimeMs() - qwStart);
    }
-   DbgPrintf(AF_DEBUG_DC, "Item poller thread terminated\n");
+   DbgPrintf(AF_DEBUG_DC, "Item poller thread terminated");
    return THREAD_OK;
 }
 
index e6c8d1d..782b047 100644 (file)
@@ -30,9 +30,9 @@
 char g_szDbDriver[MAX_PATH] = "";
 char g_szDbDrvParams[MAX_PATH] = "";
 char g_szDbServer[MAX_PATH] = "127.0.0.1";
-char g_szDbLogin[MAX_DB_LOGIN] = "root";
+char g_szDbLogin[MAX_DB_LOGIN] = "netxms";
 char g_szDbPassword[MAX_DB_PASSWORD] = "";
-char g_szDbName[MAX_DB_NAME] = "nms";
+char g_szDbName[MAX_DB_NAME] = "netxms_db";
 
 
 //
@@ -166,6 +166,7 @@ BOOL DBQuery(DB_HANDLE hConn, char *szQuery)
    BOOL bResult;
 
    bResult = m_fpDrvQuery(hConn, szQuery);
+   DbgPrintf(AF_DEBUG_SQL, "%s sync query: \"%s\"", bResult ? "Successful" : "Failed", szQuery);
    if ((!bResult) && (g_dwFlags & AF_LOG_SQL_ERRORS))
       WriteLog(MSG_SQL_ERROR, EVENTLOG_ERROR_TYPE, "s", szQuery);
    return bResult;
@@ -181,6 +182,7 @@ DB_RESULT DBSelect(DB_HANDLE hConn, char *szQuery)
    DB_RESULT hResult;
    
    hResult = m_fpDrvSelect(hConn, szQuery);
+   DbgPrintf(AF_DEBUG_SQL, "%s sync query: \"%s\"", (hResult != NULL) ? "Successful" : "Failed", szQuery);
    if ((!hResult) && (g_dwFlags & AF_LOG_SQL_ERRORS))
       WriteLog(MSG_SQL_ERROR, EVENTLOG_ERROR_TYPE, "s", szQuery);
    return hResult;
@@ -271,6 +273,7 @@ DB_ASYNC_RESULT DBAsyncSelect(DB_HANDLE hConn, char *szQuery)
    DB_RESULT hResult;
    
    hResult = m_fpDrvAsyncSelect(hConn, szQuery);
+   DbgPrintf(AF_DEBUG_SQL, "%s async query: \"%s\"", (hResult != NULL) ? "Successful" : "Failed", szQuery);
    if ((!hResult) && (g_dwFlags & AF_LOG_SQL_ERRORS))
       WriteLog(MSG_SQL_ERROR, EVENTLOG_ERROR_TYPE, "s", szQuery);
    return hResult;
index 9c4ae4d..fac6b65 100644 (file)
@@ -442,7 +442,7 @@ void Threshold::UpdateFromMessage(DCI_THRESHOLD *pData)
          m_pszValueStr = strdup(pData->value.szString);
          break;
       default:
-         DbgPrintf(AF_DEBUG_DC, "WARNING: Invalid datatype %d in threshold object %d\n", m_iDataType, m_dwId);
+         DbgPrintf(AF_DEBUG_DC, "WARNING: Invalid datatype %d in threshold object %d", m_iDataType, m_dwId);
          break;
    }
 }
index 0a37d82..21b2baf 100644 (file)
@@ -134,6 +134,6 @@ THREAD_RESULT THREAD_CALL DiscoveryThread(void *arg)
       MutexUnlock(g_hMutexNodeIndex);
    }
 
-   DbgPrintf(AF_DEBUG_DISCOVERY, "Discovery thread terminated\n");
+   DbgPrintf(AF_DEBUG_DISCOVERY, "Discovery thread terminated");
    return THREAD_OK;
 }
index 92c940f..fdf5846 100644 (file)
@@ -82,6 +82,6 @@ THREAD_RESULT THREAD_CALL EventProcessor(void *arg)
       delete pEvent;
    }
 
-   DbgPrintf(AF_DEBUG_EVENTS, "Event processing thread #%d stopped\n", arg);
+   DbgPrintf(AF_DEBUG_EVENTS, "Event processing thread #%d stopped", arg);
    return THREAD_OK;
 }
index 2ca6d2c..49f3445 100644 (file)
@@ -54,7 +54,7 @@ static void CleanDeletedObjects(void)
                // No records with that source ID, so we can purge this object
                sprintf(szQuery, "DELETE FROM deleted_objects WHERE object_id=%ld", dwObjectId);
                DBQuery(g_hCoreDB, szQuery);
-               DbgPrintf(AF_DEBUG_HOUSEKEEPER, "*HK* Deleted object with id %ld was purged\n", dwObjectId);
+               DbgPrintf(AF_DEBUG_HOUSEKEEPER, "*HK* Deleted object with id %ld was purged", dwObjectId);
             }
             DBFreeAsyncResult(hAsyncResult);
          }
index 428761b..0f70467 100644 (file)
@@ -102,7 +102,7 @@ BOOL LockComponent(DWORD dwId, DWORD dwLockBy, char *pszOwnerInfo,
    if (pszCurrentOwnerInfo == NULL)
       pszCurrentOwnerInfo = szBuffer;
 
-   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* Attempting to lock component %d by %d (%s)\n",
+   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* Attempting to lock component %d by %d (%s)",
              dwId, dwLockBy, pszOwnerInfo != NULL ? pszOwnerInfo : "NULL");
    MutexLock(m_hMutexLockerAccess, INFINITE);
    sprintf(szQuery, "SELECT lock_status,owner_info FROM locks WHERE component_id=%ld", dwId);
@@ -150,7 +150,7 @@ void UnlockComponent(DWORD dwId)
    sprintf(szQuery, "UPDATE locks SET lock_status=-1,owner_info='' WHERE component_id=%ld", dwId);
    DBQuery(g_hCoreDB, szQuery);
    MutexUnlock(m_hMutexLockerAccess);
-   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* Component %d unlocked\n", dwId);
+   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* Component %d unlocked", dwId);
 }
 
 
@@ -167,5 +167,5 @@ void RemoveAllSessionLocks(DWORD dwSessionId)
                     "WHERE (component_id <> 0) AND (lock_status = %d)", dwSessionId);
    DBQuery(g_hCoreDB, szQuery);
    MutexUnlock(m_hMutexLockerAccess);
-   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* All locks for session %d removed\n", dwSessionId);
+   DbgPrintf(AF_DEBUG_LOCKS, "*Locks* All locks for session %d removed", dwSessionId);
 }
index a86aeea..65321ff 100644 (file)
@@ -66,7 +66,7 @@ void InitLog(void)
       t = time(NULL);
       loc = localtime(&t);
       strftime(szTimeBuf, 32, "%d-%b-%Y %H:%M:%S", loc);
-      fprintf(m_hLogFile, "\r\n[%s] Log file opened\r\n", szTimeBuf);
+      fprintf(m_hLogFile, "\n[%s] Log file opened\n", szTimeBuf);
       fflush(m_hLogFile);
 
       m_mutexLogAccess = MutexCreate();
@@ -99,7 +99,7 @@ void CloseLog(void)
          t = time(NULL);
          loc = localtime(&t);
          strftime(szTimeBuf, 32, "%d-%b-%Y %H:%M:%S", loc);
-         fprintf(m_hLogFile, "[%s] Log file closed\r\n", szTimeBuf);
+         fprintf(m_hLogFile, "[%s] Log file closed\n", szTimeBuf);
          fclose(m_hLogFile);
       }
       if (m_mutexLogAccess != INVALID_MUTEX_HANDLE)
@@ -281,6 +281,16 @@ void WriteLog(DWORD msg, WORD wType, char *format, ...)
       if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ARGUMENT_ARRAY,
                         NULL, msg, 0, (LPTSTR)&lpMsgBuf, 0, strings)>0)
       {
+         char *pCR;
+
+         // Replace trailing CR/LF pair with LF
+         pCR = strchr((char *)lpMsgBuf, '\r');
+         if (pCR != NULL)
+         {
+            *pCR = '\n';
+            pCR++;
+            *pCR = 0;
+         }
          WriteLogToFile((char *)lpMsgBuf);
          LocalFree(lpMsgBuf);
       }
@@ -288,7 +298,7 @@ void WriteLog(DWORD msg, WORD wType, char *format, ...)
       {
          char message[64];
 
-         sprintf(message,"MSG 0x%08X - Unable to find message text\r\n",msg);
+         sprintf(message,"MSG 0x%08X - Unable to find message text\n",msg);
          WriteLogToFile(message);
       }
    }
index d7402ff..a39d7ca 100644 (file)
@@ -185,6 +185,7 @@ BOOL Initialize(void)
       WriteLog(MSG_DB_CONNFAIL, EVENTLOG_ERROR_TYPE, NULL);
       return FALSE;
    }
+   DbgPrintf(AF_DEBUG_MISC, "Successfully connected to database %s@%s", g_szDbName, g_szDbServer);
 
    // Check database version
    iDBVersion = ConfigReadInt("DBFormatVersion", 0);
@@ -207,6 +208,7 @@ BOOL Initialize(void)
 
    // Load global configuration parameters
    LoadGlobalConfig();
+   DbgPrintf(AF_DEBUG_MISC, "Global configuration loaded");
 
    // Check data directory
    if (!CheckDataDir())
@@ -236,6 +238,7 @@ BOOL Initialize(void)
    ObjectsInit();
    if (!LoadObjects())
       return FALSE;
+   DbgPrintf(AF_DEBUG_MISC, "Objects loaded and initialized");
 
    // Initialize and load event actions
    if (!InitActions())
@@ -286,6 +289,7 @@ BOOL Initialize(void)
    if (ConfigReadInt("EnableAdminInterface", 1))
       ThreadCreate(LocalAdminListener, 0, NULL);
 
+   DbgPrintf(AF_DEBUG_MISC, "Server initialization completed");
    return TRUE;
 }
 
@@ -324,14 +328,14 @@ void Shutdown(void)
    ShutdownMailer();
 
    ThreadSleep(3);     // Give other threads a chance to terminate in a safe way
-   DbgPrintf(AF_DEBUG_MISC, "All threads was notified, continue with shutdown\n");
+   DbgPrintf(AF_DEBUG_MISC, "All threads was notified, continue with shutdown");
 
    SaveObjects();
-   DbgPrintf(AF_DEBUG_MISC, "All objects saved to database\n");
+   DbgPrintf(AF_DEBUG_MISC, "All objects saved to database");
    SaveUsers();
-   DbgPrintf(AF_DEBUG_MISC, "All users saved to database\n");
+   DbgPrintf(AF_DEBUG_MISC, "All users saved to database");
    StopDBWriter();
-   DbgPrintf(AF_DEBUG_MISC, "Database writer stopped\n");
+   DbgPrintf(AF_DEBUG_MISC, "Database writer stopped");
 
    // Remove database lock
    DBQuery(g_hCoreDB, "UPDATE locks SET lock_status=-1,owner_info='' WHERE component_id=0");
index 626eb91..5965102 100644 (file)
@@ -145,7 +145,8 @@ typedef void * HSNMPSESSION;
 #define AF_DEBUG_LOCKS                    0x00002000
 #define AF_DEBUG_ACTIONS                  0x00004000
 #define AF_DEBUG_MISC                     0x00008000
-#define AF_DEBUG_ALL                      0x0000FF00
+#define AF_DEBUG_SQL                      0x00010000
+#define AF_DEBUG_ALL                      0x0001FF00
 #define AF_DB_LOCKED                      0x01000000
 #define AF_SHUTDOWN                       0x80000000
 
index 04aeeb9..d44cdc3 100644 (file)
@@ -636,7 +636,7 @@ void Node::ConfigurationPoll(ClientSession *pSession, DWORD dwRqId)
    PollerLock();
    m_pPollRequestor = pSession;
    SendPollerMsg(dwRqId, _T("Starting status poll for node %s\r\n"), m_szName);
-   DbgPrintf(AF_DEBUG_DISCOVERY, "Starting configuration poll for node %s (ID: %d)\n", m_szName, m_dwId);
+   DbgPrintf(AF_DEBUG_DISCOVERY, "Starting configuration poll for node %s (ID: %d)", m_szName, m_dwId);
 
    // Check node's capabilities
    SendPollerMsg(dwRqId, _T("Checking node's capabilities...\r\n"));
@@ -754,7 +754,7 @@ void Node::ConfigurationPoll(ClientSession *pSession, DWORD dwRqId)
                             "Node configuration was%schanged after poll\r\n"),
                  m_szName, bHasChanges ? _T(" ") : _T(" not "));
    PollerUnlock();
-   DbgPrintf(AF_DEBUG_DISCOVERY, "Finished configuration poll for node %s (ID: %d)\n", m_szName, m_dwId);
+   DbgPrintf(AF_DEBUG_DISCOVERY, "Finished configuration poll for node %s (ID: %d)", m_szName, m_dwId);
 
    if (bHasChanges)
    {
index ee9f79b..eaf4a9c 100644 (file)
@@ -33,13 +33,13 @@ NetObj *PollNewNode(DWORD dwIpAddr, DWORD dwNetMask, DWORD dwFlags, TCHAR *pszNa
    Node *pNode;
    char szIpAddr1[32], szIpAddr2[32];
 
-   DbgPrintf(AF_DEBUG_DISCOVERY, "PollNode(%s,%s)\n",  
+   DbgPrintf(AF_DEBUG_DISCOVERY, "PollNode(%s,%s)",  
              IpToStr(dwIpAddr, szIpAddr1), IpToStr(dwNetMask, szIpAddr2));
    // Check for node existence
    if ((FindNodeByIP(dwIpAddr) != NULL) ||
        (FindSubnetByIP(dwIpAddr) != NULL))
    {
-      DbgPrintf(AF_DEBUG_DISCOVERY, "PollNode: Node %s already exist in database\n", 
+      DbgPrintf(AF_DEBUG_DISCOVERY, "PollNode: Node %s already exist in database", 
                 IpToStr(dwIpAddr, szIpAddr1));
       return NULL;
    }
@@ -48,7 +48,7 @@ NetObj *PollNewNode(DWORD dwIpAddr, DWORD dwNetMask, DWORD dwFlags, TCHAR *pszNa
    NetObjInsert(pNode, TRUE);
    if (!pNode->NewNodePoll(dwNetMask))
    {
-      DbgPrintf(AF_DEBUG_DISCOVERY, "Node::NewNodePoll(%s)failed\n", 
+      DbgPrintf(AF_DEBUG_DISCOVERY, "Node::NewNodePoll(%s)failed", 
                 IpToStr(dwIpAddr, szIpAddr1));
       ObjectsGlobalLock();
       NetObjDelete(pNode);
@@ -78,7 +78,7 @@ THREAD_RESULT THREAD_CALL NodePoller(void *arg)
    // Read configuration and initialize
    iPollInterval = ConfigReadInt("NewNodePollingInterval", 60);
    dwWatchdogId = WatchdogAddThread("Node Poller", iPollInterval * 2 + 10);
-   DbgPrintf(AF_DEBUG_DISCOVERY, "Node poller started with poll interval %d seconds\n", iPollInterval);
+   DbgPrintf(AF_DEBUG_DISCOVERY, "Node poller started with poll interval %d seconds", iPollInterval);
 
    while(!ShutdownInProgress())
    {
@@ -112,6 +112,6 @@ THREAD_RESULT THREAD_CALL NodePoller(void *arg)
          DBFreeResult(hResult);
       }
    }
-   DbgPrintf(AF_DEBUG_DISCOVERY, "Node poller thread terminated\n");
+   DbgPrintf(AF_DEBUG_DISCOVERY, "Node poller thread terminated");
    return THREAD_OK;
 }
index 7a75bef..c898943 100644 (file)
@@ -38,7 +38,7 @@ void SaveObjects(void)
       if (g_pIndexById[i].pObject->IsDeleted())
          if (g_pIndexById[i].pObject->RefCount() == 0)
          {
-            DbgPrintf(AF_DEBUG_HOUSEKEEPER, "* Syncer * Object %d \"%s\" deleted\n",
+            DbgPrintf(AF_DEBUG_HOUSEKEEPER, "* Syncer * Object %d \"%s\" deleted",
                       g_pIndexById[i].pObject->Id(), g_pIndexById[i].pObject->Name());
             g_pIndexById[i].pObject->DeleteFromDB();
             NetObjDelete(g_pIndexById[i].pObject);
@@ -46,7 +46,7 @@ void SaveObjects(void)
          }
          else
          {
-            DbgPrintf(AF_DEBUG_HOUSEKEEPER, "* Syncer * Unable to delete object with id %d because it is being referenced %d time(s)\n",
+            DbgPrintf(AF_DEBUG_HOUSEKEEPER, "* Syncer * Unable to delete object with id %d because it is being referenced %d time(s)",
                       g_pIndexById[i].pObject->Id(), g_pIndexById[i].pObject->RefCount());
          }
 
@@ -70,7 +70,7 @@ THREAD_RESULT THREAD_CALL Syncer(void *arg)
 
    // Read configuration
    iSyncInterval = ConfigReadInt("SyncInterval", 60);
-   DbgPrintf(AF_DEBUG_HOUSEKEEPER, "Syncer thread started, sync_interval = %d\n", iSyncInterval);
+   DbgPrintf(AF_DEBUG_HOUSEKEEPER, "Syncer thread started, sync_interval = %d", iSyncInterval);
    dwWatchdogId = WatchdogAddThread("Syncer Thread", iSyncInterval * 2 + 10);
 
    // Main syncer loop
@@ -82,6 +82,6 @@ THREAD_RESULT THREAD_CALL Syncer(void *arg)
       SaveObjects();
       SaveUsers();
    }
-   DbgPrintf(AF_DEBUG_HOUSEKEEPER, "Syncer thread terminated\n");
+   DbgPrintf(AF_DEBUG_HOUSEKEEPER, "Syncer thread terminated");
    return THREAD_OK;
 }
index 5ac245c..e993034 100644 (file)
@@ -270,7 +270,7 @@ BYTE *LoadFile(char *pszFileName, DWORD *pdwFileSize)
    BYTE *pBuffer = NULL;
    struct stat fs;
 
-   DbgPrintf(AF_DEBUG_MISC, "Loading file \"%s\" into memory\n", pszFileName);
+   DbgPrintf(AF_DEBUG_MISC, "Loading file \"%s\" into memory", pszFileName);
    fd = open(pszFileName, O_RDONLY | O_BINARY);
    if (fd != -1)
    {
@@ -285,7 +285,7 @@ BYTE *LoadFile(char *pszFileName, DWORD *pdwFileSize)
                iNumBytes = min(16384, fs.st_size - iBufPos);
                if ((iBytesRead = read(fd, &pBuffer[iBufPos], iNumBytes)) < 0)
                {
-                  DbgPrintf(AF_DEBUG_MISC, "File read operation failed\n");
+                  DbgPrintf(AF_DEBUG_MISC, "File read operation failed");
                   free(pBuffer);
                   pBuffer = NULL;
                   break;
index a7666dd..5346baa 100644 (file)
@@ -147,6 +147,6 @@ THREAD_RESULT THREAD_CALL WatchdogThread(void *arg)
 
    MutexDestroy(m_mutexWatchdogAccess);
    m_mutexWatchdogAccess = NULL;
-   DbgPrintf(AF_DEBUG_MISC, "Watchdog thread terminated\n");
+   DbgPrintf(AF_DEBUG_MISC, "Watchdog thread terminated");
    return THREAD_OK;
 }