ICMP ping timeout made configurable; code refactoring
authorVictor Kirhenshtein <victor@netxms.org>
Sun, 10 Nov 2013 20:27:56 +0000 (22:27 +0200)
committerVictor Kirhenshtein <victor@netxms.org>
Sun, 10 Nov 2013 20:27:56 +0000 (22:27 +0200)
21 files changed:
ChangeLog
build/build_number
include/build.h
include/netxmsdb.h
sql/setup.in
src/java/build/set_build_number.cmd
src/java/netxms-base/src/main/java/org/netxms/base/BuildNumber.java
src/server/core/bizservice.cpp
src/server/core/dcitem.cpp
src/server/core/interface.cpp
src/server/core/main.cpp
src/server/core/netobj.cpp
src/server/core/netsrv.cpp
src/server/core/node.cpp
src/server/core/np.cpp
src/server/core/poll.cpp
src/server/core/session.cpp
src/server/include/nms_core.h
src/server/include/nms_objects.h
src/server/tools/nxdbmgr/nxdbmgr.cpp
src/server/tools/nxdbmgr/upgrade.cpp

index 0578e1e..bfce9a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,9 +6,10 @@
 - NXSL:
        - Implemented post-increment and post-decrement for array elements
        - New functions: GetDCIValues
+- Server's ICMP ping timeout can be configured
 - Management console:
        - New command line option -fullscreen
-- Fixed issues: #150, #226, #378, #401, #410, #384
+- Fixed issues: #150, #226, #378, #384, #401, #410, #419
 
 
 *
index bc64659..fe92d6e 100644 (file)
@@ -1 +1 @@
-7848
+7849
index e3aefb4..055dde6 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef __build_h
 #define __build_h
-#define NETXMS_VERSION_BUILD 7848
-#define NETXMS_VERSION_BUILD_STRING _T("7848")
+#define NETXMS_VERSION_BUILD 7849
+#define NETXMS_VERSION_BUILD_STRING _T("7849")
 #endif
index 03f9714..549990e 100644 (file)
@@ -23,6 +23,6 @@
 #ifndef _netxmsdb_h
 #define _netxmsdb_h
 
-#define DB_FORMAT_VERSION   294
+#define DB_FORMAT_VERSION   295
 
 #endif
index 0788004..c0b3c50 100644 (file)
@@ -69,6 +69,7 @@ INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('FixedStatusValue','0',1,1);
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('HouseKeepingInterval','3600',1,1);
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('IcmpPingSize','46',1,1);
+INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('IcmpPingTimeout','1500',1,1);
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('InternalCA','0',1,1);
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('IntruderLockoutThreshold','0',1,0);
 INSERT INTO config (var_name,var_value,is_visible,need_server_restart) VALUES ('IntruderLockoutTime','30',1,0);
index b394111..c39bde9 100644 (file)
@@ -1,5 +1,5 @@
 package org.netxms.base;
 public final class BuildNumber {
-   public static final String TEXT = "7848";
-   public static final int NUMBER = 7848;
+   public static final String TEXT = "7849";
+   public static final int NUMBER = 7849;
 }
index c594327..dce1f76 100644 (file)
@@ -168,11 +168,9 @@ void BusinessService::CreateMessage(CSCPMessage *pMsg)
    ServiceContainer::CreateMessage(pMsg);
 }
 
-
-//
-// Modify object from message
-//
-
+/**
+ * Modify object from message
+ */
 UINT32 BusinessService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLocked)
 {
    if (!bAlreadyLocked)
@@ -181,31 +179,25 @@ UINT32 BusinessService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLo
    return ServiceContainer::ModifyFromMessage(pRequest, TRUE);
 }
 
-
-//
-// Check if service is ready for poll
-//
-
+/**
+ * Check if service is ready for poll
+ */
 bool BusinessService::isReadyForPolling()
 {
-       return time(NULL) - m_lastPollTime > g_dwSlmPollingInterval && !m_busy;
+       return (time(NULL) - m_lastPollTime > g_slmPollingInterval) && !m_busy;
 }
 
-
-//
-// Lock service for polling
-//
-
+/**
+ * Lock service for polling
+ */
 void BusinessService::lockForPolling()
 {
        m_busy = true;
 }
 
-
-//
-// A callback for poller threads
-//
-
+/**
+ * A callback for poller threads
+ */
 void BusinessService::poll(ClientSession *pSession, UINT32 dwRqId, int nPoller)
 {
        DbgPrintf(5, _T("Started polling of business service %s [%d]"), m_szName, (int)m_dwId);
index 4be16df..0748329 100644 (file)
@@ -458,7 +458,7 @@ void DCItem::checkThresholds(ItemValue &value)
          case ALREADY_ACTIVE:
                                // Check if we need to re-sent threshold violation event
                                if (t->getRepeatInterval() == -1)
-                                       dwInterval = g_dwThresholdRepeatInterval;
+                                       dwInterval = g_thresholdRepeatInterval;
                                else
                                        dwInterval = (UINT32)t->getRepeatInterval();
                                if ((dwInterval != 0) && (t->getLastEventTimestamp() + (time_t)dwInterval < now))
index d9ed7a5..432b136 100644 (file)
@@ -40,10 +40,10 @@ Interface::Interface() : NetObj()
        m_peerInterfaceId = 0;
        m_dot1xPaeAuthState = PAE_STATE_UNKNOWN;
        m_dot1xBackendAuthState = BACKEND_STATE_UNKNOWN;
-   m_qwLastDownEventId = 0;
-       m_iPendingStatus = -1;
-       m_iPollCount = 0;
-       m_iRequiredPollCount = 0;       // Use system default
+   m_lastDownEventId = 0;
+       m_pendingStatus = -1;
+       m_pollCount = 0;
+       m_requiredPollCount = 0;        // Use system default
        m_zoneId = 0;
 }
 
@@ -70,10 +70,10 @@ Interface::Interface(UINT32 dwAddr, UINT32 dwNetMask, UINT32 zoneId, bool bSynth
        m_dot1xPaeAuthState = PAE_STATE_UNKNOWN;
        m_dot1xBackendAuthState = BACKEND_STATE_UNKNOWN;
    memset(m_bMacAddr, 0, MAC_ADDR_LENGTH);
-   m_qwLastDownEventId = 0;
-       m_iPendingStatus = -1;
-       m_iPollCount = 0;
-       m_iRequiredPollCount = 0;       // Use system default
+   m_lastDownEventId = 0;
+       m_pendingStatus = -1;
+       m_pollCount = 0;
+       m_requiredPollCount = 0;        // Use system default
        m_zoneId = zoneId;
    m_isHidden = true;
 }
@@ -103,10 +103,10 @@ Interface::Interface(const TCHAR *name, const TCHAR *descr, UINT32 index, UINT32
        m_dot1xPaeAuthState = PAE_STATE_UNKNOWN;
        m_dot1xBackendAuthState = BACKEND_STATE_UNKNOWN;
    memset(m_bMacAddr, 0, MAC_ADDR_LENGTH);
-   m_qwLastDownEventId = 0;
-       m_iPendingStatus = -1;
-       m_iPollCount = 0;
-       m_iRequiredPollCount = 0;       // Use system default
+   m_lastDownEventId = 0;
+       m_pendingStatus = -1;
+       m_pollCount = 0;
+       m_requiredPollCount = 0;        // Use system default
        m_zoneId = zoneId;
    m_isHidden = true;
 }
@@ -155,7 +155,7 @@ BOOL Interface::CreateFromDB(UINT32 dwId)
       UINT32 nodeId = DBGetFieldULong(hResult, 0, 4);
                DBGetFieldByteArray2(hResult, 0, 5, m_bMacAddr, MAC_ADDR_LENGTH, 0);
                m_flags = DBGetFieldULong(hResult, 0, 6);
-      m_iRequiredPollCount = DBGetFieldLong(hResult, 0, 7);
+      m_requiredPollCount = DBGetFieldLong(hResult, 0, 7);
                m_bridgePortNumber = DBGetFieldULong(hResult, 0, 8);
                m_slotNumber = DBGetFieldULong(hResult, 0, 9);
                m_portNumber = DBGetFieldULong(hResult, 0, 10);
