Server core implemented as DLL/shared library
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 7 Dec 2004 16:19:10 +0000 (16:19 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 7 Dec 2004 16:19:10 +0000 (16:19 +0000)
66 files changed:
.gitattributes
.gitignore
configure.ac
include/nms_cscp.h
sql/schema.in
src/server/core/.cvsignore
src/server/core/Makefile.am
src/server/core/acl.cpp
src/server/core/actions.cpp
src/server/core/admin.cpp
src/server/core/alarm.cpp
src/server/core/client.cpp
src/server/core/config.cpp
src/server/core/container.cpp
src/server/core/datacoll.cpp
src/server/core/dbwrite.cpp
src/server/core/dcitem.cpp
src/server/core/dcithreshold.cpp
src/server/core/dcivalue.cpp
src/server/core/debug.cpp
src/server/core/discovery.cpp
src/server/core/email.cpp
src/server/core/entirenet.cpp
src/server/core/epp.cpp
src/server/core/events.cpp
src/server/core/evproc.cpp
src/server/core/hk.cpp
src/server/core/id.cpp
src/server/core/image.cpp
src/server/core/interface.cpp
src/server/core/locks.cpp
src/server/core/main.cpp
src/server/core/netinfo.cpp
src/server/core/netobj.cpp
src/server/core/node.cpp
src/server/core/nortel.cpp
src/server/core/np.cpp
src/server/core/nxcore.dsp [copied from src/server/core/netxmsd.dsp with 71% similarity]
src/server/core/nxcore.dsw [copied from src/server/core/netxmsd.dsw with 89% similarity]
src/server/core/nxcore.h [copied from src/server/core/nms_actions.h with 61% similarity]
src/server/core/objects.cpp
src/server/core/rootobj.cpp
src/server/core/session.cpp
src/server/core/snmp.cpp
src/server/core/snmptrap.cpp
src/server/core/status.cpp
src/server/core/subnet.cpp
src/server/core/syncer.cpp
src/server/core/template.cpp
src/server/core/tools.cpp
src/server/core/uniroot.cpp
src/server/core/users.cpp
src/server/core/watchdog.cpp
src/server/include/nms_actions.h [copied from src/server/core/nms_actions.h with 100% similarity]
src/server/include/nms_alarm.h [moved from src/server/core/nms_alarm.h with 100% similarity]
src/server/include/nms_core.h [moved from src/server/core/nms_core.h with 89% similarity]
src/server/include/nms_dcoll.h [moved from src/server/core/nms_dcoll.h with 100% similarity]
src/server/include/nms_events.h [moved from src/server/core/nms_events.h with 100% similarity]
src/server/include/nms_locks.h [moved from src/server/core/nms_locks.h with 97% similarity]
src/server/include/nms_objects.h [moved from src/server/core/nms_objects.h with 100% similarity]
src/server/include/nms_users.h [moved from src/server/core/nms_users.h with 100% similarity]
src/server/netxmsd/netxmsd.cpp [copied from src/server/core/config.cpp with 63% similarity]
src/server/netxmsd/netxmsd.dsp [moved from src/server/core/netxmsd.dsp with 57% similarity]
src/server/netxmsd/netxmsd.dsw [moved from src/server/core/netxmsd.dsw with 100% similarity]
src/server/netxmsd/netxmsd.h [moved from src/server/core/nms_actions.h with 61% similarity]
src/server/netxmsd/winsrv.cpp [moved from src/server/core/winsrv.cpp with 98% similarity]

index b43000c..0903b81 100644 (file)
@@ -490,19 +490,12 @@ src/server/core/locks.cpp -text
 src/server/core/main.cpp -text
 src/server/core/netinfo.cpp -text
 src/server/core/netobj.cpp -text
-src/server/core/netxmsd.dsp -text
-src/server/core/netxmsd.dsw -text
-src/server/core/nms_actions.h -text
-src/server/core/nms_alarm.h -text
-src/server/core/nms_core.h -text
-src/server/core/nms_dcoll.h -text
-src/server/core/nms_events.h -text
-src/server/core/nms_locks.h -text
-src/server/core/nms_objects.h -text
-src/server/core/nms_users.h -text
 src/server/core/node.cpp -text
 src/server/core/nortel.cpp -text
 src/server/core/np.cpp -text
+src/server/core/nxcore.dsp -text
+src/server/core/nxcore.dsw -text
+src/server/core/nxcore.h -text
 src/server/core/objects.cpp -text
 src/server/core/rootobj.cpp -text
 src/server/core/session.cpp -text
@@ -516,7 +509,6 @@ src/server/core/tools.cpp -text
 src/server/core/uniroot.cpp -text
 src/server/core/users.cpp -text
 src/server/core/watchdog.cpp -text
-src/server/core/winsrv.cpp -text
 src/server/dbdrv/Makefile.am -text
 src/server/dbdrv/mssql/Makefile.am -text
 src/server/dbdrv/mssql/mssql.cpp -text
@@ -540,6 +532,14 @@ src/server/dbdrv/pgsql/pgsql.dsw -text
 src/server/dbdrv/pgsql/pgsqldrv.h -text
 src/server/include/dbdrv.h -text
 src/server/include/local_admin.h -text
+src/server/include/nms_actions.h -text
+src/server/include/nms_alarm.h -text
+src/server/include/nms_core.h -text
+src/server/include/nms_dcoll.h -text
+src/server/include/nms_events.h -text
+src/server/include/nms_locks.h -text
+src/server/include/nms_objects.h -text
+src/server/include/nms_users.h -text
 src/server/include/nxsrvapi.h -text
 src/server/include/rwlock.h -text
 src/server/libnxsrv/Makefile.am -text
@@ -554,6 +554,11 @@ src/server/libnxsrv/main.cpp -text
 src/server/libnxsrv/messages.mc -text
 src/server/libnxsrv/resource.h -text
 src/server/libnxsrv/rwlock.cpp -text
+src/server/netxmsd/netxmsd.cpp -text
+src/server/netxmsd/netxmsd.dsp -text
+src/server/netxmsd/netxmsd.dsw -text
+src/server/netxmsd/netxmsd.h -text
+src/server/netxmsd/winsrv.cpp -text
 src/server/tools/Makefile.am -text
 src/server/tools/nxaction/Makefile.am -text
 src/server/tools/nxaction/nxaction.cpp -text
index 21c7251..66566d6 100644 (file)
@@ -9,8 +9,6 @@
 sql/dbinit_mssql.sql
 sql/dbinit_mysql.sql
 sql/dbinit_pgsql.sql
-src/server/core/messages.c
-src/server/core/messages.h
 src/server/core/netxmsd
 /stamp-h1
 /status
index 9889126..24d3b90 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.40 2004-11-29 08:30:06 victor Exp $
+# $Id: configure.ac,v 1.41 2004-12-07 16:18:50 victor Exp $
 #
 # Process this file with autoconf to produce a configure script.
 #
@@ -380,6 +380,7 @@ AC_CONFIG_FILES([
        src/nxevent/Makefile
        src/server/Makefile
        src/server/core/Makefile
+       src/server/netxmsd/Makefile
        src/server/dbdrv/Makefile
        src/server/dbdrv/odbc/Makefile
        src/server/dbdrv/mssql/Makefile
index 7add2ce..49fdb32 100644 (file)
@@ -267,6 +267,7 @@ typedef struct
 #define CMD_QUERY_PARAMETER         0x0066
 #define CMD_GET_SERVER_INFO         0x0067
 #define CMD_SET_DCI_STATUS          0x0068
+#define CMD_FILE_DATA               0x0069
 
 
 //
index fe6602a..f92c58c 100644 (file)
@@ -285,13 +285,13 @@ CREATE TABLE items
 
 CREATE TABLE events
 (
-       event_id integer not null,
+       event_code integer not null,
        name varchar(63) not null,      // Short event name
        severity integer,
        flags integer,
        message varchar(255),           // Message template
        description DT_TEXT,
-       PRIMARY KEY(event_id)
+       PRIMARY KEY(event_code)
 );
 
 
@@ -301,11 +301,14 @@ CREATE TABLE events
 
 CREATE TABLE event_log
 (
-       event_id integer,
+       event_id bigint,
+       event_code integer,
        event_timestamp integer,
        event_source integer,                   // Source object ID
        event_severity integer,
-       event_message varchar(255)
+       event_message varchar(255),
+       correlated_to bigint default 0,
+       PRIMARY KEY(event_id)
 );
 
 
index b3eba13..cca3f85 100644 (file)
@@ -1,3 +1 @@
-messages.c
-messages.h
 netxmsd
index b254e89..6d2e4ed 100644 (file)
@@ -1,11 +1,10 @@
 INCLUDES=-I@top_srcdir@/include -I@top_srcdir@/src/server/include
 
-bin_PROGRAMS = netxmsd
-netxmsd_SOURCES = acl.cpp actions.cpp admin.cpp alarm.cpp client.cpp config.cpp container.cpp datacoll.cpp dbwrite.cpp dcitem.cpp dcithreshold.cpp dcivalue.cpp debug.cpp discovery.cpp email.cpp entirenet.cpp epp.cpp events.cpp evproc.cpp hk.cpp id.cpp image.cpp interface.cpp locks.cpp main.cpp netinfo.cpp netobj.cpp node.cpp nortel.cpp np.cpp objects.cpp rootobj.cpp session.cpp snmp.cpp snmptrap.cpp status.cpp subnet.cpp syncer.cpp template.cpp tools.cpp uniroot.cpp users.cpp watchdog.cpp winsrv.cpp
-netxmsd_LDADD = @PTHREAD_LIBS@ ../../libnetxms/libnetxms.la ../../libnxcscp/libnxcscp.la ../libnxsrv/libnxsrv.la ../../libnxsnmp/libnxsnmp.la
+lib_LTLIBRARIES = libnxcore.la
+libnxcore_la_SOURCES = acl.cpp actions.cpp admin.cpp alarm.cpp client.cpp config.cpp container.cpp datacoll.cpp dbwrite.cpp dcitem.cpp dcithreshold.cpp dcivalue.cpp debug.cpp discovery.cpp email.cpp entirenet.cpp epp.cpp events.cpp evproc.cpp hk.cpp id.cpp image.cpp interface.cpp locks.cpp main.cpp netinfo.cpp netobj.cpp node.cpp nortel.cpp np.cpp objects.cpp rootobj.cpp session.cpp snmp.cpp snmptrap.cpp status.cpp subnet.cpp syncer.cpp template.cpp tools.cpp uniroot.cpp users.cpp watchdog.cpp
+libnxscore_la_LDFLAGS = -version-info $(LIBNXCORE_LIBRARY_VERSION)
+#netxmsd_LDADD = @PTHREAD_LIBS@ ../../libnetxms/libnetxms.la ../../libnxcscp/libnxcscp.la ../libnxsrv/libnxsrv.la ../../libnxsnmp/libnxsnmp.la
 
 EXTRA_DIST = \
-       netxmsd.dsp netxmsd.dsw \
-       nms_actions.h nms_alarm.h nms_core.h \
-       nms_dcoll.h nms_events.h nms_locks.h \
-       nms_objects.h nms_users.h
+       nxcore.dsp nxcore.dsw \
+       nxcore.h
index 431d636..f558f08 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index ebd465c..1bb4bbf 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index c58c0c5..44916a5 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 #include <local_admin.h>
 
 
index 0badfc0..52afc3f 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index b4bda67..4f77bda 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index b6fe334..afc7b39 100644 (file)
 **
 **/
 
-#include "nms_core.h"
-
-
-//
-// Help text
-//
-
-static char help_text[]="NetXMS Server Version " NETXMS_VERSION_STRING "\n"
-                        "Copyright (c) 2003 SecurityProjects.org\n\n"
-                        "Usage: netxmsd [<options>] <command>\n\n"
-                        "Valid options are:\n"
-                        "   --config <file>     : Set non-default configuration file\n"
-                        "                       : Default is " DEFAULT_CONFIG_FILE "\n"
-                        "   --debug-all         : Turn on all possible debug output\n"
-                        "   --debug-actions     : Print debug information for event actions.\n"
-                        "   --debug-cscp        : Print client-server communication protocol debug\n"
-                        "                       : information to console.\n"
-                        "   --debug-dc          : Print data collection debug information to console.\n"
-                        "   --debug-discovery   : Print network discovery debug information to console.\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-snmp        : Print SNMP debug information.\n"
-                        "   --dump-sql          : Dump all SQL queries to log.\n"
-#ifndef _WIN32
-                        "   --pid-file <file>   : Specify pid file.\n"
-#endif
-                        "\n"
-                        "Valid commands are:\n"
-                        "   check-config        : Check configuration file syntax\n"
-#ifdef _WIN32
-                        "   install             : Install Win32 service\n"
-                        "   install-events      : Install Win32 event source\n"
-#endif
-                        "   help                : Display help and exit\n"
-#ifdef _WIN32
-                        "   remove              : Remove Win32 service\n"
-                        "   remove-events       : Remove Win32 event source\n"
-#endif
-                        "   standalone          : Run in standalone mode (not as service)\n"
-                        "   version             : Display version and exit\n"
-                        "\n"
-                        "NOTE: All debug options will work only in standalone mode.\n\n";
+#include "nxcore.h"
 
 
 //
@@ -83,7 +41,7 @@ static NX_CFG_TEMPLATE m_cfgTemplate[] =
    { "", CT_END_OF_LIST, 0, 0, 0, 0, NULL }
 };
 
-BOOL LoadConfig(void)
+BOOL NXCORE_EXPORTABLE LoadConfig(void)
 {
    BOOL bSuccess = FALSE;
 
@@ -108,157 +66,10 @@ BOOL LoadConfig(void)
 
 
 //
-// Parse command line
-// Returns TRUE on success and FALSE on failure
-//
-
-BOOL ParseCommandLine(int argc, char *argv[])
-{
-   int i;
-
-   for(i = 1; i < argc; i++)
-   {
-      if (!strcmp(argv[i], "help"))    // Display help and exit
-      {
-         printf(help_text);
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "version"))    // Display version and exit
-      {
-         printf("NMS Version " NETXMS_VERSION_STRING " Build of " __DATE__ "\n");
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "--config"))  // Config file
-      {
-         i++;
-         strcpy(g_szConfigFile, argv[i]);     // Next word should contain name of the config file
-      }
-#ifndef _WIN32
-      else if (!strcmp(argv[i], "--pid-file"))  // PID file
-      {
-         i++;
-         strcpy(g_szPIDFile, argv[i]);     // Next word should contain name of the PID file
-      }
-#endif
-      else if (!strcmp(argv[i], "--debug-all"))
-      {
-         g_dwFlags |= AF_DEBUG_ALL;
-      }
-      else if (!strcmp(argv[i], "--debug-events"))
-      {
-         g_dwFlags |= AF_DEBUG_EVENTS;
-      }
-      else if (!strcmp(argv[i], "--debug-cscp"))
-      {
-         g_dwFlags |= AF_DEBUG_CSCP;
-      }
-      else if (!strcmp(argv[i], "--debug-discovery"))
-      {
-         g_dwFlags |= AF_DEBUG_DISCOVERY;
-      }
-      else if (!strcmp(argv[i], "--debug-dc"))
-      {
-         g_dwFlags |= AF_DEBUG_DC;
-      }
-      else if (!strcmp(argv[i], "--debug-locks"))
-      {
-         g_dwFlags |= AF_DEBUG_LOCKS;
-      }
-      else if (!strcmp(argv[i], "--debug-housekeeper"))
-      {
-         g_dwFlags |= AF_DEBUG_HOUSEKEEPER;
-      }
-      else if (!strcmp(argv[i], "--debug-actions"))
-      {
-         g_dwFlags |= AF_DEBUG_ACTIONS;
-      }
-      else if (!strcmp(argv[i], "--debug-snmp"))
-      {
-         g_dwFlags |= AF_DEBUG_SNMP;
-      }
-      else if (!strcmp(argv[i], "--dump-sql"))
-      {
-         g_dwFlags |= AF_DEBUG_SQL;
-      }
-      else if (!strcmp(argv[i], "check-config"))
-      {
-         g_dwFlags |= AF_STANDALONE;
-         printf("Checking configuration file (%s):\n\n", g_szConfigFile);
-         LoadConfig();
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "standalone"))  // Run in standalone mode
-      {
-         g_dwFlags |= AF_STANDALONE;
-         return TRUE;
-      }
-#ifdef _WIN32
-      else if ((!strcmp(argv[i], "install"))||
-               (!strcmp(argv[i], "install-events")))
-      {
-         char exePath[MAX_PATH], dllPath[MAX_PATH], *ptr;
-
-         ptr = strrchr(argv[0], '\\');
-         if (ptr != NULL)
-            ptr++;
-         else
-            ptr = argv[0];
-
-         _fullpath(exePath, ptr, 255);
-
-         if (stricmp(&exePath[strlen(exePath)-4], ".exe"))
-            strcat(exePath, ".exe");
-         strcpy(dllPath, exePath);
-         ptr = strrchr(dllPath, '\\');
-         if (ptr != NULL)  // Shouldn't be NULL
-         {
-            ptr++;
-            strcpy(ptr, "libnxsrv.dll");
-         }
-
-         if (!strcmp(argv[i], "install"))
-            InstallService(exePath, dllPath);
-         else
-            InstallEventSource(dllPath);
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "remove"))
-      {
-         RemoveService();
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "remove-events"))
-      {
-         RemoveEventSource();
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "start"))
-      {
-         StartCoreService();
-         return FALSE;
-      }
-      else if (!strcmp(argv[i], "stop"))
-      {
-         StopCoreService();
-         return FALSE;
-      }
-#endif   /* _WIN32 */
-      else
-      {
-         printf("ERROR: Invalid command line argument\n\n");
-         return FALSE;
-      }
-   }
-
-   return TRUE;
-}
-
-
-//
 // Read string value from configuration table
 //
 
