libexpat ported to NetWare; added prefixes to all exports in NetWare; other minor...
authorVictor Kirhenshtein <victor@netxms.org>
Thu, 29 Oct 2009 23:08:30 +0000 (23:08 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Thu, 29 Oct 2009 23:08:30 +0000 (23:08 +0000)
22 files changed:
Makefile.nw
include/config-netware.h
netware/Makefile.inc
src/agent/core/nxagentd.def
src/agent/subagents/ecs/ecs.def
src/agent/subagents/logwatch/logwatch.def
src/agent/subagents/netware/netware.def
src/agent/subagents/ping/ping.def
src/libexpat/libexpat/Makefile.am
src/libexpat/libexpat/Makefile.nw [new file with mode: 0644]
src/libexpat/libexpat/libexpat.cpp
src/libexpat/libexpat/nwconfig.h [new file with mode: 0644]
src/libexpat/libexpat/nxexpat.def [new file with mode: 0644]
src/libexpat/libexpat/xmlparse.c
src/libexpat/libexpat/xmlrole.c
src/libexpat/libexpat/xmltok.c
src/libnetxms/netxms.def
src/libnetxms/string.cpp
src/libnxlp/libnxlp.def
src/server/core/audit.cpp
src/server/core/userdb.cpp
src/server/include/nms_users.h

index 514b801..4c33399 100644 (file)
@@ -3,7 +3,7 @@
 # Copyright (c) 2006 Victor Kirhenshtein
 #
 
-SUBDIRS = src/libnetxms src/libnxlp src/agent/core \
+SUBDIRS = src/libexpat/libexpat src/libnetxms src/libnxlp src/agent/core \
           src/agent/subagents/netware src/agent/subagents/ping \
           src/agent/subagents/ecs src/agent/subagents/logwatch
 COMMAND = for dir in $(SUBDIRS); do \
index ec879c6..67fc436 100644 (file)
 /* Define to 1 if you have the `pthread_mutexattr_settype' function. */
 #define HAVE_PTHREAD_MUTEXATTR_SETTYPE 1
 
+/* Define to 1 if you have the declaration of `pthread_mutexattr_settype', and
+   to 0 if you don't. */
+#define HAVE_DECL_PTHREAD_MUTEXATTR_SETTYPE 1
+
 /* Define to 1 if you have working pthread read/write locks */
 #define HAVE_PTHREAD_RWLOCK 1
 
@@ -70,3 +74,6 @@
 /* Define to 1 if you have the declaration of `va_copy', and
    to 0 if you don't. */
 #define HAVE_DECL_VA_COPY 1
+
+/* Define to 1 if you have Expat XML parser. */
+#define HAVE_LIBEXPAT 1
index 0d8edbf..da1593f 100644 (file)
@@ -7,7 +7,7 @@ CFLAGS   = -nostdinc -fno-exceptions -fno-builtin -fpack-struct -fno-rtti \
            -c -D_NETWARE -IC:/nwsdk/libc/include \
            -IC:/nwsdk/fs64/include \
           -I../../include -I../../../include \
-           -I../../../../include
+           -I../../../../include -I../libexpat/libexpat
 LDFLAGS  = --linker=c:/gcc-nlm/usr/bin/i586-netware-ld.exe --output-target=nlm32-i386 --input-target=elf32-i386
 PLDFLAGS = -r
 
index 88f88d7..faac300 100644 (file)
@@ -10,7 +10,7 @@
 INPUT nxagentd_r.o
 
 # Import/Export
-IMPORT @../../libnetxms/netxms.imp
+IMPORT (NETXMS) @../../libnetxms/netxms.imp
 
 # Entry points
 START _LibCPrelude
index 4e781f6..c87ce85 100644 (file)
@@ -10,7 +10,7 @@
 INPUT ecs.o
 
 # Import/Export
-IMPORT @../../../libnetxms/netxms.imp
+IMPORT (NETXMS) @../../../libnetxms/netxms.imp
 EXPORT NxSubAgentRegister_ECS
 
 # Entry points
index 31a8f95..503c0fd 100644 (file)
@@ -10,8 +10,8 @@
 INPUT main.o
 
 # Import/Export
-IMPORT @../../../libnetxms/netxms.imp
-IMPORT @../../../libnxlp/libnxlp.imp
+IMPORT (NETXMS) @../../../libnetxms/netxms.imp
+IMPORT (LIBNXLP) @../../../libnxlp/libnxlp.imp
 EXPORT NxSubAgentRegister_LOGWATCH
 
 # Entry points
index ba3bf5b..d11fd40 100644 (file)
@@ -10,7 +10,7 @@
 INPUT netware.o
 
 # Import/Export
-IMPORT @../../../libnetxms/netxms.imp
+IMPORT (NETXMS) @../../../libnetxms/netxms.imp
 EXPORT NxSubAgentRegister_NETWARE
 
 # Entry points
index 6c15d3c..3f72eba 100644 (file)
@@ -10,7 +10,7 @@
 INPUT ping.o
 
 # Import/Export
-IMPORT @../../../libnetxms/netxms.imp
+IMPORT (NETXMS) @../../../libnetxms/netxms.imp
 EXPORT NxSubAgentRegister_PING
 
 # Entry points
index 8fc49d4..5744afe 100644 (file)
@@ -8,19 +8,20 @@ libnxexpat_la_CPPFLAGS = -DHAVE_EXPAT_CONFIG_H -I..
 libnxexpat_la_LDFLAGS = -version-info $(NETXMS_LIBRARY_VERSION)
 
 EXTRA_DIST = \
-       libexpat.vcproj libexpat.cpp
-       amigaconfig.h
-       ascii.h
-       asciitab.h
-       expat_external.h
-       expat.h
-       iasciitab.h
-       internal.h
-       latin1tab.h
-       macconfig.h
-       nametab.h
-       utf8tab.h
-       winconfig.h
-       xmlrole.h
-       xmltok.h
+       libexpat.vcproj libexpat.cpp \
+       Makefile.nw nwconfig.h nxexpat.def \
+       amigaconfig.h \
+       ascii.h \
+       asciitab.h \
+       expat_external.h \
+       expat.h \
+       iasciitab.h \
+       internal.h \
+       latin1tab.h \
+       macconfig.h \
+       nametab.h \
+       utf8tab.h \
+       winconfig.h \
+       xmlrole.h \
+       xmltok.h \
        xmltok_impl.h
diff --git a/src/libexpat/libexpat/Makefile.nw b/src/libexpat/libexpat/Makefile.nw
new file mode 100644 (file)
index 0000000..d906a6a
--- /dev/null
@@ -0,0 +1,32 @@
+#
+# Makefile for building libnetxms for Novell NetWare platform
+# Copyright (c) 2004 Victor Kirhenshtein
+#
+
+include ../../../netware/Makefile.inc
+
+OBJECTS  = libexpat.o xmlparse.o xmlrole.o xmltok.o xmltok_impl.o xmltok_ns.o
+EXEC     = nxexpat.nlm
+DEF      = nxexpat.def
+OBJTMP   = nxexpat_r.o
+IMP      = nxexpat.imp
+
+all: $(EXEC)
+
+$(OBJECTS): Makefile.nw
+
+.cpp.o:
+       $(CC) $(CFLAGS) -o $*.o $<
+
+.c.o:
+       $(CC) $(CFLAGS) -o $*.o $<
+
+$(EXEC): $(OBJECTS) $(DEF)
+       $(PRELINK) -o $(OBJTMP) $(OBJECTS) $(PLDFLAGS)
+       $(PERL) ../../../tools/nwmkimp.pl $(OBJTMP) $(IMP)
+       $(LINK) $(LDFLAGS) -T $(DEF)
+       rm -f $(OBJTMP)
+       cp $(EXEC) ../../../netware/bin
+
+clean:
+       rm -f *.o $(EXEC)
index 2b05d8a..6a35ba5 100644 (file)
@@ -1,6 +1,8 @@
-// libexpat.cpp : Defines the entry point for the DLL application.
+// libexpat.cpp : Defines the entry point for the DLL or NLM
 //
 
+#ifdef _WIN32
+
 #include <windows.h>
 
 
@@ -10,3 +12,24 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
                DisableThreadLibraryCalls(hModule);
        return TRUE;
 }
