-------------------------------------------------------------------
Tue Jan 15 17:02:04 MST 2008 - sclark@novell.com
- Bug 340268 - netnlm32.nlm can not be loaded in protected memory.
  Changed NETNLM32.NLM to load the NMAS modules SPMNWCC.NLM from a work-to-do, as
  soon as it has loaded. Whether the SPMNWCC.NLM load or not NETNLM32 will still
  be loaded and function. SPMNWCC.NLM is only needed by NWDSLoginEx() to support
  case-sensitive passwords.
  SPMNWCC.NLM can't load in protected memory because of NMAS won't load in
  protected memory, and it can't be loaded dynamically because of the screen
  saver deadlock problem, and loading it from the start routine on the same thread
  will cause an abend with the loader serialization mutex. So, loading it from a
  WTD on a different thread seems to be the best option.
- Bug 351444 - eDirectory crashes when you call the NWDSGetObjectName from an
  NMAS method.
  The NWNet library is resolving to functions in external libraries that have the
  same name as internal functions. This could happen with the other XPlat libraries
  as well. There is a linker flags -Bsymbolic which will cause the linker to
  bind global references to internal functions first before linking to external
  ones. You would think that this would be a default method of resolving names.
  (Supposedly this has something to do with C Exception handling.)
  I'm changing all of the make files to use this linker flag, redoing the *.dat
  files so they can be used to create a version script (export symbol file) for
  the linker.
  I've also changed the make files to make a debug version by default. The make
  configuration choices are make [CFG=<Debug>|<Release>]. The default configuration
  is Debug, which is the default behavior for the the Windows and NetWare builds.
          
- Bug 351507 - New session context APIs on Linux Platform required for porting
  NetWare apps to Linux (Enhancement).
  I've added some new session context APIs to Linux version of XPlat. These new
  APIs only work when XPlat directly uses the XTier requester interface, not the 
  Novell Client's interface. An application can ensure that it uses the correct
  interface, even if the Novell Client is installed, by setting the environment
  variable "XPLAT_USE_XTIER". By default XPlat uses the Novell Client if
  available.
  Connection handles and authenticated identities are associated with a session
  context. With these new changes, session contexts can be created and assigned
  to a thread. This means that each thread can work independently of the other
  threads when creating connections, authenticating to trees (logging in), etc.
  Typically the client requester will only allow one user to be logged in the
  same tree at a time. With these new change different users can be simultaneously
  logged in to the same tree on different threads.

  Older XPlat application on Linux should work exactly the way they did before.
  Threads which do not create and set a session context will share the default
  session context--this is the way it has worked up until now.

  I've added the new session context APIs to the SDK header "nwmisc.h". The new
  APIs are as follows:

  /* Create a new session context. */
  /* This returns a generic session context handle (phSC). */
  N_EXTERN_LIBRARY( NWCCODE )
  NWCreateThreadSessionContext(TSCHANDLE *phTSC);

  /* Destroy the session context. */
  /* Should only be called when no thread(s) are using the context any more. */
   /* Any open connections will be closed. */
  N_EXTERN_LIBRARY( NWCCODE )
  NWDestroyThreadSessionContext(TSCHANDLE hTSC);

  /* Called by a thread to assign a session context to itself. */
  /* This should be done before creating new identities (logging in) or
  connections. */
  N_EXTERN_LIBRARY( NWCCODE )
  NWSetThreadSessionContext(TSCHANDLE hTSC);

  /* Returns the session context assigned to a thread. */
  N_EXTERN_LIBRARY( NWCCODE )
  NWGetThreadSessionContext(TSCHANDLE *phTSC);

  /* Called by a thread to remove it's session context. */
  /* Threads should call this when they are done with the context. */
  N_EXTERN_LIBRARY( NWCCODE )
  NWClearThreadSessionContext(void);

  /* Returns a number of threads assigned to a context. */
  /* For info only. */
  N_EXTERN_LIBRARY( NWCCODE )
  NWGetThreadSessionContextCount(TSCHANDLE hTSC, pnuint32 count);