@@ -261,7 +261,7 @@ BOOL Interface::SaveToDB(DB_HANDLE hdb)
        DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, m_dwIfIndex);
        DBBind(hStmt, 6, DB_SQLTYPE_VARCHAR, BinToStr(m_bMacAddr, MAC_ADDR_LENGTH, szMacStr), DB_BIND_STATIC);
        DBBind(hStmt, 7, DB_SQLTYPE_INTEGER, m_flags);
-       DBBind(hStmt, 8, DB_SQLTYPE_INTEGER, (LONG)m_iRequiredPollCount);
+       DBBind(hStmt, 8, DB_SQLTYPE_INTEGER, (LONG)m_requiredPollCount);
        DBBind(hStmt, 9, DB_SQLTYPE_INTEGER, m_bridgePortNumber);
        DBBind(hStmt, 10, DB_SQLTYPE_INTEGER, m_slotNumber);
        DBBind(hStmt, 11, DB_SQLTYPE_INTEGER, m_portNumber);
@@ -303,10 +303,9 @@ bool Interface::deleteFromDB(DB_HANDLE hdb)
 /**
  * Perform status poll on interface
  */
-void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,     Queue *pEventQueue, 
-                                                                       BOOL bClusterSync, SNMP_Transport *pTransport)
+void Interface::statusPoll(ClientSession *session, UINT32 rqId, Queue *eventQueue, bool clusterSync, SNMP_Transport *snmpTransport)
 {
-   m_pPollRequestor = pSession;
+   m_pollRequestor = session;
    Node *pNode = getParentNode();
    if (pNode == NULL)
    {
@@ -314,8 +313,8 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,  Queue *pEvent
       return;     // Cannot find parent node, which is VERY strange
    }
 
-   sendPollerMsg(dwRqId, _T("   Starting status poll on interface %s\r\n"), m_szName);
-   sendPollerMsg(dwRqId, _T("      Current interface status is %s\r\n"), g_szStatusText[m_iStatus]);
+   sendPollerMsg(rqId, _T("   Starting status poll on interface %s\r\n"), m_szName);
+   sendPollerMsg(rqId, _T("      Current interface status is %s\r\n"), g_szStatusText[m_iStatus]);
 
        int adminState = IF_ADMIN_STATE_UNKNOWN;
        int operState = IF_OPER_STATE_UNKNOWN;
@@ -325,45 +324,45 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,        Queue *pEvent
    if ((pNode->getFlags() & NF_IS_NATIVE_AGENT) &&
        (!(pNode->getFlags() & NF_DISABLE_NXCP)) && (!(pNode->getRuntimeFlags() & NDF_AGENT_UNREACHABLE)))
    {
-      sendPollerMsg(dwRqId, _T("      Retrieving interface status from NetXMS agent\r\n"));
+      sendPollerMsg(rqId, _T("      Retrieving interface status from NetXMS agent\r\n"));
       pNode->getInterfaceStatusFromAgent(m_dwIfIndex, &adminState, &operState);
                DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): new state from NetXMS agent: adinState=%d operState=%d"), m_dwId, m_szName, adminState, operState);
                if ((adminState != IF_ADMIN_STATE_UNKNOWN) && (operState != IF_OPER_STATE_UNKNOWN))
                {
-                       sendPollerMsg(dwRqId, POLLER_INFO _T("      Interface status retrieved from NetXMS agent\r\n"));
+                       sendPollerMsg(rqId, POLLER_INFO _T("      Interface status retrieved from NetXMS agent\r\n"));
          bNeedPoll = FALSE;
                }
                else
                {
-                       sendPollerMsg(dwRqId, POLLER_WARNING _T("      Unable to retrieve interface status from NetXMS agent\r\n"));
+                       sendPollerMsg(rqId, POLLER_WARNING _T("      Unable to retrieve interface status from NetXMS agent\r\n"));
                }
    }
 
    if (bNeedPoll && (pNode->getFlags() & NF_IS_SNMP) &&
        (!(pNode->getFlags() & NF_DISABLE_SNMP)) && (!(pNode->getRuntimeFlags() & NDF_SNMP_UNREACHABLE)) &&
-                (pTransport != NULL))
+                (snmpTransport != NULL))
    {
-      sendPollerMsg(dwRqId, _T("      Retrieving interface status from SNMP agent\r\n"));
-      pNode->getInterfaceStatusFromSNMP(pTransport, m_dwIfIndex, &adminState, &operState);
+      sendPollerMsg(rqId, _T("      Retrieving interface status from SNMP agent\r\n"));
+      pNode->getInterfaceStatusFromSNMP(snmpTransport, m_dwIfIndex, &adminState, &operState);
                DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): new state from SNMP: adminState=%d operState=%d"), m_dwId, m_szName, adminState, operState);
                if ((adminState != IF_ADMIN_STATE_UNKNOWN) && (operState != IF_OPER_STATE_UNKNOWN))
                {
-                       sendPollerMsg(dwRqId, POLLER_INFO _T("      Interface status retrieved from SNMP agent\r\n"));
+                       sendPollerMsg(rqId, POLLER_INFO _T("      Interface status retrieved from SNMP agent\r\n"));
          bNeedPoll = FALSE;
                }
                else
                {
-                       sendPollerMsg(dwRqId, POLLER_WARNING _T("      Unable to retrieve interface status from SNMP agent\r\n"));
+                       sendPollerMsg(rqId, POLLER_WARNING _T("      Unable to retrieve interface status from SNMP agent\r\n"));
                }
    }
    
    if (bNeedPoll)
    {
                // Pings cannot be used for cluster sync interfaces
-      if ((pNode->getFlags() & NF_DISABLE_ICMP) || bClusterSync || (m_dwIpAddr == 0) || isLoopback())
+      if ((pNode->getFlags() & NF_DISABLE_ICMP) || clusterSync || (m_dwIpAddr == 0) || isLoopback())
       {
                        // Interface doesn't have an IP address, so we can't ping it
-                       sendPollerMsg(dwRqId, POLLER_WARNING _T("      Interface status cannot be determined\r\n"));
+                       sendPollerMsg(rqId, POLLER_WARNING _T("      Interface status cannot be determined\r\n"));
                        DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): cannot use ping for status check"), m_dwId, m_szName);
       }
       else
@@ -382,7 +381,7 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,  Queue *pEvent
 
                        if (icmpProxy != 0)
                        {
-                               sendPollerMsg(dwRqId, _T("      Starting ICMP ping via proxy\r\n"));
+                               sendPollerMsg(rqId, _T("      Starting ICMP ping via proxy\r\n"));
                                DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): ping via proxy [%u]"), m_dwId, m_szName, icmpProxy);
                                Node *proxyNode = (Node *)g_idxNodeById.get(icmpProxy);
                                if ((proxyNode != NULL) && proxyNode->isNativeAgent() && !proxyNode->isDown())
@@ -419,20 +418,20 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,        Queue *pEvent
                                        else
                                        {
                                                DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): cannot connect to agent on proxy node"), m_dwId, m_szName);
-                                               sendPollerMsg(dwRqId, POLLER_ERROR _T("      Unable to establish connection with proxy node\r\n"));
+                                               sendPollerMsg(rqId, POLLER_ERROR _T("      Unable to establish connection with proxy node\r\n"));
                                        }
                                }
                                else
                                {
                                        DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): proxy node not available"), m_dwId, m_szName);
-                                       sendPollerMsg(dwRqId, POLLER_ERROR _T("      ICMP proxy not available\r\n"));
+                                       sendPollerMsg(rqId, POLLER_ERROR _T("      ICMP proxy not available\r\n"));
                                }
                        }
                        else    // not using ICMP proxy
                        {
-                               sendPollerMsg(dwRqId, _T("      Starting ICMP ping\r\n"));
-                               DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): calling IcmpPing(0x%08X,3,1500,NULL,%d)"), m_dwId, m_szName, htonl(m_dwIpAddr), g_dwPingSize);
-                               UINT32 dwPingStatus = IcmpPing(htonl(m_dwIpAddr), 3, 1500, NULL, g_dwPingSize);
+                               sendPollerMsg(rqId, _T("      Starting ICMP ping\r\n"));
+                               DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): calling IcmpPing(0x%08X,3,%d,NULL,%d)"), m_dwId, m_szName, htonl(m_dwIpAddr), g_icmpPingTimeout, g_icmpPingSize);
+                               UINT32 dwPingStatus = IcmpPing(htonl(m_dwIpAddr), 3, g_icmpPingTimeout, NULL, g_icmpPingSize);
                                if (dwPingStatus == ICMP_RAW_SOCK_FAILED)
                                        nxlog_write(MSG_RAW_SOCK_FAILED, EVENTLOG_WARNING_TYPE, NULL);
                                if (dwPingStatus == ICMP_SUCCESS)