-BOOL ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefault)
+BOOL NXCORE_EXPORTABLE ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefault)
 {
    DB_RESULT hResult;
    char szQuery[256];
@@ -288,7 +99,7 @@ BOOL ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefa
 // Read integer value from configuration table
 //
 
-int ConfigReadInt(char *szVar, int iDefault)
+int NXCORE_EXPORTABLE ConfigReadInt(char *szVar, int iDefault)
 {
    char szBuffer[64];
 
@@ -303,7 +114,7 @@ int ConfigReadInt(char *szVar, int iDefault)
 // Read unsigned long value from configuration table
 //
 
-DWORD ConfigReadULong(char *szVar, DWORD dwDefault)
+DWORD NXCORE_EXPORTABLE ConfigReadULong(char *szVar, DWORD dwDefault)
 {
    char szBuffer[64];
 
@@ -318,7 +129,7 @@ DWORD ConfigReadULong(char *szVar, DWORD dwDefault)
 // Write string value to configuration table
 //
 
-BOOL ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate)
+BOOL NXCORE_EXPORTABLE ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate)
 {
    DB_RESULT hResult;
    char szQuery[1024];
@@ -355,7 +166,7 @@ BOOL ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate)
 // Write integer value to configuration table
 //
 
-BOOL ConfigWriteInt(char *szVar, int iValue, BOOL bCreate)
+BOOL NXCORE_EXPORTABLE ConfigWriteInt(char *szVar, int iValue, BOOL bCreate)
 {
    char szBuffer[64];
 
@@ -368,7 +179,7 @@ BOOL ConfigWriteInt(char *szVar, int iValue, BOOL bCreate)
 // Write unsigned long value to configuration table
 //
 
-BOOL ConfigWriteULong(char *szVar, DWORD dwValue, BOOL bCreate)
+BOOL NXCORE_EXPORTABLE ConfigWriteULong(char *szVar, DWORD dwValue, BOOL bCreate)
 {
    char szBuffer[64];
 
index 4607aa6..c7ca95d 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 3800326..1a15b11 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 3be0e63..0a53466 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 4777a03..09b5c8b 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index a7c8267..a9c2c1a 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 4648d26..4776bfd 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 228acbf..9fa8140 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 6a05d8d..9c80c45 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index b95e07f..9aafc27 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
@@ -328,7 +328,7 @@ void ShutdownMailer(void)
 // Post e-mail to queue
 //
 
-void PostMail(char *pszRcpt, char *pszSubject, char *pszText)
+void NXCORE_EXPORTABLE PostMail(char *pszRcpt, char *pszSubject, char *pszText)
 {
    MAIL_ENVELOPE *pEnvelope;
 
index c6e02e7..523cdde 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index f74b918..4894692 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 40a07cd..0635ad3 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 #include <stdarg.h>
 
 
index fdf5846..7a9fb2f 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 49f3445..9cf1b1f 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 3283d99..7671892 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 58470b2..b22f969 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 6c71016..69bab46 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index ecb62ca..6c1f172 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
@@ -99,7 +99,7 @@ BOOL InitLocks(DWORD *pdwIpAddr, char *pszInfo)
 // Unlock database
 //
 
-void UnlockDB(void)
+void NXCORE_EXPORTABLE UnlockDB(void)
 {
    ConfigWriteStr("DBLockStatus", "UNLOCKED", FALSE);
    ConfigWriteStr("DBLockInfo", "", FALSE);
index 7aba6d1..d09ed4e 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 #include <netxmsdb.h>
 
 #if !defined(_WIN32) && HAVE_READLINE_READLINE_H
@@ -59,11 +59,11 @@ THREAD_RESULT THREAD_CALL SNMPTrapReceiver(void *pArg);
 // Global variables
 //
 
-DWORD g_dwFlags = AF_USE_EVENT_LOG;
-char g_szConfigFile[MAX_PATH] = DEFAULT_CONFIG_FILE;
-char g_szLogFile[MAX_PATH] = DEFAULT_LOG_FILE;
+DWORD NXCORE_EXPORTABLE g_dwFlags = AF_USE_EVENT_LOG;
+char NXCORE_EXPORTABLE g_szConfigFile[MAX_PATH] = DEFAULT_CONFIG_FILE;
+char NXCORE_EXPORTABLE g_szLogFile[MAX_PATH] = DEFAULT_LOG_FILE;
 #ifndef _WIN32
-char g_szPIDFile[MAX_PATH] = "/var/run/netxmsd.pid";
+char NXCORE_EXPORTABLE g_szPIDFile[MAX_PATH] = "/var/run/netxmsd.pid";
 #endif
 DB_HANDLE g_hCoreDB = 0;
 DWORD g_dwDiscoveryPollingInterval;
@@ -84,13 +84,25 @@ static CONDITION m_hEventShutdown;
 // Function will return TRUE if shutdown event occurs
 //
 
-BOOL SleepAndCheckForShutdown(int iSeconds)
+BOOL NXCORE_EXPORTABLE SleepAndCheckForShutdown(int iSeconds)
 {
    return ConditionWait(m_hEventShutdown, iSeconds * 1000);
 }
 
 
 //
+// Disconnect from database (exportable function for startup module)
+//
+
+void NXCORE_EXPORTABLE ShutdownDB(void)
+{
+   if (g_hCoreDB != NULL)
+      DBDisconnect(g_hCoreDB);
+   DBUnloadDriver();
+}
+
+
+//
 // Check data directory for existence
 //
 
@@ -161,7 +173,7 @@ static void LoadGlobalConfig()
 // Server initialization
 //
 
-BOOL Initialize(void)
+BOOL NXCORE_EXPORTABLE Initialize(void)
 {
    int i, iNumThreads, iDBVersion;
    DWORD dwAddr;
@@ -319,7 +331,7 @@ void NotifyClient(ClientSession *pSession, void *pArg)
 // Server shutdown
 //
 
-void Shutdown(void)
+void NXCORE_EXPORTABLE Shutdown(void)
 {
    DWORD i, dwNumThreads;
 
@@ -352,7 +364,7 @@ void Shutdown(void)
    UnlockDB();
 
    // Disconnect from database and unload driver
-   if (g_hCoreDB != 0)
+   if (g_hCoreDB != NULL)
       DBDisconnect(g_hCoreDB);
    DBUnloadDriver();
    DbgPrintf(AF_DEBUG_MISC, "Database driver unloaded");
@@ -476,7 +488,7 @@ static BOOL ProcessCommand(char *pszCmdLine)
 
 #ifndef _WIN32
 
-void OnSignal(int iSignal)
+void NXCORE_EXPORTABLE OnSignal(int iSignal)
 {
    WriteLog(MSG_SIGNAL_RECEIVED, EVENTLOG_WARNING_TYPE, "d", iSignal);
    switch(iSignal)
@@ -500,7 +512,7 @@ void OnSignal(int iSignal)
 // Common main()
 //
 
-void Main(void)
+void NXCORE_EXPORTABLE Main(void)
 {
    WriteLog(MSG_SERVER_STARTED, EVENTLOG_INFORMATION_TYPE, NULL);
 
@@ -566,88 +578,3 @@ void Main(void)
 #endif
    }
 }
-
-
-//
-// Startup code
-//
-
-int main(int argc, char *argv[])
-{
-#ifndef _WIN32
-   int i;
-   FILE *fp;
-#endif
-
-   if (!ParseCommandLine(argc, argv))
-      return 1;
-
-   if (!LoadConfig())
-   {
-      if (IsStandalone())
-         printf("Error loading configuration file\n");
-      return 1;
-   }
-
-#ifdef _WIN32
-   if (!IsStandalone())
-   {
-      InitService();
-   }
-   else
-   {
-      if (!Initialize())
-      {
-         printf("NMS Core initialization failed\n");
-
-         // Remove database lock
-         if (g_dwFlags & AF_DB_LOCKED)
-         {
-            UnlockDB();
-            DBDisconnect(g_hCoreDB);
-         }
-         return 3;
-      }
-      Main();
-   }
-#else    /* not _WIN32 */
-   if (!IsStandalone())
-   {
-      if (daemon(0, 0) == -1)
-      {
-         perror("Call to daemon() failed");
-         return 2;
-      }
-   }
-
-   // Write PID file
-   fp = fopen(g_szPIDFile, "w");
-   if (fp != NULL)
-   {
-      fprintf(fp, "%d", getpid());
-      fclose(fp);
-   }
-
-   // Setup signal handlers
-   for(i = 0; i < 32; i++)
-      signal(i, SIG_IGN);
-   signal(SIGTERM, OnSignal);
-   signal(SIGSEGV, OnSignal);
-
-   // Initialize server
-   if (!Initialize())
-   {
-      // Remove database lock
-      if (g_dwFlags & AF_DB_LOCKED)
-      {
-         UnlockDB();
-         DBDisconnect(g_hCoreDB);
-      }
-      return 3;
-   }
-
-   // Everything is OK, start common main loop
-   Main();
-#endif   /* _WIN32 */
-   return 0;
-}
index 0b9dac3..e0e529d 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 #ifdef _WIN32
index 1b85166..05d8f39 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 7bf8d9f..f3325f1 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 02c251f..3c1ac9a 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index eb8b95c..21ae979 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
similarity index 71%
copy from src/server/core/netxmsd.dsp
copy to src/server/core/nxcore.dsp
index 1b8f537..4aad5dd 100644 (file)
@@ -1,24 +1,24 @@
-# Microsoft Developer Studio Project File - Name="netxmsd" - Package Owner=<4>
+# Microsoft Developer Studio Project File - Name="nxcore" - Package Owner=<4>
 # Microsoft Developer Studio Generated Build File, Format Version 6.00
 # ** DO NOT EDIT **
 
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
 
-CFG=netxmsd - Win32 Release
+CFG=nxcore - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
-!MESSAGE NMAKE /f "netxmsd.mak".
+!MESSAGE NMAKE /f "nxcore.mak".
 !MESSAGE 
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "netxmsd.mak" CFG="netxmsd - Win32 Release"
+!MESSAGE NMAKE /f "nxcore.mak" CFG="nxcore - Win32 Debug"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
-!MESSAGE "netxmsd - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "netxmsd - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "nxcore - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "nxcore - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
 !MESSAGE 
 
 # Begin Project
@@ -26,9 +26,10 @@ CFG=netxmsd - Win32 Release
 # PROP Scc_ProjName ""
 # PROP Scc_LocalPath ""
 CPP=cl.exe
+MTL=midl.exe
 RSC=rc.exe
 
-!IF  "$(CFG)" == "netxmsd - Win32 Release"
+!IF  "$(CFG)" == "nxcore - Win32 Release"
 
 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 0
@@ -41,23 +42,25 @@ RSC=rc.exe
 # PROP Intermediate_Dir "Release"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
+# 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 BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib iphlpapi.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib /nologo /version:0.1 /subsystem:console /machine:I386 /libpath:"..\..\libnetxms\Release" /libpath:"..\..\libnxcscp\Release" /libpath:"..\libnxsrv\Release" /libpath:"..\..\libnxsnmp\Release"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib iphlpapi.lib /nologo /dll /machine:I386 /libpath:"..\..\libnetxms\Release" /libpath:"..\..\libnxcscp\Release" /libpath:"..\..\libnxsnmp\Release" /libpath:"..\libnxsrv\Release"
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
 PostBuild_Desc=Copy files
-PostBuild_Cmds=copy Release\netxmsd.exe C:\NetXMS\bin
+PostBuild_Cmds=copy Release\nxcore.dll C:\NetXMS\bin
 # End Special Build Tool
 
-!ELSEIF  "$(CFG)" == "netxmsd - Win32 Debug"
+!ELSEIF  "$(CFG)" == "nxcore - Win32 Debug"
 
 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 1
@@ -70,27 +73,30 @@ PostBuild_Cmds=copy Release\netxmsd.exe C:\NetXMS\bin
 # PROP Intermediate_Dir "Debug"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
+# 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" /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"
+# ADD RSC /l 0x409 /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib iphlpapi.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib /nologo /version:0.1 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\libnetxms\Debug" /libpath:"..\..\libnxcscp\Debug" /libpath:"..\libnxsrv\Debug" /libpath:"..\..\libnxsnmp\Debug"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib iphlpapi.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\libnetxms\Debug" /libpath:"..\..\libnxcscp\Debug" /libpath:"..\..\libnxsnmp\Debug" /libpath:"..\libnxsrv\Debug"
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
-PostBuild_Cmds=copy Debug\netxmsd.exe ..\..\..\bin
+PostBuild_Desc=Copy files
+PostBuild_Cmds=copy Debug\nxcore.dll ..\..\..\bin
 # End Special Build Tool
 
 !ENDIF 
 
 # Begin Target
 
-# Name "netxmsd - Win32 Release"
-# Name "netxmsd - Win32 Debug"
+# Name "nxcore - Win32 Release"
+# Name "nxcore - Win32 Debug"
 # Begin Group "Source Files"
 
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
@@ -266,10 +272,6 @@ SOURCE=.\users.cpp
 
 SOURCE=.\watchdog.cpp
 # End Source File
-# Begin Source File
-
-SOURCE=.\winsrv.cpp
-# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -284,6 +286,10 @@ SOURCE=..\include\local_admin.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\messages.h
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\..\include\netxms-version.h"
 # End Source File
 # Begin Source File
@@ -292,7 +298,7 @@ SOURCE=..\..\..\include\netxmsdb.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_actions.h
+SOURCE=..\include\nms_actions.h
 # End Source File
 # Begin Source File
 
@@ -300,7 +306,7 @@ SOURCE=..\..\..\include\nms_agent.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_alarm.h
+SOURCE=..\include\nms_alarm.h
 # End Source File
 # Begin Source File
 
@@ -308,7 +314,7 @@ SOURCE=..\..\..\include\nms_common.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_core.h
+SOURCE=..\include\nms_core.h
 # End Source File
 # Begin Source File
 
@@ -316,19 +322,19 @@ SOURCE=..\..\..\include\nms_cscp.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_dcoll.h
+SOURCE=..\include\nms_dcoll.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_events.h
+SOURCE=..\include\nms_events.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_locks.h
+SOURCE=..\include\nms_locks.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_objects.h
+SOURCE=..\include\nms_objects.h
 # End Source File
 # Begin Source File
 
@@ -336,7 +342,7 @@ SOURCE=..\..\..\include\nms_threads.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_users.h
+SOURCE=..\include\nms_users.h
 # End Source File
 # Begin Source File
 
@@ -348,6 +354,10 @@ SOURCE=..\..\..\include\nxclapi.h
 # End Source File
 # Begin Source File
 
+SOURCE=.\nxcore.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\nxcscpapi.h
 # End Source File
 # Begin Source File
@@ -360,6 +370,10 @@ SOURCE=..\..\..\include\nximage.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\..\include\nxnt.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\nxqueue.h
 # End Source File
 # Begin Source File
@@ -372,6 +386,10 @@ SOURCE=..\include\nxsrvapi.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\rwlock.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\unicode.h
 # End Source File
 # End Group
similarity index 89%
copy from src/server/core/netxmsd.dsw
copy to src/server/core/nxcore.dsw
index a9f29ef..ed7f4d4 100644 (file)
@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
 
 ###############################################################################
 
-Project: "netxmsd"=.\netxmsd.dsp - Package Owner=<4>
+Project: "nxcore"=.\nxcore.dsp - Package Owner=<4>
 
 Package=<5>
 {{{
similarity index 61%
copy from src/server/core/nms_actions.h
copy to src/server/core/nxcore.h
index f9244de..93d5e3c 100644 (file)
@@ -1,5 +1,6 @@
 /* 
 ** NetXMS - Network Management System
+** Server Core
 ** Copyright (C) 2003, 2004 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: nms_actions.h
+** $module: nxcore.h
 **
 **/
 
-#ifndef _nms_actions_h_
-#define _nms_actions_h_
+#ifndef _nxcore_h_
+#define _nxcore_h_
 
+#include <nms_core.h>
 
-//
-// Functions
-//
-
-BOOL InitActions(void);
-void CleanupActions(void);
-BOOL ExecuteAction(DWORD dwActionId, Event *pEvent);
-DWORD CreateNewAction(char *pszName, DWORD *pdwId);
-DWORD DeleteActionFromDB(DWORD dwActionId);
-DWORD ModifyActionFromMessage(CSCPMessage *pMsg);
-void FillActionInfoMessage(CSCPMessage *pMsg, NXC_ACTION *pAction);
-void SendActionsToClient(ClientSession *pSession, DWORD dwRqId);
-
-#endif   /* _nms_actions_ */
+#endif   /* _nxcore_h_ */
index 1c19afa..ef6b674 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 282d464..8c9bb2e 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 0ef7a17..35c26dd 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 #ifndef _WIN32
 #include <dirent.h>
index d311c68..6464897 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 81672ed..a677e1d 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 1e8e122..119de2d 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 43524da..6b6b48e 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index c898943..46159fc 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 0054278..7ae8023 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index cd94bc7..e99190e 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 #include <fcntl.h>
 #include <sys/stat.h>
@@ -39,7 +39,7 @@
 
 #ifdef _WIN32
 
-char *GetSystemErrorText(DWORD error)
+char NXCORE_EXPORTABLE *GetSystemErrorText(DWORD error)
 {
    char *msgBuf;
    static char staticBuffer[1024];
@@ -275,7 +275,7 @@ static char m_szSpecialChars[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
 // Escape some special characters in string for writing into database
 //
 
-char *EncodeSQLString(const char *pszIn)
+char NXCORE_EXPORTABLE *EncodeSQLString(const char *pszIn)
 {
    char *pszOut;
    int iPosIn, iPosOut, iStrSize;
@@ -309,7 +309,7 @@ char *EncodeSQLString(const char *pszIn)
 // Characters are decoded "in place"
 //
 
-void DecodeSQLString(char *pszStr)
+void NXCORE_EXPORTABLE DecodeSQLString(char *pszStr)
 {
    int iPosIn, iPosOut;
 
index 53a1fb7..667111d 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index c886105..dc8eb29 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
index 5346baa..e0cdac0 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "nxcore.h"
 
 
 //
similarity index 89%
rename from src/server/core/nms_core.h
rename to src/server/include/nms_core.h
index 870d640..807e3cd 100644 (file)
 #ifndef _nms_core_h_
 #define _nms_core_h_
 
+#ifdef _WIN32
+#ifdef NXCORE_EXPORTS
+#define NXCORE_EXPORTABLE __declspec(dllexport)
+#else
+#define NXCORE_EXPORTABLE __declspec(dllimport)
+#endif
+#else    /* _WIN32 */
+#define NXCORE_EXPORTABLE
+#endif
+
+
 #define LIBNXCL_NO_DECLARATIONS  1
 
 #include <nms_common.h>
@@ -326,21 +337,21 @@ public:
 // Functions
 //
 
-BOOL ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefault);
-int ConfigReadInt(char *szVar, int iDefault);
-DWORD ConfigReadULong(char *szVar, DWORD dwDefault);
-BOOL ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate);
-BOOL ConfigWriteInt(char *szVar, int iValue, BOOL bCreate);
-BOOL ConfigWriteULong(char *szVar, DWORD dwValue, BOOL bCreate);
+BOOL NXCORE_EXPORTABLE ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefault);
+int NXCORE_EXPORTABLE ConfigReadInt(char *szVar, int iDefault);
+DWORD NXCORE_EXPORTABLE ConfigReadULong(char *szVar, DWORD dwDefault);
+BOOL NXCORE_EXPORTABLE ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate);
+BOOL NXCORE_EXPORTABLE ConfigWriteInt(char *szVar, int iValue, BOOL bCreate);
+BOOL NXCORE_EXPORTABLE ConfigWriteULong(char *szVar, DWORD dwValue, BOOL bCreate);
 
-BOOL ParseCommandLine(int argc, char *argv[]);
-BOOL LoadConfig(void);
+BOOL NXCORE_EXPORTABLE LoadConfig(void);
 
-void Shutdown(void);
-BOOL Initialize(void);
-void Main(void);
+void NXCORE_EXPORTABLE Shutdown(void);
+BOOL NXCORE_EXPORTABLE Initialize(void);
+void NXCORE_EXPORTABLE Main(void);
+void NXCORE_EXPORTABLE ShutdownDB(void);
 
-BOOL SleepAndCheckForShutdown(int iSeconds);
+BOOL NXCORE_EXPORTABLE SleepAndCheckForShutdown(int iSeconds);
 
 void SaveObjects(void);
 
@@ -395,12 +406,12 @@ void SendImageCatalogue(ClientSession *pSession, DWORD dwRqId, WORD wFormat);
 void SendImageFile(ClientSession *pSession, DWORD dwRqId, DWORD dwImageId, WORD wFormat);
 void SendDefaultImageList(ClientSession *pSession, DWORD dwRqId);
 
-char *EncodeSQLString(const char *pszIn);
-void DecodeSQLString(char *pszStr);
+char NXCORE_EXPORTABLE *EncodeSQLString(const char *pszIn);
+void NXCORE_EXPORTABLE DecodeSQLString(char *pszStr);
 
 void InitMailer(void);
 void ShutdownMailer(void);
-void PostMail(char *pszRcpt, char *pszSubject, char *pszText);
+void NXCORE_EXPORTABLE PostMail(char *pszRcpt, char *pszSubject, char *pszText);
 
 void GetAccelarVLANIfList(DWORD dwVersion, DWORD dwIpAddr, const TCHAR *pszCommunity, INTERFACE_LIST *pIfList);
 
@@ -412,15 +423,11 @@ DWORD DeleteTrap(DWORD dwId);
 
 #ifdef _WIN32
 
-void InitService(void);
-void InstallService(char *execName, char *dllName);
-void RemoveService(void);
-void StartCoreService(void);
-void StopCoreService(void);
-void InstallEventSource(char *path);
-void RemoveEventSource(void);
+char NXCORE_EXPORTABLE *GetSystemErrorText(DWORD error);
+
+#else
 
-char *GetSystemErrorText(DWORD error);
+void NXCORE_EXPORTABLE OnSignal(int iSignal);
 
 #endif   /* _WIN32 */
 
@@ -434,11 +441,11 @@ void DumpSessions(void);
 // Global variables
 //
 
-extern DWORD g_dwFlags;
-extern char g_szConfigFile[];
-extern char g_szLogFile[];
+extern DWORD NXCORE_EXPORTABLE g_dwFlags;
+extern char NXCORE_EXPORTABLE g_szConfigFile[];
+extern char NXCORE_EXPORTABLE g_szLogFile[];
 #ifndef _WIN32
-extern char g_szPIDFile[];
+extern char NXCORE_EXPORTABLE g_szPIDFile[];
 #endif
 extern char g_szDataDir[];
 
similarity index 97%
rename from src/server/core/nms_locks.h
rename to src/server/include/nms_locks.h
index 0b893b4..f64d6e7 100644 (file)
@@ -48,7 +48,7 @@ BOOL InitLocks(DWORD *pdwIpAddr, char *pszInfo);
 BOOL LockComponent(DWORD dwId, DWORD dwLockBy, char *pszOwnerInfo, DWORD *pdwCurrentOwner, char *pszCurrentOwnerInfo);
 void UnlockComponent(DWORD dwId);
 void RemoveAllSessionLocks(DWORD dwSessionId);
-void UnlockDB(void);
+void NXCORE_EXPORTABLE UnlockDB(void);
 
 #endif
 
similarity index 63%
copy from src/server/core/config.cpp
copy to src/server/netxmsd/netxmsd.cpp
index b6fe334..deed289 100644 (file)
@@ -1,6 +1,7 @@
 /* 
-** Project X - Network Management System
-** Copyright (C) 2003 Victor Kirhenshtein
+** NetXMS - Network Management System
+** Server startup module
+** Copyright (C) 2003, 2004 NetXMS Team
 **
 ** 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
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: config.cpp
+** $module: main.cpp
 **
 **/
 
-#include "nms_core.h"
+#include "netxmsd.h"
 
 
 //
@@ -28,7 +29,7 @@
 //
 
 static char help_text[]="NetXMS Server Version " NETXMS_VERSION_STRING "\n"
-                        "Copyright (c) 2003 SecurityProjects.org\n\n"
+                        "Copyright (c) 2003, 2004 NetXMS Team\n\n"
                         "Usage: netxmsd [<options>] <command>\n\n"
                         "Valid options are:\n"
                         "   --config <file>     : Set non-default configuration file\n"
@@ -66,53 +67,11 @@ static char help_text[]="NetXMS Server Version " NETXMS_VERSION_STRING "\n"
 
 
 //
-// Load and parse configuration file
-// Returns TRUE on success and FALSE on failure
-//
-
-static NX_CFG_TEMPLATE m_cfgTemplate[] =
-{
-   { "DBDriver", CT_STRING, 0, 0, MAX_PATH, 0, g_szDbDriver },
-   { "DBDrvParams", CT_STRING, 0, 0, MAX_PATH, 0, g_szDbDrvParams },
-   { "DBLogin", CT_STRING, 0, 0, MAX_DB_LOGIN, 0, g_szDbLogin },
-   { "DBName", CT_STRING, 0, 0, MAX_DB_NAME, 0, g_szDbName },
-   { "DBPassword", CT_STRING, 0, 0, MAX_DB_PASSWORD, 0, g_szDbPassword },
-   { "DBServer", CT_STRING, 0, 0, MAX_PATH, 0, g_szDbServer },
-   { "LogFailedSQLQueries", CT_BOOLEAN, 0, 0, AF_LOG_SQL_ERRORS, 0, &g_dwFlags },
-   { "LogFile", CT_STRING, 0, 0, MAX_PATH, 0, g_szLogFile },
-   { "", CT_END_OF_LIST, 0, 0, 0, 0, NULL }
-};
-
-BOOL LoadConfig(void)
-{
-   BOOL bSuccess = FALSE;
-
-   if (IsStandalone())
-      printf("Using configuration file \"%s\"\n", g_szConfigFile);
-
-   if (NxLoadConfig(g_szConfigFile, "", m_cfgTemplate, IsStandalone()) == NXCFG_ERR_OK)
-   {
-      if ((!stricmp(g_szLogFile,"{EventLog}")) ||
-          (!stricmp(g_szLogFile,"{syslog}")))
-      {
-         g_dwFlags |= AF_USE_EVENT_LOG;
-      }
-      else
-      {
-         g_dwFlags &= ~AF_USE_EVENT_LOG;
-      }
-      bSuccess = TRUE;
-   }
-   return bSuccess;
-}
-
-
-//
 // Parse command line
 // Returns TRUE on success and FALSE on failure
 //
 
-BOOL ParseCommandLine(int argc, char *argv[])
+static BOOL ParseCommandLine(int argc, char *argv[])
 {
    int i;
 
@@ -255,123 +214,85 @@ BOOL ParseCommandLine(int argc, char *argv[])
 
 
 //
-// Read string value from configuration table
+// Startup code
 //
 
-BOOL ConfigReadStr(char *szVar, char *szBuffer, int iBufSize, const char *szDefault)
+int main(int argc, char *argv[])
 {
-   DB_RESULT hResult;
-   char szQuery[256];
-   BOOL bSuccess = FALSE;
-
-   strncpy(szBuffer, szDefault, iBufSize);
-   if (strlen(szVar) > 127)
-      return FALSE;
+#ifndef _WIN32
+   int i;
+   FILE *fp;
+#endif
 
-   sprintf(szQuery, "SELECT var_value FROM config WHERE var_name='%s'", szVar);
-   hResult = DBSelect(g_hCoreDB, szQuery);
-   if (hResult == 0)
-      return FALSE;
+   if (!ParseCommandLine(argc, argv))
+      return 1;
 
-   if (DBGetNumRows(hResult) > 0)
+   if (!LoadConfig())
    {
-      strncpy(szBuffer, DBGetField(hResult, 0, 0), iBufSize - 1);
-      bSuccess = TRUE;
+      if (IsStandalone())
+         printf("Error loading configuration file\n");
+      return 1;
    }
 
-   DBFreeResult(hResult);
-   return bSuccess;
-}
-
-
-//
-// Read integer value from configuration table
-//
-
-int ConfigReadInt(char *szVar, int iDefault)
-{
-   char szBuffer[64];
-
-   if (ConfigReadStr(szVar, szBuffer, 64, ""))
-      return strtol(szBuffer, NULL, 0);
-   else
-      return iDefault;
-}
-
-
-//
-// Read unsigned long value from configuration table
-//
-
-DWORD ConfigReadULong(char *szVar, DWORD dwDefault)
-{
-   char szBuffer[64];
-
-   if (ConfigReadStr(szVar, szBuffer, 64, ""))
-      return strtoul(szBuffer, NULL, 0);
-   else
-      return dwDefault;
-}
-
-
-//
-// Write string value to configuration table
-//
-
-BOOL ConfigWriteStr(char *szVar, char *szValue, BOOL bCreate)
-{
-   DB_RESULT hResult;
-   char szQuery[1024];
-   BOOL bVarExist = FALSE;
-
-   if (strlen(szVar) > 127)
-      return FALSE;
-
-   // Check for variable existence
-   sprintf(szQuery, "SELECT var_value FROM config WHERE var_name='%s'", szVar);
-   hResult = DBSelect(g_hCoreDB, szQuery);
-   if (hResult != 0)
+#ifdef _WIN32
+   if (!IsStandalone())
    {
-      if (DBGetNumRows(hResult) > 0)
-         bVarExist = TRUE;
-      DBFreeResult(hResult);
+      InitService();
    }
-
-   // Don't create non-existing variable if creation flag not set
-   if (!bCreate && !bVarExist)
-      return FALSE;
-
-   // Create or update variable value
-   if (bVarExist)
-      sprintf(szQuery, "UPDATE config SET var_value='%s' WHERE var_name='%s'", szValue, szVar);
    else
-      sprintf(szQuery, "INSERT INTO config (var_name,var_value,is_visible,"
-                       "need_server_restart) VALUES ('%s','%s',0,0)", szVar, szValue);
-   return DBQuery(g_hCoreDB, szQuery);
-}
-
-
-//
-// Write integer value to configuration table
-//
-
-BOOL ConfigWriteInt(char *szVar, int iValue, BOOL bCreate)
-{
-   char szBuffer[64];
+   {
+      if (!Initialize())
+      {
+         printf("NMS Core initialization failed\n");
 
-   sprintf(szBuffer, "%ld", iValue);
-   return ConfigWriteStr(szVar, szBuffer, bCreate);
-}
+         // Remove database lock
+         if (g_dwFlags & AF_DB_LOCKED)
+         {
+            UnlockDB();
+            ShutdownDB();
+         }
+         return 3;
+      }
+      Main();
+   }
+#else    /* not _WIN32 */
+   if (!IsStandalone())
+   {
+      if (daemon(0, 0) == -1)
+      {
+         perror("Call to daemon() failed");
+         return 2;
+      }
+   }
 
+   // Write PID file
+   fp = fopen(g_szPIDFile, "w");
+   if (fp != NULL)
+   {
+      fprintf(fp, "%d", getpid());
+      fclose(fp);
+   }
 
-//
-// Write unsigned long value to configuration table
-//
+   // Setup signal handlers
+   for(i = 0; i < 32; i++)
+      signal(i, SIG_IGN);
+   signal(SIGTERM, OnSignal);
+   signal(SIGSEGV, OnSignal);
 
-BOOL ConfigWriteULong(char *szVar, DWORD dwValue, BOOL bCreate)
-{
-   char szBuffer[64];
+   // Initialize server
+   if (!Initialize())
+   {
+      // Remove database lock
+      if (g_dwFlags & AF_DB_LOCKED)
+      {
+         UnlockDB();
+         ShutdownDB();
+      }
+      return 3;
+   }
 
-   sprintf(szBuffer, "%lu", dwValue);
-   return ConfigWriteStr(szVar, szBuffer, bCreate);
+   // Everything is OK, start common main loop
+   Main();
+#endif   /* _WIN32 */
+   return 0;
 }
similarity index 57%
rename from src/server/core/netxmsd.dsp
rename to src/server/netxmsd/netxmsd.dsp
index 1b8f537..7393a5f 100644 (file)
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Console Application" 0x0103
 
-CFG=netxmsd - Win32 Release
+CFG=netxmsd - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,7 +13,7 @@ CFG=netxmsd - Win32 Release
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "netxmsd.mak" CFG="netxmsd - Win32 Release"
+!MESSAGE NMAKE /f "netxmsd.mak" CFG="netxmsd - Win32 Debug"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
@@ -43,14 +43,14 @@ RSC=rc.exe
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib iphlpapi.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib /nologo /version:0.1 /subsystem:console /machine:I386 /libpath:"..\..\libnetxms\Release" /libpath:"..\..\libnxcscp\Release" /libpath:"..\libnxsrv\Release" /libpath:"..\..\libnxsnmp\Release"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib nxcore.lib /nologo /subsystem:console /machine:I386 /libpath:"..\core\Release"
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
 PostBuild_Desc=Copy files
@@ -70,18 +70,19 @@ PostBuild_Cmds=copy Release\netxmsd.exe C:\NetXMS\bin
 # PROP Intermediate_Dir "Debug"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib iphlpapi.lib libnetxms.lib libnxcscp.lib libnxsrv.lib libnxsnmp.lib /nologo /version:0.1 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\libnetxms\Debug" /libpath:"..\..\libnxcscp\Debug" /libpath:"..\libnxsrv\Debug" /libpath:"..\..\libnxsnmp\Debug"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib nxcore.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\core\Debug"
 # Begin Special Build Tool
 SOURCE="$(InputPath)"
+PostBuild_Desc=Copy files
 PostBuild_Cmds=copy Debug\netxmsd.exe ..\..\..\bin
 # End Special Build Tool
 
@@ -96,175 +97,7 @@ PostBuild_Cmds=copy Debug\netxmsd.exe ..\..\..\bin
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
 # Begin Source File
 
-SOURCE=.\acl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\actions.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\admin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\alarm.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\container.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\datacoll.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\dbwrite.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\dcitem.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\dcithreshold.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\dcivalue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\debug.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\discovery.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\email.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\entirenet.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\epp.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\events.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\evproc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\hk.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\id.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\image.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\interface.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\locks.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\netinfo.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\netobj.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\node.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\nortel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\np.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\objects.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\rootobj.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\session.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\snmp.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\snmptrap.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\status.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\subnet.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\syncer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\template.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\tools.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\uniroot.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\users.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\watchdog.cpp
+SOURCE=.\netxmsd.cpp
 # End Source File
 # Begin Source File
 
@@ -284,15 +117,23 @@ SOURCE=..\include\local_admin.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\messages.h
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\..\include\netxms-version.h"
 # End Source File
 # Begin Source File
 
+SOURCE=.\netxmsd.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\netxmsdb.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_actions.h
+SOURCE=..\include\nms_actions.h
 # End Source File
 # Begin Source File
 
@@ -300,7 +141,7 @@ SOURCE=..\..\..\include\nms_agent.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_alarm.h
+SOURCE=..\include\nms_alarm.h
 # End Source File
 # Begin Source File
 
@@ -308,7 +149,7 @@ SOURCE=..\..\..\include\nms_common.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_core.h
+SOURCE=..\include\nms_core.h
 # End Source File
 # Begin Source File
 
@@ -316,19 +157,19 @@ SOURCE=..\..\..\include\nms_cscp.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_dcoll.h
+SOURCE=..\include\nms_dcoll.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_events.h
+SOURCE=..\include\nms_events.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_locks.h
+SOURCE=..\include\nms_locks.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_objects.h
+SOURCE=..\include\nms_objects.h
 # End Source File
 # Begin Source File
 
@@ -336,7 +177,7 @@ SOURCE=..\..\..\include\nms_threads.h
 # End Source File
 # Begin Source File
 
-SOURCE=.\nms_users.h
+SOURCE=..\include\nms_users.h
 # End Source File
 # Begin Source File
 
@@ -360,6 +201,10 @@ SOURCE=..\..\..\include\nximage.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\..\include\nxnt.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\nxqueue.h
 # End Source File
 # Begin Source File
@@ -372,6 +217,10 @@ SOURCE=..\include\nxsrvapi.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\rwlock.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\include\unicode.h
 # End Source File
 # End Group
similarity index 61%
rename from src/server/core/nms_actions.h
rename to src/server/netxmsd/netxmsd.h
index f9244de..3590716 100644 (file)
@@ -1,5 +1,6 @@
 /* 
 ** NetXMS - Network Management System
+** Server startup module
 ** Copyright (C) 2003, 2004 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: nms_actions.h
+** $module: netxmsd.h
 **
 **/
 
-#ifndef _nms_actions_h_
-#define _nms_actions_h_
+#ifndef _netxmsd_h_
+#define _netxmsd_h_
 
+#include <nms_core.h>
 
-//
-// Functions
-//
+#ifdef _WIN32
 
-BOOL InitActions(void);
-void CleanupActions(void);
-BOOL ExecuteAction(DWORD dwActionId, Event *pEvent);
-DWORD CreateNewAction(char *pszName, DWORD *pdwId);
-DWORD DeleteActionFromDB(DWORD dwActionId);
-DWORD ModifyActionFromMessage(CSCPMessage *pMsg);
-void FillActionInfoMessage(CSCPMessage *pMsg, NXC_ACTION *pAction);
-void SendActionsToClient(ClientSession *pSession, DWORD dwRqId);
+void InitService(void);
+void InstallService(char *execName, char *dllName);
+void RemoveService(void);
+void StartCoreService(void);
+void StopCoreService(void);
+void InstallEventSource(char *path);
+void RemoveEventSource(void);
 
-#endif   /* _nms_actions_ */
+#endif   /* _WIN32 */
+
+#endif   /* _netxmsd_h_ */
similarity index 98%
rename from src/server/core/winsrv.cpp
rename to src/server/netxmsd/winsrv.cpp
index 475aa81..0857cf8 100644 (file)
@@ -20,7 +20,7 @@
 **
 **/
 
-#include "nms_core.h"
+#include "netxmsd.h"
 
 #ifdef _WIN32
 
@@ -94,8 +94,8 @@ static VOID WINAPI CoreServiceMain(DWORD argc, LPTSTR *argv)
       // Remove database lock
       if (g_dwFlags & AF_DB_LOCKED)
       {
-         DBQuery(g_hCoreDB, "UPDATE locks SET lock_status=-1,owner_info='' WHERE component_id=0");
-         DBDisconnect(g_hCoreDB);
+         UnlockDB();
+         ShutdownDB();
       }
 
       // Now service is stopped