-------------------------------------------------------------------
Fri Dec 14 11:03:39 MST 2007 - sclark@novell.com
- Bug 340268 - netnlm32.nlm can not be loaded in protected memory
  Changed the NETNLM32 StartProcedure() to load the NMAS module SPMNWCC.NLM
  from a work to do, as soon as it has loaded. Whether the load works or not
  NETNLM32 will still be loaded and function.
  SPMNWCC.NLM won't load in protected memory because NMAS can't load the
  module NDSAUDIT in protected memory. SPMNWCC can't be loaded dynamically
  because of the server screen deadlock problem, and loading it from the start
  routine on the same thread will cause an abend with the loader serialization
  mutex. Loading it from a WTD on a differenct thread will cause the thread to
  block until NETNLM32 is loaded.
  SPMNWCC is used by by NWDSLoginEx() for case-sensitive passwords, so until
  NWDSAUDIT can be fixed or NMAS changed to not use NWDSAUDIT, this feature
  won't be available in protected memory.

-------------------------------------------------------------------
Thu Nov 29 17:07:58 MST 2007 - sclark@novell.com
- Bug Bug 298557 - NWGetExtendedVolumeInfo fails to distinguish between
  ncp volume mount over NSS vs native file system
  Added new function NWGetVolumeCapabilityInfo() which is only currently
  only available in the Linux build of XPlat.
- Fixed NWUX/NWUS unicode functions to allow NW server code pages other
  than "0"--the default code page. The default server code page is 437 (US).
  The default code page can be changed by setting the env variable
  XPLAT_CODE_PAGE to a numeric string. The following server code pages are
  supported:
  
  437 - United States English
  850 - Multilingual
  852 - Slavic
  855 - Cyrillic
  857 - Turkish
  860 - Portugese
  861 - Icelandic
  862 - Hebrew
  863 - Canadian French
  865 - Nordic
  866 - Russian
  874 - Thai
  932 - Japanese (SHIFT_JIS)
  936 - Simplified Chinese (GBK)
  949 - Korean
  950 - Traditional Chinese (BIG5)

- Added NWCommitFile() function to Linux file I/O APIs. The completes the
  online doc and is required by NJCL on Linux.
- Added code to Linux APIs to validate NW file handle returned by the 
  functions NWOpenDataStream() NWOpenNSEntry(), NWOpenNSEntryExt(),
  and NWDSOpenStream and used with the Linux file I/O APIs.
  Related to Bug 277369.
- Fixed buffer size problem with NWUnicodeToCollation().

-------------------------------------------------------------------
Tue Sep 18 09:56:01 MDT 2007 - sclark@novell.com
- Bug 259203 - arkmanager: unable to archive file in very deep directory
  or directory with special characters.
- Bug 325667 - xplat APIs dumping core causing Archive Versioning server
  to crash (A/V service does not come up)
  Fixed bugs in NWGetDirectoryHandlePathExt().
  NWGetDirectoryPathExt() now returns a max UTF-8 string of 766 bytes
  (255*3+1) including the NUL character and NWGetDirectoryPath() returns
  a max string length of 256 (255+1) bytes.
  This routines should really be avoided except for info purposes.

-------------------------------------------------------------------
Thu Sep 13 09:35:16 MDT 2007 - sclark@novell.com

- Bug 301745 - Cypress as domain-1 DNS server is going down after some time.
  XPlat crashes executing an NDS search, XTier is not returning the last 4
  bytes of a large, fragmented search reply.
  CheckConReferences() was not validating any data. Fixed code. This will
  keep it from crashing. I've referred the bug on to the XTier group to
  complete the fix.

-------------------------------------------------------------------
Thu Aug 30 9:36:00 MDT 2007 - sclark@novell.com

- Fixed Bug 282439 - NWFTPD.NLM does not unload
  Replaced SMP kernel Mutex calls with appropriate CLIB Mutex calls.

