Various minor changes
authorVictor Kirhenshtein <victor@netxms.org>
Thu, 9 Mar 2006 12:26:26 +0000 (12:26 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Thu, 9 Mar 2006 12:26:26 +0000 (12:26 +0000)
doc/manuals/netxms_install_guide.lyx
include/nms_agent.h
netxms.dsw
src/agent/subagents/ups/main.cpp
src/agent/subagents/ups/ups.cpp
src/agent/subagents/ups/ups.h
src/server/core/node.cpp
src/server/core/nxcore.dsp
src/server/include/nms_core.h
src/server/include/nms_objects.h
src/server/include/nxsrvapi.h

index 8c3c14d..7f041e3 100644 (file)
@@ -80,7 +80,7 @@ clearpage
 
 \layout Section
 
-Server(agent) installation and initial configuration
+Server installation and initial configuration
 \layout Subsection
 
 On Windows
@@ -589,19 +589,11 @@ Installation troubleshooting
 Agent troubleshooting
 \layout Itemize
 
-Check 
-\emph on 
-Servers
-\emph default 
-, 
-\emph on 
-ControlServers
-\emph default 
- and 
+Check parameter 
 \emph on 
 MasterServers
 \emph default 
- in nxagentd.conf, it should match server's address.
+ in nxagentd.conf, it should match your management server's address.
 \layout Itemize
 
 Start in debug mode:
@@ -692,9 +684,6 @@ On Windows
 Stop NetXMS Core
 \layout Enumerate
 
-Stop NetXMS Agent
-\layout Enumerate
-
 Run database integrity checker:
 \begin_deeper 
 \layout LyX-Code
@@ -714,9 +703,6 @@ nxdbmgr upgrade
 \end_deeper 
 \layout Enumerate
 
-Start NetXMS Agent
-\layout Enumerate
-
 Start NetXMS Core
 \layout Subsection
 
index 8645e47..dc2623d 100644 (file)
@@ -1,6 +1,6 @@
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003 Victor Kirhenshtein
+** Copyright (C) 2003, 2004, 2005, 2006 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: nms_agent.h
+** File: nms_agent.h
 **
 **/
 
index 1218c54..68546ca 100644 (file)
@@ -114,6 +114,21 @@ Package=<4>
 
 ###############################################################################
 
+Project: "logscan"=.\src\agent\subagents\logscan\logscan.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name libnetxms
+    End Project Dependency
+}}}
+
+###############################################################################
+
 Project: "mssql"=.\src\server\dbdrv\mssql\mssql.dsp - Package Owner=<4>
 
 Package=<5>
index f2e76f5..aeeb90b 100644 (file)
@@ -146,8 +146,9 @@ static LONG H_DeviceList(TCHAR *pszParam, TCHAR *pArg, NETXMS_VALUES_LIST *pValu
    for(i = 0; i < MAX_UPS_DEVICES; i++)
       if (m_deviceInfo[i] != NULL)
       {
-         _sntprintf(szBuffer, 256, _T("%d %s %s"), i,
-                    m_deviceInfo[i]->Device(), m_deviceInfo[i]->Type());
+         _sntprintf(szBuffer, 256, _T("%d %s %s %s"), i,
+                    m_deviceInfo[i]->Device(), m_deviceInfo[i]->Type(),
+                    m_deviceInfo[i]->Name());
          NxAddResultString(pValue, szBuffer);
       }
    return SYSINFO_RC_SUCCESS;
@@ -180,7 +181,7 @@ static void UnloadHandler(void)
 static BOOL AddDeviceFromConfig(TCHAR *pszStr)
 {
    TCHAR *ptr, *eptr, *pszCurrField;
-   TCHAR szPort[MAX_PATH];
+   TCHAR szPort[MAX_PATH], szName[MAX_DB_STRING] = _T("");
    int nState, nField, nDev, nPos, nProto;
 
    // Parse line
@@ -228,6 +229,9 @@ static BOOL AddDeviceFromConfig(TCHAR *pszStr)
                            nState = 255;  // Error
                         }
                         break;
+                     case 3:  // Name
+                        nx_strncpy(szName, pszCurrField, MAX_DB_STRING);
+                        break;
                      default:
                         nState = 255;  // Error
                         break;
@@ -277,7 +281,7 @@ static BOOL AddDeviceFromConfig(TCHAR *pszStr)
    free(pszCurrField);
 
    // Add new device if parsing was successful
-   if ((nState == -1) && (nField == 3))
+   if ((nState == -1) && (nField >= 3))
    {
       if (m_deviceInfo[nDev] != NULL)
          delete m_deviceInfo[nDev];
@@ -294,9 +298,10 @@ static BOOL AddDeviceFromConfig(TCHAR *pszStr)
          default:
             break;
       }
+      m_deviceInfo[nDev]->SetName(szName);
    }
 
-   return ((nState == -1) && (nField == 3));
+   return ((nState == -1) && (nField >= 3));
 }
 
 
index 33e7283..a0b5e9c 100644 (file)
@@ -29,6 +29,7 @@
 
 UPSInterface::UPSInterface(TCHAR *pszDevice)
 {
+   m_pszName = NULL;
    m_pszDevice = _tcsdup(pszDevice);
    m_bIsConnected = FALSE;
 }
