new module extension point; xlC compatibility fix
authorVictor Kirhenshtein <victor@netxms.org>
Fri, 12 Apr 2013 12:03:38 +0000 (12:03 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Fri, 12 Apr 2013 12:03:38 +0000 (12:03 +0000)
doc/internal/event_code_ranges.txt
doc/internal/nxcp_command_ranges.txt
include/nms_common.h
src/server/core/logs.cpp
src/server/include/nxcore_logs.h
src/server/include/nxmodule.h

index 5776f9c..5d49211 100644 (file)
@@ -2,6 +2,7 @@
 500 - 510      Well-known SNMP traps
 4000 - 4999    Predefined threshold violation events
 80000 - 80999   VEDAS
+88000 - 88999   FIS/IST
 89000 - 89899   XFS subagent
 89900 - 89999   AVS (ATM Video Surveillance) subsystem
 90000 - 90999  Agilis monitoring subagent
index 37f69be..0f45dfb 100644 (file)
@@ -1,3 +1,4 @@
 0000 .. 0FFF   Core system commands
 1000 .. 100F   NXVS
 5000 .. 5FFF    TTC Marconi
+6000 .. 60FF    FIS/IST
index 4568b6b..6679cc9 100644 (file)
 #endif
 #endif
 
-
-//
-// Wrappers for 64-bit constants
-//
-
-#if defined(__GNUC__) || defined(__HP_aCC)
+/**
+ * Wrappers for 64-bit integer constants
+ */
+#if defined(__GNUC__) || defined(__HP_aCC) || defined(__IBMC__) || defined(__IBMCPP__)
 #define _LL(x) (x ## LL)
 #define _ULL(x) (x ## ULL)
 #elif defined(_MSC_VER)
index 9d5bdc7..4dcdd5e 100644 (file)
@@ -1,6 +1,6 @@
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003-2012 Victor Kirhenshtein
+** Copyright (C) 2003-2013 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
 
 #include "nxcore.h"
 
-
-//
-// Defined logs
-//
-
+/**
+ * Defined logs
+ */
 static NXCORE_LOG s_logs[] =
 {
        { _T("AlarmLog"), _T("alarms"), _T("alarm_id"), SYSTEM_ACCESS_VIEW_AUDIT_LOG,
@@ -141,18 +139,20 @@ static int RegisterLogHandle(LogHandle *handle, ClientSession *session)
 }
 
 /**
- * Open log by name
+ * Open log from given log set by name
+ * 
+ * @return log handle on success, -1 on error, -2 if log not found
  */
-int OpenLog(const TCHAR *name, ClientSession *session, DWORD *rcc)
+static int OpenLogInternal(NXCORE_LOG *logs, const TCHAR *name, ClientSession *session, DWORD *rcc)
 {
-       for(int i = 0; s_logs[i].name != NULL; i++)
+       for(int i = 0; logs[i].name != NULL; i++)
        {       
-               if (!_tcsicmp(name, s_logs[i].name))
+               if (!_tcsicmp(name, logs[i].name))
                {
-                       if (session->checkSysAccessRights(s_logs[i].requiredAccess))
+                       if (session->checkSysAccessRights(logs[i].requiredAccess))
                        {
                                *rcc = RCC_SUCCESS;
-                               LogHandle *handle = new LogHandle(&s_logs[i]);
+                               LogHandle *handle = new LogHandle(&logs[i]);
                                return RegisterLogHandle(handle, session);
                        }
                        else
@@ -162,6 +162,29 @@ int OpenLog(const TCHAR *name, ClientSession *session, DWORD *rcc)
                        }
                }
        }
+   return -2;
+}
+
+/**
+ * Open log by name
+ */
+int OpenLog(const TCHAR *name, ClientSession *session, DWORD *rcc)
+{
+   int rc = OpenLogInternal(s_logs, name, session, rcc);
+   if (rc != -2)
+      return rc;
+
+   // Try to find log definition in loaded modules
+   for(DWORD i = 0; i < g_dwNumModules; i++)
+       {
+               if (g_pModuleList[i].logs != NULL)
+               {
+         rc = OpenLogInternal(g_pModuleList[i].logs, name, session, rcc);
+         if (rc != -2)
+            return rc;
+               }
+       }
+
        *rcc = RCC_UNKNOWN_LOG_NAME;
        return -1;
 }
index 6cc1575..e6a15da 100644 (file)
@@ -1,6 +1,6 @@
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003-2011 Victor Kirhenshtein
+** Copyright (C) 2003-2013 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
index d5f7aba..92db117 100644 (file)
@@ -31,6 +31,7 @@ class MobileDeviceSession;
 class Node;
 class Event;
 class NetObj;
+struct NXCORE_LOG;
 
 /**
  * Command handler return codes
@@ -62,6 +63,7 @@ typedef struct
        NetObj *(* pfCreateObject)(int objectClass, const TCHAR *name, NetObj *parent, CSCPMessage *msg);
        BOOL (* pfIsValidParentClass)(int childClass, int parentClass);
        BOOL (* pfAcceptNewNode)(DWORD ipAddr, DWORD ipNetMask, DWORD zoneId, BYTE *macAddr);
+   NXCORE_LOG *logs;
    HMODULE hModule;
 } NXMODULE;