@@ -489,7 +488,7 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,  Queue *pEvent
        if ((pNode->getFlags() & NF_IS_8021X) && isPhysicalPort())
        {
                DbgPrintf(5, _T("StatusPoll(%s): Checking 802.1x state for interface %s"), pNode->Name(), m_szName);
-               paeStatusPoll(pSession, dwRqId, pTransport, pNode);
+               paeStatusPoll(session, rqId, snmpTransport, pNode);
                if ((m_dot1xPaeAuthState == PAE_STATE_FORCE_UNAUTH) && (newStatus < STATUS_MAJOR))
                        newStatus = STATUS_MAJOR;
        }
@@ -501,24 +500,24 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,        Queue *pEvent
                DbgPrintf(6, _T("StatusPoll(%s): Status for interface %s reset to UNKNOWN"), pNode->Name(), m_szName);
        }
    
-       if (newStatus == m_iPendingStatus)
+       if (newStatus == m_pendingStatus)
        {
-               m_iPollCount++;
+               m_pollCount++;
        }
        else
        {
-               m_iPendingStatus = newStatus;
-               m_iPollCount = 1;
+               m_pendingStatus = newStatus;
+               m_pollCount = 1;
        }
 
-       int requiredPolls = (m_iRequiredPollCount > 0) ? m_iRequiredPollCount : g_nRequiredPolls;
-       sendPollerMsg(dwRqId, _T("      Interface is %s for %d poll%s (%d poll%s required for status change)\r\n"),
-                     g_szStatusText[newStatus], m_iPollCount, (m_iPollCount == 1) ? _T("") : _T("s"),
+       int requiredPolls = (m_requiredPollCount > 0) ? m_requiredPollCount : g_requiredPolls;
+       sendPollerMsg(rqId, _T("      Interface is %s for %d poll%s (%d poll%s required for status change)\r\n"),
+                     g_szStatusText[newStatus], m_pollCount, (m_pollCount == 1) ? _T("") : _T("s"),
                      requiredPolls, (requiredPolls == 1) ? _T("") : _T("s"));
        DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): newStatus=%d oldStatus=%d pollCount=%d requiredPolls=%d"),
-                 m_dwId, m_szName, newStatus, oldStatus, m_iPollCount, requiredPolls);
+                 m_dwId, m_szName, newStatus, oldStatus, m_pollCount, requiredPolls);
 