+
+#endif
+
+
+//
+// NetWare library entry point
+//
+
+#ifdef _NETWARE
+
+extern "C" int _init(void)
+{
+   return 0;
+}
+
+extern "C" int _fini(void)
+{
+   return 0;
+}
+
+#endif
diff --git a/src/libexpat/libexpat/nwconfig.h b/src/libexpat/libexpat/nwconfig.h
new file mode 100644 (file)
index 0000000..cb5c645
--- /dev/null
@@ -0,0 +1,26 @@
+/*================================================================
+** Copyright 2000, Clark Cooper
+** Copyright 2009, Victor Kirhenshtein
+** All rights reserved.
+**
+** This is free software. You are permitted to copy, distribute, or modify
+** it under the terms of the MIT/X license (contained in the COPYING file
+** with this distribution.)
+*/
+
+#ifndef NWCONFIG_H
+#define NWCONFIG_H
+
+#include <string.h>
+
+#define XML_NS 1
+#define XML_DTD 1
+#define XML_CONTEXT_BYTES 1024
+
+/* all NetWare platforms are little endian */
+#define BYTEORDER 1234
+
+/* NetWare has memmove() available. */
+#define HAVE_MEMMOVE
+
+#endif /* ndef NWCONFIG_H */
diff --git a/src/libexpat/libexpat/nxexpat.def b/src/libexpat/libexpat/nxexpat.def
new file mode 100644 (file)
index 0000000..724dcd5
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# nxexpat.def - NLM Header definition file for nlmconv
+# Copyright (c) 2009 Victor Kirhenshtein
+#
+
+# common definitions
+@../../../netware/nlmconv.inc
+
+# define startup object files
+INPUT nxexpat_r.o
+
+# Imports/Exports
+EXPORT (NXEXPAT) @nxexpat.imp
+
+# Entry points
+START _LibCPrelude
+EXIT _LibCPostlude
+
+# NLM header
+OUTPUT nxexpat.nlm
+TYPE 0
+DESCRIPTION "Expat XML Parser (NetXMS Build)"
+SCREENNAME "System Console"
+FLAG_ON 64
+VERSION 2,0,1
+COPYRIGHT "Copyright (c) 1998-2006 Thai Open Source Software Center Ltd., Clark Cooper, and Expat maintainers"
+
+MODULE LIBC
index a7a0d2e..39a2e74 100644 (file)
@@ -10,6 +10,8 @@
 
 #ifdef COMPILED_FROM_DSP
 #include "winconfig.h"
