Back to AUP History

Santronics Software, Inc.,
Version 10.0 Build 500.3

SPECIAL NOTES ABOUT THIS UPDATE:

Official Release of v10.0 series starting with build 500.

Plug & Play: If you use 3rd-party applications that load Wildcat! RPC DLLs outside of the main Wildcat! installation path (for example, moved copies in external door directories), you may encounter a version mismatch between the new 500 DLLs and older 454 DLLs. Replace those external copies with the updated 500 RPC DLLs.

SEE SPECIAL UPGRADE NOTES

Changes, New Features and Enhancements by Wildcat! Component  

WCSFTP (Wildcat! Secure FTP)

- NEW: Wildcat! SFTP Server (wcoSFTP.dll) -- file transfer over SSH
       (500.3 26.9.16).

  A new wcOnline hosting module serving the Wildcat! file database over
  SFTP, loaded alongside the FTP, TELNET, POP3 and WEB servers.

  It shares the FTP file namespace, so a trading partner moving from
  wcFTP sees the same file groups, file areas and paths.  The wcBASIC
  hooks fall back to their FTP equivalents -- an existing compiled
  ftpscanfile.wcx or ftplogon.wcx runs unchanged with no new file to
  write.

  To enable it, set the SFTP Port on wcConfig | Computers for the
  machine that should run it, then grant the access profiles on
  wcConfig | SFTP Server | Access.

  Requires libssh.dll beside wcoSFTP.dll.  It ships as a separate DLL
  to satisfy the LGPL, and the module will not load without it.

  Password authentication only in this build.

   Wildcat! SFTP Server Setup and Configuration

WCSDK (Wildcat! Native Language Software Development Kit)

- NEW: WcFreeMemory() -- releases a buffer wcsrv2.dll allocated on the
       caller's behalf (500.3 26.9.2).

  A few SDK functions hand back memory that the RPC client stub
  allocated.  FileSearch() is the current example: it returns an array
  of 64-bit values, one per hit, and the caller owns that array.

  A C or C++ client built against the same runtime can release it with
  free().  A client written in another language cannot.  Python
  (wcPAPI/ctypes), C# and VB.NET through P/Invoke, and anything else
  binding wcsrv2.dll directly have no access to the DLL's heap, and
  until now had no correct way to release the buffer at all.

  WcFreeMemory() frees on the correct side of that boundary:

    void APIENTRY WcFreeMemory(void *pBuffer);

  Typical use with FileSearch():

    TFileSearchRecord *p = NULL;
    DWORD n = 0;

    if (FileSearch(spec, n, (unsigned __int64 *&)p)) {
       for (DWORD i = 0; i < n; i++) {
          TFileRecord f = {0};
          if (GetFileRecAbsolute((p+i)->ref, f)) {
             // (p+i)->area is the file area, f.Name the file name
          }
       }
       WcFreeMemory(p);
    }

  This is a local call.  It never contacts wcServer, so it behaves the
  same whether the server is local or remote, and a NULL pointer is
  ignored.  Do not pass a pointer wcsrv2.dll did not allocate.

  Clients that reach FileSearch() through wcvb.dll (VB.NET, C#) or the
  PHP extension do not need it -- those wrappers copy the results into
  a native array and release the buffer themselves.

  Requires wcsrv2.dll 10.0.500.3 or later.  The wcPAPI Python package
  is versioned together with the DLL for this reason.

PXWIN (Platinum Xpress)


  For the complete list of PX/WIN changes organized by component
  see:

   PX/WIN Version 10.0 Build 500.3 Changes
   PX/WIN Version 10.0 Build 500.2 Changes