@@ -41,6 +42,28 @@ UPSInterface::UPSInterface(TCHAR *pszDevice)
 UPSInterface::~UPSInterface()
 {
    safe_free(m_pszDevice);
+   safe_free(m_pszName);
+}
+
+
+//
+// Set name
+//
+
+void UPSInterface::SetName(TCHAR *pszName)
+{
+   safe_free(m_pszName);
+   if (pszName[0] == 0)
+   {
+      TCHAR szBuffer[MAX_DB_STRING];
+
+      _sntprintf(szBuffer, MAX_DB_STRING, _T("%s-%s"), Type(), m_pszDevice);
+      m_pszName = _tcsdup(szBuffer);
+   }
+   else
+   {
+      m_pszName = _tcsdup(pszName);
+   }
 }
 
 
index 4709485..6adc72b 100644 (file)
@@ -61,6 +61,7 @@ class UPSInterface
 {
 protected:
    TCHAR *m_pszDevice;
+   TCHAR *m_pszName;
    BOOL m_bIsConnected;
 
    void SetConnected(void) { m_bIsConnected = TRUE; }
@@ -70,9 +71,12 @@ public:
    virtual ~UPSInterface();
 
    const TCHAR *Device(void) { return m_pszDevice; }
+   const TCHAR *Name(void) { return CHECK_NULL(m_pszName); }
    virtual TCHAR *Type(void) { return _T("GENERIC"); }
    BOOL IsConnected(void) { return m_bIsConnected; }
 
+   void SetName(TCHAR *pszName);
+
    virtual BOOL Open(void);
    virtual void Close(void);
 
index 1d54723..61a5b90 100644 (file)
@@ -1394,7 +1394,7 @@ BOOL Node::ConnectToAgent(void)
 {
    // Create new agent connection object if needed
    if (m_pAgentConnection == NULL)
-      m_pAgentConnection = new AgentConnection(htonl(m_dwIpAddr), m_wAgentPort, m_wAuthMethod, m_szSharedSecret);
+      m_pAgentConnection = new AgentConnectionEx(htonl(m_dwIpAddr), m_wAgentPort, m_wAuthMethod, m_szSharedSecret);
 
    // Check if we already connected
    if (m_pAgentConnection->Nop() == ERR_SUCCESS)
index 3559f8b..04a400a 100644 (file)
@@ -45,7 +45,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX- /O2 /I "..\include" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /I "..\include" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -76,7 +76,7 @@ PostBuild_Cmds=copy Release\nxcore.dll C:\NetXMS\bin
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX- /ZI /Od /I "..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NXCORE_EXPORTS" /FR /YX /FD /GZ /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -186,6 +186,10 @@ SOURCE=.\admin.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\agent.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\alarm.cpp
 # End Source File
 # Begin Source File
index a95803a..5db0456 100644 (file)
@@ -1,6 +1,6 @@
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003, 2004 Victor Kirhenshtein
+** Copyright (C) 2003, 2004, 2005, 2006 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: nms_core.h
+** File: nms_core.h
 **
 **/
 
@@ -290,6 +290,24 @@ typedef struct
 
 
 //
+// Extended agent connection
+//
+
+class AgentConnectionEx : public AgentConnection
+{
+protected:
+   virtual void OnTrap(CSCPMessage *pMsg);
+
+public:
+   AgentConnectionEx() : AgentConnection() { }
+   AgentConnectionEx(DWORD dwAddr, WORD wPort = AGENT_LISTEN_PORT,
+                     int iAuthMethod = AUTH_NONE, TCHAR *pszSecret = NULL) :
+            AgentConnection(dwAddr, wPort, iAuthMethod, pszSecret) { }
+   virtual ~AgentConnectionEx();
+};
+
+
+//
 // Client session
 //
 
index 8977c57..7f02c71 100644 (file)
@@ -32,6 +32,7 @@
 //
 
 class AgentConnection;
+class AgentConnectionEx;
 class ClientSession;
 class Queue;
 
@@ -517,7 +518,7 @@ protected:
    MUTEX m_hPollerMutex;
    MUTEX m_hAgentAccessMutex;
    MUTEX m_mutexRTAccess;
-   AgentConnection *m_pAgentConnection;
+   AgentConnectionEx *m_pAgentConnection;
    DWORD m_dwPollerNode;      // Node used for network service polling
    DWORD m_dwProxyNode;       // Node used as proxy for agent connection
    QWORD m_qwLastEvents[MAX_LAST_EVENTS];
index 54f6e1c..05b9449 100644 (file)
@@ -245,7 +245,7 @@ public:
    AgentConnection();
    AgentConnection(DWORD dwAddr, WORD wPort = AGENT_LISTEN_PORT,
                    int iAuthMethod = AUTH_NONE, TCHAR *pszSecret = NULL);
-   ~AgentConnection();
+   virtual ~AgentConnection();
 
    BOOL Connect(RSA *pServerKey = NULL, BOOL bVerbose = FALSE, DWORD *pdwError = NULL);
    void Disconnect(void);