+#elif defined(_NETWARE)
+#include "nwconfig.h"
 #elif defined(MACOS_CLASSIC)
 #include "macconfig.h"
 #elif defined(__amigaos4__)
index 9c5e25b..fe48756 100644 (file)
@@ -6,6 +6,8 @@
 
 #ifdef COMPILED_FROM_DSP
 #include "winconfig.h"
+#elif defined(_NETWARE)
+#include "nwconfig.h"
 #elif defined(MACOS_CLASSIC)
 #include "macconfig.h"
 #elif defined(__amigaos4__)
index 068afde..1bff309 100644 (file)
@@ -6,6 +6,8 @@
 
 #ifdef COMPILED_FROM_DSP
 #include "winconfig.h"
+#elif defined(_NETWARE)
+#include "nwconfig.h"
 #elif defined(MACOS_CLASSIC)
 #include "macconfig.h"
 #elif defined(__amigaos4__)
index a509194..b7032d1 100644 (file)
@@ -1,6 +1,6 @@
 #
 # netxms.def - NLM Header definition file for nlmconv
-# Copyright (c) 2004 Victor Kirhenshtein
+# Copyright (c) 2004-2009 Victor Kirhenshtein
 #
 
 # common definitions
@@ -10,7 +10,8 @@
 INPUT netxms_r.o
 
 # Imports/Exports