-------------------------------------------------------------------
Mon May 7 13:47:00 MDT 2007 - sclark@novell.com

- Bug 261515 - ftp login through nmas / spmnwcc fails if username/context is too long
  Increased credential size for NetWare NMAS_LOGIN to 1024 bytes to account
  for large user name. Also increased credential size to 1K.
- Bug 232946 - Scrnsaver.nlm hangs NetWare 6.5 server.
  Removed LoadModule() calls for NMAS module nwspmnwcc.nlm (NMAS) in nmas_up.c
  and added dependency to on nwspmnwcc module in makefile. nmas_up.c will still
  dynamically import calls from nwspmnwcc, so netnlm32 will still load even if
  nwspmnwcc cannot be found.
  This fix also requires a newer version of nwspmnwcc.nlm and nmas.nlm.
- Bug 264041 - Need to get Server Code page from NWGetFileServerInfo
  Updated VERSION_INFO structure to include latest fields in the NCP 23,17 spec.
  This includes the server code page field which is the last field.

-------------------------------------------------------------------
Fri Feb 16 17:17:08 MST 2007 - sclark@novell.com

- Bug 246244 - change in byte order for NCP 87 (30) and NCP 89 (30) returns
  in client sp4 beta xplat libs
  Redid previous changes to the byte-order for 4-byte NetWare file handles. Now
  both 4 and 6 byte handles are returned in Hi-Lo byte order (network
  order). I also refixed nwnet to not depend on the nwcalls library.
- Bug 246076 - NWConvertFileHandle() is not opening a new connection handle
  on the Linux platform.
  NWConvertFileHandle() is not opening a new connection handle on the Linux
  platform. Routines which use NWConvertFileHandle() must close the new conn
  handle after they a done with it.
- Fixed a bug in NWConvertFileHandle(); it ignored the handleType and would
  always return a 6-byte NetWare handle, overwriting memory for a 4-byte handle.
- Fixed NWCloseFile(). It was not closing the temporary connection returned by
  NWConvertFileHandle().

-------------------------------------------------------------------
Thu Feb 15 10:54:45 MST 2007 - sclark@novell.com

- Fixed Bug 213035 - Unable to map drives when logged into SLED as an Active
  Directory User.
- Fixed NW_ENTRY_INFO2_EXT struct in sdk header file nwnamspc.h to match internal
  structure NWNCPEntryStruct2Ext in ncpfile.h. Previously NWNCPEntryStruct2Ext
  had been changed to fix a 64-bit alignment warning.
- Changed tree/server enumeration calls NWGetObjectNamesBegin/Next/End to use
  XTier's name service client. So far these APIs are only available for the Windows,
  however it is our intention to make them availble on linux in the near future.
- Changed ntypes.h nint32/nuint32 typedef from signed/unsigned int back to
  signed/unsigned long for the NetWare 32-bit platform. The UINT32/SINT32 types in
  portable.h for NetWare are also defined as signed/unsigned long. There were
  complaints of compiler warnings when with the new ntypes.h. Also fixed ntypes.h
  to consistently default to "long long" for nint64/nuint64 types for NetWare or
  Windows if the __int64 is not defined or for the Metrowerks compiler.

-------------------------------------------------------------------
Wed Feb  7 14:11:18 MST 2007 - sclark@novell.com

- Fixed Bug 242793 - using ~/ to represent a home directory on the map command, fails

-------------------------------------------------------------------
Wed Feb  7 12:35:50 MST 2007 - sclark@novell.com

- Fixed make files to not use internal xtier header files. 
- Added -fshort-wchar compile option to nwclient and other
  make files, except to that of nwlocale, so that WCHAR
  defined in the latest xtier ncpltype.h has a size of 2 bytes,
  not 4.
- Fixed Bug 242631 - Unable to install the Novell Client from the ncl_install script
  Removed novell-filesystem from spec files. Went back to claiming ownership
  of the directories in the spec files instead.

-------------------------------------------------------------------
Mon Feb  5 17:22:13 MST 2007 - sclark@novell.com