-   if ((newStatus != oldStatus) && (m_iPollCount >= requiredPolls) && (expectedState != IF_EXPECTED_STATE_IGNORE))
+   if ((newStatus != oldStatus) && (m_pollCount >= requiredPolls) && (expectedState != IF_EXPECTED_STATE_IGNORE))
    {
                static UINT32 statusToEvent[] =
                {
@@ -547,9 +546,9 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,  Queue *pEvent
 
                DbgPrintf(7, _T("Interface::StatusPoll(%d,%s): status changed from %d to %d"), m_dwId, m_szName, m_iStatus, newStatus);
                m_iStatus = newStatus;
-               m_iPendingStatus = -1;  // Invalidate pending status
-               sendPollerMsg(dwRqId, _T("      Interface status changed to %s\r\n"), g_szStatusText[m_iStatus]);
-               PostEventEx(pEventQueue, 
+               m_pendingStatus = -1;   // Invalidate pending status
+               sendPollerMsg(rqId, _T("      Interface status changed to %s\r\n"), g_szStatusText[m_iStatus]);
+               PostEventEx(eventQueue, 
                            (expectedState == IF_EXPECTED_STATE_DOWN) ? statusToEventInverted[m_iStatus] : statusToEvent[m_iStatus],
                                                pNode->Id(), "dsaad", m_dwId, m_szName, m_dwIpAddr, m_dwIpNetMask, m_dwIfIndex);
    }
@@ -557,7 +556,7 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,  Queue *pEvent
        {
                m_iStatus = (newStatus <= STATUS_CRITICAL) ? STATUS_NORMAL : newStatus;
                if (m_iStatus != oldStatus)
-                       m_iPendingStatus = -1;  // Invalidate pending status
+                       m_pendingStatus = -1;   // Invalidate pending status
        }
 
        LockData();
@@ -569,14 +568,14 @@ void Interface::StatusPoll(ClientSession *pSession, UINT32 dwRqId,        Queue *pEvent
        }
        UnlockData();
        
-       sendPollerMsg(dwRqId, _T("      Interface status after poll is %s\r\n"), g_szStatusText[m_iStatus]);
-       sendPollerMsg(dwRqId, _T("   Finished status poll on interface %s\r\n"), m_szName);
+       sendPollerMsg(rqId, _T("      Interface status after poll is %s\r\n"), g_szStatusText[m_iStatus]);
+       sendPollerMsg(rqId, _T("   Finished status poll on interface %s\r\n"), m_szName);
 }
 
 /**
  * PAE (802.1x) status poll
  */
-void Interface::paeStatusPoll(ClientSession *pSession, UINT32 dwRqId, SNMP_Transport *pTransport, Node *node)
+void Interface::paeStatusPoll(ClientSession *pSession, UINT32 rqId, SNMP_Transport *pTransport, Node *node)
 {
        static const TCHAR *paeStateText[] = 
        {
@@ -607,7 +606,7 @@ void Interface::paeStatusPoll(ClientSession *pSession, UINT32 dwRqId, SNMP_Trans
 #define PAE_STATE_TEXT(x) ((((int)(x) <= PAE_STATE_RESTART) && ((int)(x) >= 0)) ? paeStateText[(int)(x)] : paeStateText[0])
 #define BACKEND_STATE_TEXT(x) ((((int)(x) <= BACKEND_STATE_IGNORE) && ((int)(x) >= 0)) ? backendStateText[(int)(x)] : backendStateText[0])
 
-   sendPollerMsg(dwRqId, _T("      Checking port 802.1x status...\r\n"));
+   sendPollerMsg(rqId, _T("      Checking port 802.1x status...\r\n"));
 
        TCHAR oid[256];
        INT32 paeState = PAE_STATE_UNKNOWN, backendState = BACKEND_STATE_UNKNOWN;
@@ -621,7 +620,7 @@ void Interface::paeStatusPoll(ClientSession *pSession, UINT32 dwRqId, SNMP_Trans
 
        if (m_dot1xPaeAuthState != (WORD)paeState)
        {
-          sendPollerMsg(dwRqId, _T("      Port PAE state changed to %s...\r\n"), PAE_STATE_TEXT(paeState));
+          sendPollerMsg(rqId, _T("      Port PAE state changed to %s...\r\n"), PAE_STATE_TEXT(paeState));
                modified = true;
 
                PostEvent(EVENT_8021X_PAE_STATE_CHANGED, node->Id(), "dsdsds", paeState, PAE_STATE_TEXT(paeState),
@@ -635,7 +634,7 @@ void Interface::paeStatusPoll(ClientSession *pSession, UINT32 dwRqId, SNMP_Trans
 
        if (m_dot1xBackendAuthState != (WORD)backendState)
        {
-          sendPollerMsg(dwRqId, _T("      Port backend state changed to %s...\r\n"), BACKEND_STATE_TEXT(backendState));
+          sendPollerMsg(rqId, _T("      Port backend state changed to %s...\r\n"), BACKEND_STATE_TEXT(backendState));
                modified = true;
 
                PostEvent(EVENT_8021X_BACKEND_STATE_CHANGED, node->Id(), "dsdsds", backendState, BACKEND_STATE_TEXT(backendState),
@@ -674,7 +673,7 @@ void Interface::CreateMessage(CSCPMessage *pMsg)
    pMsg->SetVariable(VID_IP_NETMASK, m_dwIpNetMask);
    pMsg->SetVariable(VID_MAC_ADDR, m_bMacAddr, MAC_ADDR_LENGTH);
        pMsg->SetVariable(VID_FLAGS, m_flags);
-       pMsg->SetVariable(VID_REQUIRED_POLLS, (WORD)m_iRequiredPollCount);
+       pMsg->SetVariable(VID_REQUIRED_POLLS, (WORD)m_requiredPollCount);
        pMsg->SetVariable(VID_PEER_NODE_ID, m_peerNodeId);
        pMsg->SetVariable(VID_PEER_INTERFACE_ID, m_peerInterfaceId);
        pMsg->SetVariable(VID_DESCRIPTION, m_description);
@@ -695,7 +694,7 @@ UINT32 Interface::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLocked)
 
    // Number of required polls
    if (pRequest->IsVariableExist(VID_REQUIRED_POLLS))
-      m_iRequiredPollCount = (int)pRequest->GetVariableShort(VID_REQUIRED_POLLS);
+      m_requiredPollCount = (int)pRequest->GetVariableShort(VID_REQUIRED_POLLS);
 
        // Expected interface state
        if (pRequest->IsVariableExist(VID_EXPECTED_STATE))
index 0ce0c3d..df4166e 100644 (file)
@@ -118,9 +118,10 @@ UINT32 g_dwConfigurationPollingInterval;
 UINT32 g_dwRoutingTableUpdateInterval;
 UINT32 g_dwTopologyPollingInterval;
 UINT32 g_dwConditionPollingInterval;
-UINT32 g_dwPingSize;
-UINT32 g_dwAuditFlags;
-UINT32 g_dwSlmPollingInterval;
+UINT32 g_icmpPingSize;
+UINT32 g_icmpPingTimeout = 1500;    // ICMP ping timeout (milliseconds)
+UINT32 g_auditFlags;
+UINT32 g_slmPollingInterval;
 TCHAR g_szDataDir[MAX_PATH] = _T("");
 TCHAR g_szLibDir[MAX_PATH] = DEFAULT_LIBDIR;
 TCHAR g_szJavaLibDir[MAX_PATH] = DEFAULT_JAVA_LIBDIR;
@@ -129,11 +130,11 @@ int g_nDBSyntax = DB_SYNTAX_UNKNOWN;
 UINT32 NXCORE_EXPORTABLE g_processAffinityMask = DEFAULT_AFFINITY_MASK;
 QWORD g_qwServerId;
 RSA *g_pServerKey = NULL;
-time_t g_tServerStartTime = 0;
-UINT32 g_dwLockTimeout = 60000;   // Default timeout for acquiring mutex
-UINT32 g_dwAgentCommandTimeout = 4000;  // Default timeout for requests to agent
-UINT32 g_dwThresholdRepeatInterval = 0;        // Disabled by default
-int g_nRequiredPolls = 1;
+time_t g_serverStartTime = 0;
+UINT32 g_lockTimeout = 60000;   // Default timeout for acquiring mutex
+UINT32 g_agentCommandTimeout = 4000;  // Default timeout for requests to agent
+UINT32 g_thresholdRepeatInterval = 0;  // Disabled by default
+int g_requiredPolls = 1;
 DB_DRIVER g_dbDriver = NULL;
 
 /**
@@ -285,7 +286,7 @@ static void LoadGlobalConfig()
        g_dwRoutingTableUpdateInterval = ConfigReadInt(_T("RoutingTableUpdateInterval"), 300);
        g_dwTopologyPollingInterval = ConfigReadInt(_T("TopologyPollingInterval"), 1800);
        g_dwConditionPollingInterval = ConfigReadInt(_T("ConditionPollingInterval"), 60);
-       g_dwSlmPollingInterval = ConfigReadInt(_T("SlmPollingInterval"), 60);
+       g_slmPollingInterval = ConfigReadInt(_T("SlmPollingInterval"), 60);
        if (ConfigReadInt(_T("DeleteEmptySubnets"), 1))
                g_dwFlags |= AF_DELETE_EMPTY_SUBNETS;
        if (ConfigReadInt(_T("EnableSNMPTraps"), 1))
@@ -337,12 +338,13 @@ static void LoadGlobalConfig()
                DbgPrintf(1, _T("Using data directory %s"), g_szDataDir);
        }
 
-       g_dwPingSize = ConfigReadInt(_T("IcmpPingSize"), 46);
-       g_dwLockTimeout = ConfigReadInt(_T("LockTimeout"), 60000);
+   g_icmpPingTimeout = ConfigReadInt(_T("IcmpPingTimeout"), 1500);
+       g_icmpPingSize = ConfigReadInt(_T("IcmpPingSize"), 46);
+       g_lockTimeout = ConfigReadInt(_T("LockTimeout"), 60000);
        g_dwSNMPTimeout = ConfigReadInt(_T("SNMPRequestTimeout"), 2000);
-       g_dwAgentCommandTimeout = ConfigReadInt(_T("AgentCommandTimeout"), 4000);
-       g_dwThresholdRepeatInterval = ConfigReadInt(_T("ThresholdRepeatInterval"), 0);
-       g_nRequiredPolls = ConfigReadInt(_T("PollCountForStatusChange"), 1);
+       g_agentCommandTimeout = ConfigReadInt(_T("AgentCommandTimeout"), 4000);
+       g_thresholdRepeatInterval = ConfigReadInt(_T("ThresholdRepeatInterval"), 0);
+       g_requiredPolls = ConfigReadInt(_T("PollCountForStatusChange"), 1);
 }
 
 /**
@@ -520,8 +522,8 @@ BOOL NXCORE_EXPORTABLE Initialize()
        UINT32 dwAddr;
        TCHAR szInfo[256];
 
-       g_tServerStartTime = time(NULL);
-       srand((unsigned int)g_tServerStartTime);
+       g_serverStartTime = time(NULL);
+       srand((unsigned int)g_serverStartTime);
 
        if (!(g_dwFlags & AF_USE_SYSLOG))
        {
index 706c303..ee227ac 100644 (file)
@@ -51,7 +51,7 @@ NetObj::NetObj()
    m_bInheritAccessRights = TRUE;
        m_dwNumTrustedNodes = 0;
        m_pdwTrustedNodes = NULL;
-   m_pPollRequestor = NULL;
+   m_pollRequestor = NULL;
    m_iStatusCalcAlg = SA_CALCULATE_DEFAULT;
    m_iStatusPropAlg = SA_PROPAGATE_DEFAULT;
    m_iFixedStatus = STATUS_WARNING;
@@ -1150,7 +1150,7 @@ bool NetObj::isChild(UINT32 id)
  */
 void NetObj::sendPollerMsg(UINT32 dwRqId, const TCHAR *pszFormat, ...)
 {
-   if (m_pPollRequestor != NULL)
+   if (m_pollRequestor != NULL)
    {
       va_list args;
       TCHAR szBuffer[1024];
@@ -1158,7 +1158,7 @@ void NetObj::sendPollerMsg(UINT32 dwRqId, const TCHAR *pszFormat, ...)
       va_start(args, pszFormat);
       _vsntprintf(szBuffer, 1024, pszFormat, args);
       va_end(args);
-      m_pPollRequestor->sendPollerMsg(dwRqId, szBuffer);
+      m_pollRequestor->sendPollerMsg(dwRqId, szBuffer);
    }
 }
 
index 2f9840d..93a691e 100644 (file)
  */
 NetworkService::NetworkService() : NetObj()
 {
-   m_iServiceType = NETSRV_HTTP;
-   m_pHostNode = NULL;
-   m_dwPollerNode = 0;
-   m_wProto = IPPROTO_TCP;
-   m_wPort = 80;
-   m_pszRequest = NULL;
-   m_pszResponse = NULL;
-       m_iPendingStatus = -1;
-       m_iPollCount = 0;
-       m_iRequiredPollCount = 0;       // Use system default
+   m_serviceType = NETSRV_HTTP;
+   m_hostNode = NULL;
+   m_pollerNode = 0;
+   m_proto = IPPROTO_TCP;
+   m_port = 80;
+   m_request = NULL;
+   m_response = NULL;
+       m_pendingStatus = -1;
+       m_pollCount = 0;
+       m_requiredPollCount = 0;        // Use system default
 }
 
 /**
@@ -48,16 +48,16 @@ NetworkService::NetworkService(int iServiceType, WORD wProto, WORD wPort,
                                TCHAR *pszRequest, TCHAR *pszResponse,
                                                                                 Node *pHostNode, UINT32 dwPollerNode) : NetObj()
 {
-   m_iServiceType = iServiceType;
-   m_pHostNode = pHostNode;
-   m_dwPollerNode = dwPollerNode;
-   m_wProto = wProto;
-   m_wPort = wPort;
-   m_pszRequest = pszRequest;
-   m_pszResponse = pszResponse;
-       m_iPendingStatus = -1;
-       m_iPollCount = 0;
-       m_iRequiredPollCount = 0;       // Use system default
+   m_serviceType = iServiceType;
+   m_hostNode = pHostNode;
+   m_pollerNode = dwPollerNode;
+   m_proto = wProto;
+   m_port = wPort;
+   m_request = pszRequest;
+   m_response = pszResponse;
+       m_pendingStatus = -1;
+       m_pollCount = 0;
+       m_requiredPollCount = 0;        // Use system default
    m_isHidden = true;
 }
 
@@ -66,8 +66,8 @@ NetworkService::NetworkService(int iServiceType, WORD wProto, WORD wPort,
  */
 NetworkService::~NetworkService()
 {
-   safe_free(m_pszRequest);
-   safe_free(m_pszResponse);
+   safe_free(m_request);
+   safe_free(m_response);
 }
 
 /**
@@ -100,15 +100,15 @@ BOOL NetworkService::SaveToDB(DB_HANDLE hdb)
        {
           TCHAR szIpAddr[32];
 
-               DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, m_pHostNode->Id());
-               DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, (LONG)m_iServiceType);
+               DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, m_hostNode->Id());
+               DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, (LONG)m_serviceType);
                DBBind(hStmt, 3, DB_SQLTYPE_VARCHAR, IpToStr(m_dwIpAddr, szIpAddr), DB_BIND_STATIC);
-               DBBind(hStmt, 4, DB_SQLTYPE_INTEGER, (UINT32)m_wProto);
-               DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, (UINT32)m_wPort);
-               DBBind(hStmt, 6, DB_SQLTYPE_TEXT, m_pszRequest, DB_BIND_STATIC);
-               DBBind(hStmt, 7, DB_SQLTYPE_TEXT, m_pszResponse, DB_BIND_STATIC);
-               DBBind(hStmt, 8, DB_SQLTYPE_INTEGER, m_dwPollerNode);
-               DBBind(hStmt, 9, DB_SQLTYPE_INTEGER, (LONG)m_iRequiredPollCount);
+               DBBind(hStmt, 4, DB_SQLTYPE_INTEGER, (UINT32)m_proto);
+               DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, (UINT32)m_port);
+               DBBind(hStmt, 6, DB_SQLTYPE_TEXT, m_request, DB_BIND_STATIC);
+               DBBind(hStmt, 7, DB_SQLTYPE_TEXT, m_response, DB_BIND_STATIC);
+               DBBind(hStmt, 8, DB_SQLTYPE_INTEGER, m_pollerNode);
+               DBBind(hStmt, 9, DB_SQLTYPE_INTEGER, (LONG)m_requiredPollCount);
                DBBind(hStmt, 10, DB_SQLTYPE_INTEGER, m_dwId);
 
                DBExecute(hStmt);
@@ -151,14 +151,14 @@ BOOL NetworkService::CreateFromDB(UINT32 dwId)
    if (DBGetNumRows(hResult) != 0)
    {
       dwHostNodeId = DBGetFieldULong(hResult, 0, 0);
-      m_iServiceType = DBGetFieldLong(hResult, 0, 1);
+      m_serviceType = DBGetFieldLong(hResult, 0, 1);
       m_dwIpAddr = DBGetFieldIPAddr(hResult, 0, 2);
-      m_wProto = (WORD)DBGetFieldULong(hResult, 0, 3);
-      m_wPort = (WORD)DBGetFieldULong(hResult, 0, 4);
-      m_pszRequest = DBGetField(hResult, 0, 5, NULL, 0);
-      m_pszResponse = DBGetField(hResult, 0, 6, NULL, 0);
-      m_dwPollerNode = DBGetFieldULong(hResult, 0, 7);
-      m_iRequiredPollCount = DBGetFieldLong(hResult, 0, 8);
+      m_proto = (WORD)DBGetFieldULong(hResult, 0, 3);
+      m_port = (WORD)DBGetFieldULong(hResult, 0, 4);
+      m_request = DBGetField(hResult, 0, 5, NULL, 0);
+      m_response = DBGetField(hResult, 0, 6, NULL, 0);
+      m_pollerNode = DBGetFieldULong(hResult, 0, 7);
+      m_requiredPollCount = DBGetFieldLong(hResult, 0, 8);
 
       // Link service to node
       if (!m_isDeleted)
@@ -175,25 +175,25 @@ BOOL NetworkService::CreateFromDB(UINT32 dwId)
          }
          else
          {
-            m_pHostNode = (Node *)pObject;
+            m_hostNode = (Node *)pObject;
             pObject->AddChild(this);
             AddParent(pObject);
             bResult = TRUE;
          }
 
          // Check that polling node ID is valid
-         if ((m_dwPollerNode != 0) && bResult)
+         if ((m_pollerNode != 0) && bResult)
          {
-            pObject = FindObjectById(m_dwPollerNode);
+            pObject = FindObjectById(m_pollerNode);
             if (pObject == NULL)
             {
                nxlog_write(MSG_INVALID_NODE_ID_EX, EVENTLOG_ERROR_TYPE,
-                        "dds", dwId, m_dwPollerNode, _T("network service"));
+                        "dds", dwId, m_pollerNode, _T("network service"));
                bResult = FALSE;
             }
             else if (pObject->Type() != OBJECT_NODE)
             {
-               nxlog_write(MSG_NODE_NOT_NODE, EVENTLOG_ERROR_TYPE, "dd", dwId, m_dwPollerNode);
+               nxlog_write(MSG_NODE_NOT_NODE, EVENTLOG_ERROR_TYPE, "dd", dwId, m_pollerNode);
                bResult = FALSE;
             }
          }
@@ -229,13 +229,13 @@ bool NetworkService::deleteFromDB(DB_HANDLE hdb)
 void NetworkService::CreateMessage(CSCPMessage *pMsg)
 {
    NetObj::CreateMessage(pMsg);
-   pMsg->SetVariable(VID_SERVICE_TYPE, (WORD)m_iServiceType);
-   pMsg->SetVariable(VID_IP_PROTO, m_wProto);
-   pMsg->SetVariable(VID_IP_PORT, m_wPort);
-   pMsg->SetVariable(VID_POLLER_NODE_ID, m_dwPollerNode);
-   pMsg->SetVariable(VID_SERVICE_REQUEST, CHECK_NULL_EX(m_pszRequest));
-   pMsg->SetVariable(VID_SERVICE_RESPONSE, CHECK_NULL_EX(m_pszResponse));
-       pMsg->SetVariable(VID_REQUIRED_POLLS, (WORD)m_iRequiredPollCount);
+   pMsg->SetVariable(VID_SERVICE_TYPE, (WORD)m_serviceType);
+   pMsg->SetVariable(VID_IP_PROTO, m_proto);
+   pMsg->SetVariable(VID_IP_PORT, m_port);
+   pMsg->SetVariable(VID_POLLER_NODE_ID, m_pollerNode);
+   pMsg->SetVariable(VID_SERVICE_REQUEST, CHECK_NULL_EX(m_request));
+   pMsg->SetVariable(VID_SERVICE_RESPONSE, CHECK_NULL_EX(m_response));
+       pMsg->SetVariable(VID_REQUIRED_POLLS, (WORD)m_requiredPollCount);
 }
 
 /**
@@ -254,7 +254,7 @@ UINT32 NetworkService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLoc
       dwNodeId = pRequest->GetVariableLong(VID_POLLER_NODE_ID);
       if (dwNodeId == 0)
       {
-         m_dwPollerNode = 0;
+         m_pollerNode = 0;
       }
       else
       {
@@ -265,7 +265,7 @@ UINT32 NetworkService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLoc
          {
             if (pObject->Type() == OBJECT_NODE)
             {
-               m_dwPollerNode = dwNodeId;
+               m_pollerNode = dwNodeId;
             }
             else
             {
@@ -287,32 +287,32 @@ UINT32 NetworkService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLoc
 
    // Service type
    if (pRequest->IsVariableExist(VID_SERVICE_TYPE))
-      m_iServiceType = (int)pRequest->GetVariableShort(VID_SERVICE_TYPE);
+      m_serviceType = (int)pRequest->GetVariableShort(VID_SERVICE_TYPE);
 
    // IP protocol
    if (pRequest->IsVariableExist(VID_IP_PROTO))
-      m_wProto = pRequest->GetVariableShort(VID_IP_PROTO);
+      m_proto = pRequest->GetVariableShort(VID_IP_PROTO);
 
    // TCP/UDP port
    if (pRequest->IsVariableExist(VID_IP_PORT))
-      m_wPort = pRequest->GetVariableShort(VID_IP_PORT);
+      m_port = pRequest->GetVariableShort(VID_IP_PORT);
 
    // Number of required polls
    if (pRequest->IsVariableExist(VID_REQUIRED_POLLS))
-      m_iRequiredPollCount = (int)pRequest->GetVariableShort(VID_REQUIRED_POLLS);
+      m_requiredPollCount = (int)pRequest->GetVariableShort(VID_REQUIRED_POLLS);
 
    // Check request
    if (pRequest->IsVariableExist(VID_SERVICE_REQUEST))
    {
-      safe_free(m_pszRequest);
-      m_pszRequest = pRequest->GetVariableStr(VID_SERVICE_REQUEST);
+      safe_free(m_request);
+      m_request = pRequest->GetVariableStr(VID_SERVICE_REQUEST);
    }
 
    // Check response
    if (pRequest->IsVariableExist(VID_SERVICE_RESPONSE))
    {
-      safe_free(m_pszResponse);
-      m_pszResponse = pRequest->GetVariableStr(VID_SERVICE_RESPONSE);
+      safe_free(m_response);
+      m_response = pRequest->GetVariableStr(VID_SERVICE_RESPONSE);
    }
 
    return NetObj::ModifyFromMessage(pRequest, TRUE);
@@ -321,32 +321,32 @@ UINT32 NetworkService::ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLoc
 /**
  * Perform status poll on network service
  */
-void NetworkService::StatusPoll(ClientSession *pSession, UINT32 dwRqId, Node *pPollerNode, Queue *pEventQueue)
+void NetworkService::statusPoll(ClientSession *session, UINT32 rqId, Node *pollerNode, Queue *eventQueue)
 {
    int oldStatus = m_iStatus, newStatus;
    Node *pNode;
 
-   m_pPollRequestor = pSession;
-   if (m_pHostNode == NULL)
+   m_pollRequestor = session;
+   if (m_hostNode == NULL)
    {
       m_iStatus = STATUS_UNKNOWN;
       return;     // Service without host node, which is VERY strange
    }
 
-   sendPollerMsg(dwRqId, _T("   Starting status poll on network service %s\r\n"), m_szName);
-   sendPollerMsg(dwRqId, _T("      Current service status is %s\r\n"), g_szStatusTextSmall[m_iStatus]);
+   sendPollerMsg(rqId, _T("   Starting status poll on network service %s\r\n"), m_szName);
+   sendPollerMsg(rqId, _T("      Current service status is %s\r\n"), g_szStatusTextSmall[m_iStatus]);
 
-   if (m_dwPollerNode != 0)
+   if (m_pollerNode != 0)
    {
-      pNode = (Node *)FindObjectById(m_dwPollerNode);
+      pNode = (Node *)FindObjectById(m_pollerNode);
       if (pNode != NULL)
          pNode->incRefCount();
       else
-         pNode = pPollerNode;
+         pNode = pollerNode;
    }
    else
    {
-      pNode = pPollerNode;
+      pNode = pollerNode;
    }
 
    if (pNode != NULL)
@@ -354,28 +354,28 @@ void NetworkService::StatusPoll(ClientSession *pSession, UINT32 dwRqId, Node *pP
       TCHAR szBuffer[16];
       UINT32 dwStatus;
 
-      sendPollerMsg(dwRqId, _T("      Polling service from node %s [%s]\r\n"),
+      sendPollerMsg(rqId, _T("      Polling service from node %s [%s]\r\n"),
                     pNode->Name(), IpToStr(pNode->IpAddr(), szBuffer));
       if (pNode->checkNetworkService(&dwStatus, 
-                                     (m_dwIpAddr == 0) ? m_pHostNode->IpAddr() : m_dwIpAddr,
-                                     m_iServiceType, m_wPort, m_wProto, 
-                                     m_pszRequest, m_pszResponse) == ERR_SUCCESS)
+                                     (m_dwIpAddr == 0) ? m_hostNode->IpAddr() : m_dwIpAddr,
+                                     m_serviceType, m_port, m_proto, 
+                                     m_request, m_response) == ERR_SUCCESS)
       {
          newStatus = (dwStatus == 0) ? STATUS_NORMAL : STATUS_CRITICAL;
-         sendPollerMsg(dwRqId, _T("      Agent reports service status [%d]\r\n"), dwStatus);
+         sendPollerMsg(rqId, _T("      Agent reports service status [%d]\r\n"), dwStatus);
       }
       else
       {
-         sendPollerMsg(dwRqId, _T("      Unable to check service status due to agent or communication error\r\n"));
+         sendPollerMsg(rqId, _T("      Unable to check service status due to agent or communication error\r\n"));
          newStatus = STATUS_UNKNOWN;
       }
 
-      if (pNode != pPollerNode)
+      if (pNode != pollerNode)
          pNode->decRefCount();
    }
    else
    {
-      sendPollerMsg(dwRqId, _T("      Unable to find node object for poll\r\n"));
+      sendPollerMsg(rqId, _T("      Unable to find node object for poll\r\n"));
       newStatus = STATUS_UNKNOWN;
    }
 
@@ -388,30 +388,30 @@ void NetworkService::StatusPoll(ClientSession *pSession, UINT32 dwRqId, Node *pP
    
    if (newStatus != oldStatus)
    {
-               if (newStatus == m_iPendingStatus)
+               if (newStatus == m_pendingStatus)
                {
-                       m_iPollCount++;
+                       m_pollCount++;
                }
                else
                {
-                       m_iPendingStatus = newStatus;
-                       m_iPollCount = 1;
+                       m_pendingStatus = newStatus;
+                       m_pollCount = 1;
                }
 
-               if (m_iPollCount >= ((m_iRequiredPollCount > 0) ? m_iRequiredPollCount : g_nRequiredPolls))
+               if (m_pollCount >= ((m_requiredPollCount > 0) ? m_requiredPollCount : g_requiredPolls))
                {
                        m_iStatus = newStatus;
-                       m_iPendingStatus = -1;  // Invalidate pending status
-                       sendPollerMsg(dwRqId, _T("      Service status changed to %s\r\n"), g_szStatusTextSmall[m_iStatus]);
-                       PostEventEx(pEventQueue, m_iStatus == STATUS_NORMAL ? EVENT_SERVICE_UP : 
+                       m_pendingStatus = -1;   // Invalidate pending status
+                       sendPollerMsg(rqId, _T("      Service status changed to %s\r\n"), g_szStatusTextSmall[m_iStatus]);
+                       PostEventEx(eventQueue, m_iStatus == STATUS_NORMAL ? EVENT_SERVICE_UP : 
                                                        (m_iStatus == STATUS_CRITICAL ? EVENT_SERVICE_DOWN : EVENT_SERVICE_UNKNOWN),
-                                                       m_pHostNode->Id(), "sdd", m_szName, m_dwId, m_iServiceType);
+                                                       m_hostNode->Id(), "sdd", m_szName, m_dwId, m_serviceType);
                        LockData();
                        Modify();
                        UnlockData();
                }
    }
-   sendPollerMsg(dwRqId, _T("   Finished status poll on network service %s\r\n"), m_szName);
+   sendPollerMsg(rqId, _T("   Finished status poll on network service %s\r\n"), m_szName);
 }
 
 /**
@@ -420,10 +420,10 @@ void NetworkService::StatusPoll(ClientSession *pSession, UINT32 dwRqId, Node *pP
 void NetworkService::onObjectDelete(UINT32 dwObjectId)
 {
        LockData();
-   if (dwObjectId == m_dwPollerNode)
+   if (dwObjectId == m_pollerNode)
    {
       // If deleted object is our poller node, change it to default
-      m_dwPollerNode = 0;
+      m_pollerNode = 0;
       Modify();
       DbgPrintf(3, _T("Service \"%s\": poller node %d deleted"), m_szName, dwObjectId);
    }
index bdf8c66..246523d 100644 (file)
@@ -1027,7 +1027,7 @@ void Node::statusPoll(ClientSession *pSession, UINT32 dwRqId, int nPoller)
    Queue *pQueue = new Queue;     // Delayed event queue
    SetPollerInfo(nPoller, _T("wait for lock"));
    pollerLock();
-   m_pPollRequestor = pSession;
+   m_pollRequestor = pSession;
    sendPollerMsg(dwRqId, _T("Starting status poll for node %s\r\n"), m_szName);
    DbgPrintf(5, _T("Starting status poll for node %s (ID: %d)"), m_szName, m_dwId);
 
@@ -1184,13 +1184,13 @@ restart_agent_check:
       {
          case OBJECT_INTERFACE:
                           DbgPrintf(7, _T("StatusPoll(%s): polling interface %d [%s]"), m_szName, ppPollList[i]->Id(), ppPollList[i]->Name());
-            ((Interface *)ppPollList[i])->StatusPoll(pSession, dwRqId, pQueue,
+            ((Interface *)ppPollList[i])->statusPoll(pSession, dwRqId, pQueue,
                                        (pCluster != NULL) ? pCluster->isSyncAddr(((Interface *)ppPollList[i])->IpAddr()) : FALSE,
                                        pTransport);
             break;
          case OBJECT_NETWORKSERVICE:
                           DbgPrintf(7, _T("StatusPoll(%s): polling network service %d [%s]"), m_szName, ppPollList[i]->Id(), ppPollList[i]->Name());
-            ((NetworkService *)ppPollList[i])->StatusPoll(pSession, dwRqId,
+            ((NetworkService *)ppPollList[i])->statusPoll(pSession, dwRqId,
                                                           (Node *)pPollerNode, pQueue);
             break;
          default:
@@ -1333,7 +1333,7 @@ restart_agent_check:
    m_tLastStatusPoll = time(NULL);
    sendPollerMsg(dwRqId, _T("Finished status poll for node %s\r\n"), m_szName);
    sendPollerMsg(dwRqId, _T("Node status after poll is %s\r\n"), g_szStatusText[m_iStatus]);
-   m_pPollRequestor = NULL;
+   m_pollRequestor = NULL;
    if (dwRqId == 0)
       m_dwDynamicFlags &= ~NDF_QUEUED_FOR_STATUS_POLL;
    pollerUnlock();
@@ -1595,7 +1595,7 @@ void Node::configurationPoll(ClientSession *pSession, UINT32 dwRqId, int nPoller
 
    SetPollerInfo(nPoller, _T("wait for lock"));
    pollerLock();
-   m_pPollRequestor = pSession;
+   m_pollRequestor = pSession;
    sendPollerMsg(dwRqId, _T("Starting configuration poll for node %s\r\n"), m_szName);
    DbgPrintf(4, _T("Starting configuration poll for node %s (ID: %d)"), m_szName, m_dwId);
 
@@ -2913,7 +2913,7 @@ BOOL Node::connectToAgent(UINT32 *error, UINT32 *socketError)
    bRet = m_pAgentConnection->connect(g_pServerKey, FALSE, error, socketError);
    if (bRet)
        {
-               m_pAgentConnection->setCommandTimeout(g_dwAgentCommandTimeout);
+               m_pAgentConnection->setCommandTimeout(g_agentCommandTimeout);
       m_pAgentConnection->enableTraps();
        }
    return bRet;
@@ -4831,7 +4831,7 @@ void Node::topologyPoll(ClientSession *pSession, UINT32 dwRqId, int nPoller)
        }
 
        pollerLock();
-   m_pPollRequestor = pSession;
+   m_pollRequestor = pSession;
 
    sendPollerMsg(dwRqId, _T("Starting topology poll for node %s\r\n"), m_szName);
        DbgPrintf(4, _T("Started topology poll for node %s [%d]"), m_szName, m_dwId);
@@ -5326,7 +5326,7 @@ void Node::updateInterfaceNames(ClientSession *pSession, UINT32 dwRqId)
        int j;
        
    pollerLock();
-   m_pPollRequestor = pSession;
+   m_pollRequestor = pSession;
    sendPollerMsg(dwRqId, _T("Starting interface names poll for node %s\r\n"), m_szName);
    DbgPrintf(4, _T("Starting interface names poll for node %s (ID: %d)"), m_szName, m_dwId);
 
index 94f62b5..5064eaf 100644 (file)
@@ -331,7 +331,7 @@ static bool HostIsReachable(UINT32 ipAddr, UINT32 zoneId, bool fullCheck, SNMP_T
        }
        else    // not using ICMP proxy
        {
-               if (IcmpPing(htonl(ipAddr), 3, 1500, NULL, g_dwPingSize) == ICMP_SUCCESS)
+               if (IcmpPing(htonl(ipAddr), 3, g_icmpPingTimeout, NULL, g_icmpPingSize) == ICMP_SUCCESS)
                        reachable = true;
        }
 
index ad65edd..5ac065f 100644 (file)
@@ -630,7 +630,7 @@ static void CheckRange(int nType, UINT32 dwAddr1, UINT32 dwAddr2)
 
    for(dwAddr = dwFrom; dwAddr <= dwTo; dwAddr++)
    {
-      if (IcmpPing(htonl(dwAddr), 3, 2000, NULL, g_dwPingSize) == ICMP_SUCCESS)
+      if (IcmpPing(htonl(dwAddr), 3, g_icmpPingTimeout, NULL, g_icmpPingSize) == ICMP_SUCCESS)
       {
          DbgPrintf(5, _T("Active discovery - node %s responds to ICMP ping"),
                    IpToStr(dwAddr, szIpAddr1));
index dbe9c45..c4da77b 100644 (file)
@@ -7236,7 +7236,7 @@ void ClientSession::sendServerStats(UINT32 dwRqId)
 
    // Server version, etc.
    msg.SetVariable(VID_SERVER_VERSION, NETXMS_VERSION_STRING);
-   msg.SetVariable(VID_SERVER_UPTIME, (UINT32)(time(NULL) - g_tServerStartTime));
+   msg.SetVariable(VID_SERVER_UPTIME, (UINT32)(time(NULL) - g_serverStartTime));
 
    // Number of objects and DCIs
        UINT32 dciCount = 0;
index 920b256..56f5058 100644 (file)
@@ -906,14 +906,15 @@ extern TCHAR g_szJavaLibDir[];
 extern UINT32 NXCORE_EXPORTABLE g_processAffinityMask;
 extern QWORD g_qwServerId;
 extern RSA *g_pServerKey;
-extern UINT32 g_dwPingSize;
-extern UINT32 g_dwAuditFlags;
-extern time_t g_tServerStartTime;
-extern UINT32 g_dwLockTimeout;
-extern UINT32 g_dwAgentCommandTimeout;
-extern UINT32 g_dwThresholdRepeatInterval;
-extern int g_nRequiredPolls;
-extern UINT32 g_dwSlmPollingInterval;
+extern UINT32 g_icmpPingSize;
+extern UINT32 g_icmpPingTimeout;
+extern UINT32 g_auditFlags;
+extern time_t g_serverStartTime;
+extern UINT32 g_lockTimeout;
+extern UINT32 g_agentCommandTimeout;
+extern UINT32 g_thresholdRepeatInterval;
+extern int g_requiredPolls;
+extern UINT32 g_slmPollingInterval;
 
 extern TCHAR g_szDbDriver[];
 extern TCHAR g_szDbDrvParams[];
index a987389..43d4e92 100644 (file)
@@ -327,7 +327,7 @@ protected:
    RWLOCK m_rwlockChildList;  // Lock for child list
    UINT32 m_dwIpAddr;          // Every object should have an IP address
        GeoLocation m_geoLocation;
-   ClientSession *m_pPollRequestor;
+   ClientSession *m_pollRequestor;
        UINT32 m_submapId;                              // Map object which should be open on drill-down request
 
    UINT32 m_dwChildCount;      // Number of child objects
@@ -601,10 +601,10 @@ protected:
        WORD m_operState;                                       // interface operational state
        WORD m_dot1xPaeAuthState;               // 802.1x port auth state
        WORD m_dot1xBackendAuthState;   // 802.1x backend auth state
-   QWORD m_qwLastDownEventId;
-       int m_iPendingStatus;
-       int m_iPollCount;
-       int m_iRequiredPollCount;
+   QWORD m_lastDownEventId;
+       int m_pendingStatus;
+       int m_pollCount;
+       int m_requiredPollCount;
    UINT32 m_zoneId;
 
        void paeStatusPoll(ClientSession *pSession, UINT32 dwRqId, SNMP_Transport *pTransport, Node *node);
@@ -651,8 +651,8 @@ public:
                           (!_tcscmp(m_szName, _T("lan0")) || !_tcscmp(m_szName, _T("unknown"))) &&
                           (!memcmp(m_bMacAddr, "\x00\x00\x00\x00\x00\x00", 6)); }
 
-   QWORD getLastDownEventId() { return m_qwLastDownEventId; }
-   void setLastDownEventId(QWORD qwId) { m_qwLastDownEventId = qwId; }
+   QWORD getLastDownEventId() { return m_lastDownEventId; }
+   void setLastDownEventId(QWORD id) { m_lastDownEventId = id; }
 
    void setMacAddr(const BYTE *pbNewMac) { memcpy(m_bMacAddr, pbNewMac, MAC_ADDR_LENGTH); Modify(); }
    void setIpAddr(UINT32 dwNewAddr);
@@ -667,8 +667,7 @@ public:
 
        void updateZoneId();
 
-   void StatusPoll(ClientSession *pSession, UINT32 dwRqId, Queue *pEventQueue,
-                       BOOL bClusterSync, SNMP_Transport *pTransport);
+   void statusPoll(ClientSession *session, UINT32 rqId, Queue *eventQueue, bool clusterSync, SNMP_Transport *snmpTransport);
 
        virtual void CreateMessage(CSCPMessage *pMsg);
    virtual UINT32 ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLocked = FALSE);
@@ -683,17 +682,17 @@ public:
 class NetworkService : public NetObj
 {
 protected:
-   int m_iServiceType;   // SSH, POP3, etc.
-   Node *m_pHostNode;    // Pointer to node object which hosts this service
-   UINT32 m_dwPollerNode; // ID of node object which is used for polling
+   int m_serviceType;   // SSH, POP3, etc.
+   Node *m_hostNode;    // Pointer to node object which hosts this service
+   UINT32 m_pollerNode; // ID of node object which is used for polling
                          // If 0, m_pHostNode->m_dwPollerNode will be used
-   WORD m_wProto;        // Protocol (TCP, UDP, etc.)
-   WORD m_wPort;         // TCP or UDP port number
-   TCHAR *m_pszRequest;  // Service-specific request
-   TCHAR *m_pszResponse; // Service-specific expected response
-       int m_iPendingStatus;
-       int m_iPollCount;
-       int m_iRequiredPollCount;
+   WORD m_proto;        // Protocol (TCP, UDP, etc.)
+   WORD m_port;         // TCP or UDP port number
+   TCHAR *m_request;  // Service-specific request
+   TCHAR *m_response; // Service-specific expected response
+       int m_pendingStatus;
+       int m_pollCount;
+       int m_requiredPollCount;
 
    virtual void onObjectDelete(UINT32 dwObjectId);
 
@@ -710,7 +709,7 @@ public:
    virtual bool deleteFromDB(DB_HANDLE hdb);
    virtual BOOL CreateFromDB(UINT32 dwId);
 
-   void StatusPoll(ClientSession *pSession, UINT32 dwRqId, Node *pPollerNode, Queue *pEventQueue);
+   void statusPoll(ClientSession *session, UINT32 rqId, Node *pollerNode, Queue *eventQueue);
 
    virtual void CreateMessage(CSCPMessage *pMsg);
    virtual UINT32 ModifyFromMessage(CSCPMessage *pRequest, BOOL bAlreadyLocked = FALSE);
index 392c357..9d75590 100644 (file)
@@ -405,11 +405,9 @@ BOOL ConfigReadStr(const TCHAR *pszVar, TCHAR *pszBuffer, int iBufSize, const TC
    return bSuccess;
 }
 
-
-//
-// Read integer value from configuration table
-//
-
+/**
+ * Read integer value from configuration table
+ */
 int ConfigReadInt(const TCHAR *pszVar, int iDefault)
 {
    TCHAR szBuffer[64];
@@ -420,11 +418,9 @@ int ConfigReadInt(const TCHAR *pszVar, int iDefault)
       return iDefault;
 }
 
-
-//
-// Read unsigned long value from configuration table
-//
-
+/**
+ * Read unsigned long value from configuration table
+ */
 DWORD ConfigReadULong(const TCHAR *pszVar, DWORD dwDefault)
 {
    TCHAR szBuffer[64];
@@ -435,11 +431,9 @@ DWORD ConfigReadULong(const TCHAR *pszVar, DWORD dwDefault)
       return dwDefault;
 }
 
-
-//
-// Check that database has correct schema version and is not locked
-//
-
+/**
+ * Check that database has correct schema version and is not locked
+ */
 BOOL ValidateDatabase()
 {
        DB_RESULT hResult;
@@ -497,11 +491,9 @@ BOOL ValidateDatabase()
        return TRUE;
 }
 
-
-//
-// Startup
-//
-
+/**
+ * Startup
+ */
 int main(int argc, char *argv[])
 {
    BOOL bStart = TRUE, bForce = FALSE, bQuiet = FALSE, bReplaceValue = TRUE;
@@ -621,7 +613,7 @@ int main(int argc, char *argv[])
       return 1;
 
        if (!bQuiet)
-               _tprintf(_T("NetXMS Database Manager Version ") NETXMS_VERSION_STRING _T("\n\n"));
+               _tprintf(_T("NetXMS Database Manager Version ") NETXMS_VERSION_STRING _T(" Build ") NETXMS_VERSION_BUILD_STRING _T("\n\n"));
 
    // Check parameter correctness
    if (argc - optind == 0)
index 5d73698..ee53715 100644 (file)
@@ -361,6 +361,16 @@ static BOOL RecreateTData(const TCHAR *className, bool multipleTables)
 }
 
 /**
+ * Upgrade from V294 to V295
+ */
+static BOOL H_UpgradeFromV294(int currVersion, int newVersion)
+{
+       CHK_EXEC(CreateConfigParam(_T("IcmpPingTimeout"), _T("1500"), 1, 1));
+       CHK_EXEC(SQLQuery(_T("UPDATE metadata SET var_value='295' WHERE var_name='SchemaVersion'")));
+   return TRUE;
+}
+
+/**
  * Upgrade from V293 to V294
  */
 static BOOL H_UpgradeFromV293(int currVersion, int newVersion)
@@ -7217,6 +7227,7 @@ static struct
    { 291, 292, H_UpgradeFromV291 },
    { 292, 293, H_UpgradeFromV292 },
    { 293, 294, H_UpgradeFromV293 },
+   { 294, 295, H_UpgradeFromV294 },
    { 0, 0, NULL }
 };