-EXPORT @netxms.imp
+IMPORT (NXEXPAT) @../libexpat/libexpat/nxexpat.imp
+EXPORT (NETXMS) @netxms.imp
 
 # Entry points
 START _LibCPrelude
@@ -23,4 +24,4 @@ DESCRIPTION "NetXMS Foundation Library"
 SCREENNAME "System Console"
 FLAG_ON 64
 
-MODULE LIBC
+MODULE LIBC, NXEXPAT
index 3909c96..fbcc733 100644 (file)
@@ -159,7 +159,7 @@ void String::addFormattedStringV(const TCHAR *format, va_list args)
    va_end(argsCopy);
 #else
        // No way to determine required buffer size, guess
-       len = strlen(format) + CharCount(format, '%') * 1000 + 1;
+       len = strlen(format) + NumChars(format, '%') * 1000 + 1;
    buffer = (char *)malloc(len);
 
    vsnprintf(buffer, len, format, args);
index e8899cf..b6a0672 100644 (file)
@@ -10,8 +10,9 @@
 INPUT libnxlp_r.o
 
 # Imports/Exports
-IMPORT @../libnetxms/netxms.imp
-EXPORT @libnxlp.imp
+IMPORT (NETXMS) @../libnetxms/netxms.imp
+IMPORT (NXEXPAT) @../libexpat/libexpat/nxexpat.imp
+EXPORT (LIBNXLP) @libnxlp.imp
 
 # Entry points
 START _LibCPrelude
@@ -24,4 +25,4 @@ DESCRIPTION "NetXMS Log Parsing Library"
 SCREENNAME "System Console"
 FLAG_ON 64
 
-MODULE LIBC, NETXMS
+MODULE LIBC, NXEXPAT, NETXMS
index 655d0af..6992a05 100644 (file)
@@ -171,8 +171,8 @@ void NXCORE_EXPORTABLE WriteAuditLog(const TCHAR *subsys, BOOL isSuccess, DWORD
                String extText;
                TCHAR buffer[256];
 
-               extText = _T("USER=");
-               if (GetUserName(userId, buffer, 256))
+               extText = _T("[");
+               if (ResolveUserId(userId, buffer, 256))
                {
                        extText += buffer;
                }
@@ -181,7 +181,7 @@ void NXCORE_EXPORTABLE WriteAuditLog(const TCHAR *subsys, BOOL isSuccess, DWORD
                        extText.addFormattedString(_T("{%d}"), userId);
                }
 
-               extText.addFormattedString(_T(" WORKSTATION=%s "), workstation);
+               extText.addFormattedString(_T("@%s] "), workstation);
 
                extText += (const TCHAR *)text;
                SendSyslogRecord((const TCHAR *)extText);
index 7cbbb5e..673976f 100644 (file)
@@ -292,10 +292,10 @@ bool NXCORE_EXPORTABLE CheckUserMembership(DWORD dwUserId, DWORD dwGroupId)
 
 
 //
-// Get user's login name
+// Resolve user's ID to login name
 //
 
-bool GetUserName(DWORD id, TCHAR *buffer, int bufSize)
+bool NXCORE_EXPORTABLE ResolveUserId(DWORD id, TCHAR *buffer, int bufSize)
 {
        bool found = false;
 
index 47cea1a..78f6456 100644 (file)
@@ -217,7 +217,7 @@ void NXCORE_EXPORTABLE CloseUserDatabase();
 const TCHAR NXCORE_EXPORTABLE *GetUserDbObjectAttr(DWORD id, const TCHAR *name);
 DWORD NXCORE_EXPORTABLE GetUserDbObjectAttrAsULong(DWORD id, const TCHAR *name);
 void NXCORE_EXPORTABLE SetUserDbObjectAttr(DWORD id, const TCHAR *name, const TCHAR *value);
-bool GetUserName(DWORD id, TCHAR *buffer, int bufSize);
+bool NXCORE_EXPORTABLE ResolveUserId(DWORD id, TCHAR *buffer, int bufSize);
 void DumpUsers(CONSOLE_CTX pCtx);
 
 #endif