- Bug 235791 - unable to start novell-named .. Cypress beta 1.10
  SLES-10 (x86_64)
  Fixed NWDS_ITERATION handle in nwalias.h. This was causing a
  32-bit iteration handle to be used instead a 64-bit one with x86_64
  builds, causing named to crash.
  Changed nwtypes.h to automatically define N_ARCH_64 if not already
  defined by application.

-------------------------------------------------------------------
Wed Jan 24 18:25:49 MST 2007 - sclark@novell.com

- Fixed _NWCDsRemoveTreeNameUnderscores(). It wasn't completely
  '_'s frome tree names.
- Changed NWCFragmentRequest() to use XTier's fragment request.

2007/1/4
* Fixed Bug 231879 - NWScanNSEntryInfoSet2Ext() would sporadically fail.
* Fixed Bug 231874 - NDSCheckNameCache() returning false cache hits.
  This bug only affects 64-bit builds of the libraries.

2006/12/21
* Fixed related bugs  229543 & 229774 - NWDSOpenConnToNDSServer returns success with
  bad conn handle.
  This bug only affects the 64-bit build of the libraries.
* Added direct support for XTier on Linux platform. If the Novell client is not
  loaded, the XPlat libraries will now call call XTier directly, using the new XTier
  requester interface module (xtxplat.so).
* Added new 64-bit file read/write/lock functions to nwcalls library. Applications
  will need to use these, instead of read(), write(), lseek(),and close().

2006/10/30
* Changed _NMAS_UP_Event_CSP() to return NMAS errors, not -319 (system error).
* Fixed ntypes.h to not allow both N_ARCH_32 and N_ARCH_64 to be defined at the
  same time
  Files changed: nmas_up.c, ntypes.h

2006/9/1
* Fixed Bug 199421 - CLNWIN32 creating Novell registry keys as REG_OPTION_VOLATILE
  Files changed: ntds.c

2006/8/23
* Added new types nsize_t, nuint_ptr, nint_ptr.
* Fixed NWDS iteration functions to use either nuint_ptr or nint_ptr for iteration
  handles.
* Added old UNIX checks back into ntypes.h to fix it for other UNIX platforms
  that don't use GNU C.

2006/8/11
* Fixed Bug 195909 - NMAS_UP.c mis-handling DLL references on Windows
  Files changed: nmas_up.c

2006/8/11
* Fixed Bug 197862 - Multi-threaded connection-related issues in NWNET on Win32 build
  I've added code to GlobalAuthenticateConn() to check for the completion code
  PREVIOUSLY_AUTHENTICATED, after the call to NWCAuthenticateWithIdentity(), and
  to return SUCCESS instead.
  Files changed: gauthen.c

2006/8/3
* Updated libraries for 64-bit.

* Removed old platform code from XPLAT libraries. The new version of XPLAT can
  only be built for the following platforms:

	Windows NT/XP/Vista (32-bit & 64-bit)
	Linux (32-bit & 64-bit)

  Note:

  The defines N_ARCH_32 and N_ARCH_64 are mutually exclusive, only one of them is
  defined at a time.

  There is a new iteration handle type, called IterHandle_t, that must be used
  for 64-bit NWDS object searches. It is a defined as a 32-bit integer on N_ARCH_32
  platforms and a 64-bit integer on N_ARCH_64 platforms.
  Also, the iteration handle constant NO_MORE_ITERATIONS is now defined as (~0)
  for 64-bit use, instead of 0xFFFFFFFF.

  On the Linux platform, the library init functions (NWCallsInit(), NWCLXInit())
  must now be called to initialize the client library. The library no longer
  initializes itself when it loads. This was causing some rights issues with the
  client ioctl file handle, and now follows the XPLAT doc.

  The ntypes.txt file still needs to be updated to reflect the new platform changes.


2006/2/9
* Fixed spec file to include run-time .so files in RPM to fix autobuild error
  about installed but unpackaged files.

