[SVN-NetXMS] revision 3400

From: NetXMS.org SVN Server <svn_at_DOMAIN_REMOVED>
Date: Thu, 31 Jul 2008 19:26:53 +0300

* { font-family: Consolas, Lucida Console, Courier New; font-size: 100%; }
h1 { font-size: 150%; }
td.linenos { background-color: #f0f0f0; padding-right: 10px; }
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
pre { line-height: 100%; width: 100%; }
.highlight span { width: 100%; display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline; }
body { background: #ffffff; }
body .c { color: #999988; font-style: italic } /* Comment */
body .err { color: #a61717; background-color: #e3d2d2 } /* Error */
body .k { font-weight: bold } /* Keyword */
body .o { font-weight: bold } /* Operator */
body .cm { color: #999988; font-style: italic } /* Comment.Multiline */
body .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
body .c1 { color: #999988; font-style: italic } /* Comment.Single */
body .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
body .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
body .ge { font-style: italic } /* Generic.Emph */
body .gr { color: #aa0000 } /* Generic.Error */
body .gh { color: #999999 } /* Generic.Heading */
body .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
body .go { color: #888888 } /* Generic.Output */
body .gp { color: #555555 } /* Generic.Prompt */
body .gs { font-weight: bold } /* Generic.Strong */
body .gu { color: #aaaaaa } /* Generic.Subheading */
body .gt { color: #aa0000 } /* Generic.Traceback */
body .kc { font-weight: bold } /* Keyword.Constant */
body .kd { font-weight: bold } /* Keyword.Declaration */
body .kp { font-weight: bold } /* Keyword.Pseudo */
body .kr { font-weight: bold } /* Keyword.Reserved */
body .kt { color: #445588; font-weight: bold } /* Keyword.Type */
body .m { color: #009999 } /* Literal.Number */
body .s { color: #bb8844 } /* Literal.String */
body .na { color: #008080 } /* Name.Attribute */
body .nb { color: #999999 } /* Name.Builtin */
body .nc { color: #445588; font-weight: bold } /* Name.Class */
body .no { color: #008080 } /* Name.Constant */
body .ni { color: #800080 } /* Name.Entity */
body .ne { color: #990000; font-weight: bold } /* Name.Exception */
body .nf { color: #990000; font-weight: bold } /* Name.Function */
body .nn { color: #555555 } /* Name.Namespace */
body .nt { color: #000080 } /* Name.Tag */
body .nv { color: #008080 } /* Name.Variable */
body .ow { font-weight: bold } /* Operator.Word */
body .w { color: #bbbbbb } /* Text.Whitespace */
body .mf { color: #009999 } /* Literal.Number.Float */
body .mh { color: #009999 } /* Literal.Number.Hex */
body .mi { color: #009999 } /* Literal.Number.Integer */
body .mo { color: #009999 } /* Literal.Number.Oct */
body .sb { color: #bb8844 } /* Literal.String.Backtick */
body .sc { color: #bb8844 } /* Literal.String.Char */
body .sd { color: #bb8844 } /* Literal.String.Doc */
body .s2 { color: #bb8844 } /* Literal.String.Double */
body .se { color: #bb8844 } /* Literal.String.Escape */
body .sh { color: #bb8844 } /* Literal.String.Heredoc */
body .si { color: #bb8844 } /* Literal.String.Interpol */
body .sx { color: #bb8844 } /* Literal.String.Other */
body .sr { color: #808000 } /* Literal.String.Regex */
body .s1 { color: #bb8844 } /* Literal.String.Single */
body .ss { color: #bb8844 } /* Literal.String.Symbol */
body .bp { color: #999999 } /* Name.Builtin.Pseudo */
body .vc { color: #008080 } /* Name.Variable.Class */
body .vg { color: #008080 } /* Name.Variable.Global */
body .vi { color: #008080 } /* Name.Variable.Instance */
body .il { color: #009999 } /* Literal.Number.Integer.Long */

Info

Revision:3400
Author:victor

Date:2008-07-31 19:26:53 +0300 (Thu, 31 Jul 2008)

Comment:status polling algorithm improved (fixed issue 222)

Changes
U trunk/ChangeLog
U trunk/src/server/core/node.cpp

Diff
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2008-07-28 13:46:48 UTC (rev 3399)
+++ trunk/ChangeLog 2008-07-31 16:26:53 UTC (rev 3400)
@@ -7,7 +7,7 @@
   via $node variable and to event properties via $event variable
 - Implemented XML encoding for NXCP messages
 - Added support of custom object attributes
-- Fixed issues: #196, #201, #216, #220, #221, #225, #226, #230
+- Fixed issues: #196, #201, #216, #220, #221, #222, #225, #226, #230
 
 
 *

Modified: trunk/src/server/core/node.cpp
===================================================================
--- trunk/src/server/core/node.cpp 2008-07-28 13:46:48 UTC (rev 3399)
+++ trunk/src/server/core/node.cpp 2008-07-31 16:26:53 UTC (rev 3400)
@@ -701,6 +701,7 @@
    tNow = time(NULL);
 
    // Check SNMP agent connectivity
+restart_agent_check:
    if ((m_dwFlags &amp; NF_IS_SNMP) &amp;&amp; (!(m_dwFlags &amp; NF_DISABLE_SNMP)))
    {
       TCHAR szBuffer[256];
@@ -863,16 +864,23 @@
 
    // Check if entire node is down
    LockChildList(FALSE);
- for(i = 0, bAllDown = TRUE; i &lt; m_dwChildCount; i++)
- if ((m_pChildList[i]-&gt;Type() == OBJECT_INTERFACE) &amp;&amp;
- (m_pChildList[i]-&gt;Status() != STATUS_CRITICAL) &amp;&amp;
- (m_pChildList[i]-&gt;Status() != STATUS_UNKNOWN) &amp;&amp;
- (m_pChildList[i]-&gt;Status() != STATUS_UNMANAGED) &amp;&amp;
- (m_pChildList[i]-&gt;Status() != STATUS_DISABLED))
- {
- bAllDown = FALSE;
- break;
- }
+ if (m_dwChildCount &gt; 0)
+ {
+ for(i = 0, bAllDown = TRUE; i &lt; m_dwChildCount; i++)
+ if ((m_pChildList[i]-&gt;Type() == OBJECT_INTERFACE) &amp;&amp;
+ (m_pChildList[i]-&gt;Status() != STATUS_CRITICAL) &amp;&amp;
+ (m_pChildList[i]-&gt;Status() != STATUS_UNKNOWN) &amp;&amp;
+ (m_pChildList[i]-&gt;Status() != STATUS_UNMANAGED) &amp;&amp;
+ (m_pChildList[i]-&gt;Status() != STATUS_DISABLED))
+ {
+ bAllDown = FALSE;
+ break;
+ }
+ }
+ else
+ {
+ bAllDown = FALSE;
+ }
    UnlockChildList();
    if (bAllDown &amp;&amp; (m_dwFlags &amp; NF_IS_NATIVE_AGENT) &amp;&amp;
        (!(m_dwFlags &amp; NF_DISABLE_NXCP)))
@@ -899,9 +907,10 @@
    {
       if (m_dwDynamicFlags &amp; NDF_UNREACHABLE)
       {
- m_dwDynamicFlags &amp;= ~NDF_UNREACHABLE;
+ m_dwDynamicFlags &amp;= ~(NDF_UNREACHABLE | NDF_SNMP_UNREACHABLE | NDF_AGENT_UNREACHABLE);
          PostEvent(EVENT_NODE_UP, m_dwId, NULL);
          SendPollerMsg(dwRqId, POLLER_INFO &quot;Node recovered from unreachable state\r\n&quot;);
+ goto restart_agent_check;
       }
       else
       {
Received on Thu Jul 31 2008 - 19:26:53 EEST

This archive was generated by hypermail 2.2.0 : Thu Jul 31 2008 - 19:24:41 EEST