2006/1/19
* Fixed Bug 143563 & 143394 - NWParsePath fails with 0x8801 error with
  local drive. This also fixes a problem with oncluding local file from a
  login script.
  Changed windows version to 6.0.5 and linux version to 1.0.2-2.
  Files modified: parspath.c

2005/12/05
* Bug 112990 - User session environment on TS are no independent.
  Changed NWCSetDefNameContext() and NWCGetDefNameContext() in CLNWIN32.DLL to
  use CURRENT_USER hive instead of the LOCAL_MACHINE hive when storing
  tree/context pairs. The key is \SOFTWARE\Novell\LIBRARY.  If a tree/context
  value cannot be found in the CURRENT_USER hive, the value will be read from
  the LOCAL_MACHINE hive.
  Files changed: ntds.c

2005/11/11
* Changed make files for Win32 builds to generate PDB files for free (release) 
  build.
  Files changed: makefile.mak for nwlocale, nwclient, nwclx, nwncp, nwnet,
  nwcalls, and nwaud)

2005/11/4
* Fixed NWParsePath() and NWParseNetWarePath() to return NO_CONNECTION_TO_SERVER
  (0x880F) according to spec when no connection to server in path exists.
  Files changed: parsepath.c, prsnwp2.c, prsnwpth.c, prspath2.c

2005/10/31
* MiCasa expects strings to be UTF-8. NWCGetIdentityInfo() was adding an extra
  character to the the object string being returned by the requester because it
  was expecting unicode and the requester was returning a UTF-8 string.
  NWCStringConvert() converts between ASCII (the local codepage/charmap
  (LC_TYPE)) to unicode and vise versa. I've created a new UTF-8 string type to
  the conversion routines to distinguish UTF-8 from ASCII strings.

2005/9/28
* Bug 117349 - Prepared xplat spec file for autobuild in Provo.
  Renamed xplat.spec.in to novell-xplatlib.spec.in and added a couple of 
  lines to spec file for autobuild. Fixed configure.ac to reflect changes.
  Changed Makefile.in to create .bz2 dist file instead of .gz.
  Changed make and source files to fix compliler warnings.

2005/9/21
* Added new/missing functions to support new style (compressed info) formst
  for 89,6 and 89,20 NCPS.
  The new functions are NWGetNSEntryInfo2, NWGetNSEntryInfo2Ext,
  NWScanNSEntryInfo2, NWScanNSEntryInfoSetExt, and NWScanNSEntryInfoSet2Ext.
  (87s20.c, 87s6.c, 89s20.c, 89s6.c, gentinfo.c, ncpfile.h, ntypes.h,
  nwcalls.dat, nwnamspc.h, nwncp.dat, packent.c, scnsentr.c, scnsents.c)

2005/8/18
* Bug 94908 - NWParseNetWarePath crashes with large path
  Increased temp path buffer sizes in both NWParseNetWarePath() and
  NWParsePath() to 900+48--900 bytes is the enhanced path size used by NCPs
  like 89,12 (allocate short dir handle) and 48 is for the max server name
  size (47+1) for paths in the "server\vol:path" format.
  Added code to return an INVALID_PARAMETER error (0x8836) if the input
  path string is to large.

2005/8/10
* Fixed Bug 90692
  The code used by the new NW..Ext() UTF-8 functions to translate UTF8 -> local
  strings, and vise versa, was using the ANSI (default) code page, not OEM.
  I changed the routine _NWUTF8ToLocalPath() in utf8util.c to use the code page
  returned by the Window's function GetOEMCP().
  I've attached a new calwin32.dll to be tested.

2005/7/26
* Bug 95375 - seeing memory Leak in NWFTPD.
  Fixed NWDSLoginEx() to free memory it has allocated when NMAS login fails.
  This also affects the windows client. I also reorganized the code to
  make it more readable.

2005/6/23
* Fixed Bugs 74674/81509 - Fixed NWAddTrusteeExt() and NWDeleteTrusteeExt() to
  work with traditional volumes. The object IDs were incorrectly byte swapped.
  (addtrust.c, deltrust.c)
* Fixed Bug 81509 - NWNSGetDefaultNS truncates volume name to 14 characters.
  Also fixed the same bug in NWIsLNSSupportedOnVolume().
  (gtdefns.c, islnssup.c)
* Fixed Bug 87255 - NWDSVerrifyPwdExt() never returns an error. New code had a
  wrong compare. (verpass.c)
* Fixed Bug 88623 - [601] Getting Error "code:8875 NWE_INVALID_DRIVE_BASE"
  (lnxmap.c)
  
2005/06/13
* Added code to support NWGetBroadcastMessage() through the requester.
  (lnxmisc.c, gbdrmode.c, getmsg.c)
* Checked in login and change password support for MiCasa.
  (lnxauth.c, wintypes.h)

2005/05/23
* Removed #pragma pack/unpack from npackon.h and npackoff.h for N_PLAT_UNIX
  platform. The compiler will decide what is appropriate for each processor
  type. 
* Fixed Bug 83855- Getting error: 8803 during mapping if a link already exists
  in the home directoryi
* Fixed Bug 84101. Added period to package description.
* Changed NWCMapDrive2 to return NWE_DRIVE_IN_USE when a mapping
  already exits.
* Added missing NWDS functions in verpass.c and genkeys.c.

2005/05/13
* Fixed bugs in NWCMapDrive2() (lnxmap.c).
* Added new error code NWE_INVALID_DRIVE_BASE (nwerror.h). 

2005/05/06
* Fixed problems with IntNCPMakeACompPath and NWNCPAugmentIt functions in
  Linux build.
* Added new map/del/enum drive commands for Linux
* Fixed Bug 81510 - NWIntScanForTrusteesExt returns invalid info for
  trustees > 20.

2005/04/20
* Removed locale calls from client library "clnlnx". Added locale library
  "loclnx" to xplat library set.
* Created subpackage novell-xplat-devel.
* Incorpated fixes/enhancements from IDC (Sunil) to xplat lib.
* Changed version to 0.9.0 (Beta).

2005/03/29
* Fixed NWDSGetNDSInfo to return correct tree name for NW 6.5 servers.
* Removed UNIX specific APIs to read and write to NetWare files.
  Once a NetWare handle has been opened, the standard file calls--
  read, write, close, etc. can now be used as per the xplat API spec.

2005/03/18
* Remove obsolete functions again-why carry them over into 
  a new libraries for Linux?
* Removed printer functions from library.
* Updated and reindexed requester functions in nwclnx.h.
  
2005/03/16
* Fixed NWCSetDefNameContext and NWCGetDefNameContext calls in nwclient.
  Also documented requester interface changes in nwclnx.h.
  
2005/03/06
* Cleaned up unused Tds and other functions in nwclient, nwclx, and
  nwnet libraries. Simplified nwclnx.h header file.

2005/03/04
* Fixed NWUnicodeToLocal, NWUnicodeToMonocase, and NWLocaleToUnicode.
  Functions weren't returning the correct output length.
  
2005/02/28
* Added EULA license file "EULA" for Beta 1.

2005/02/24
* Added functions NWLsetlocale, NWLlocaleconv, NWInitUnicodeTables, and
  NWFreeUnicodeTables to lnxuni.c. This should help with porting xplat apps.
  Need to create locale library (libloclnx) with these functions after Beta 1.

2005/02/07
* Added obsolete functions back into nwcalls library for test tools.

2005/02/02 - sclark@novell.com
* Fixed NWSetDriveBase2() to map over an already existing sym link
  instead of returning an error.
* Fixed Vendor info in spec file

2005/01/28 - sclark@novell.com
* Fixed __NWGetCurNS() to return 4 (OS/2) if it is supported by volume.
* Fixed NWDS debug code.

2005/01/28 - sclark@novell.com
* Added fixes for NWDSOpenStream, NWReadFile, NWWriteFile, and NWCloseFile.

2005/01/05 - sclark@novell.com
* Checked in first build.
