From: Stefan S. <ste...@wu...> - 2025-07-09 15:37:27
|
Congratulations, what a heavy lift! Enjoy Bologna and have NS 5 celebrated! Ciao, Stefan > Dear all, > > We are glad to announce the final release of NaviServer 5.0.0, marking > the most significant update in the project’s history with over 70,000 > lines of changes. This release delivers robust security enhancements, > modernized infrastructure, and improved scalability. Key highlights include: > > * > > *Security by Default*: HTTP client requests now validate server > certificates automatically, with configurable trust exceptions and a > bundled CA root store. A new pluggable authorization framework > (|ns_auth|) enables scriptable request- and user-level access control. > > * > > *Modernized Core*: Unix domain socket support, case-insensitive > |ns_set|, Argon2 password hashing, and streamlined configuration via > environment variables (ideal for containers). The reverse proxy is > now built into the core, with new forward proxy capabilities. > > * > > *Enhanced Observability and Scalability*: Improved logging (dynamic > paths, rotation, and new "Security" severity), detailed connection > diagnostics (|ns_conn urldict|, |ns_connchan debug|), runtime > introspection (|ns_http keepalives|, |ns_info buildinfo|), > persistent client connections, and streaming HTTP client processing. > > *Backward Compatibility & Future-Readiness* > While introducing cutting-edge features, NaviServer 5.0.0 maintains > strong backward compatibility, with deprecated APIs clearly documented > and modern replacements provided (e.g., |ns_urlencode| → > |ns_percentencode|). The release introduces/extends over 50 Tcl commands > and subcommands. The upgrade to MPL 1.2 and Tcl 9 support ensures > long-term sustainability. Over 20 community-contributed modules (like > |nsdbpg|, |nssmtpd|) have been updated in lockstep. > > The following people contributed to this release: > > Alexander Danilov, Andrew Piskorski, Antonio Pisano, Brendan > Graves, Brian Fenton, Danilo Raynor, David F, David Osborne, > > Filip Minic, Georg Lehner, Gustaf Neumann, Hector Romojaro, Joe > Oldak, Oleg Oleinick, Priyank Jalu, Thomas Renner, Zoran Vasiljevic > > *Resources*: > > * > > Download > <https://sourceforge.net/projects/naviserver/files/naviserver/5.0.0/> | GitHub <https://github.com/naviserver-project/naviserver> | Docs <https://naviserver.sourceforge.io/5.0/toc.html> > > This release is a major leap forward in security, flexibility, and > maintainability. See below for the detailed changes: Upgrade today! > > /The NaviServer Team/ > > > Tcl API Changes > > > |ns_cache| > > * New option |cachingmode|: Accepts |full| or |none| to toggle caching > behavior. > > > |ns_configsection| > > * New option |-filter|: Filters variables by |unread|, |defaulted|, or > |defaults|. > > > |ns_configure_variables| > > * New command to pull in configuration variables from environment > variables (for use in configuration files) > > > |ns_conn| > > * > > *General enhancements*: > > o |ns_conn host|, |ns_conn port|, |ns_conn protocol|: Now return > appropriate values for all request types (not limited to forward > proxy requests). > * > > *New subcommands*: > > o |ns_conn target|: Returns the complete request target, including > query parameters, from the HTTP start line. > o |ns_conn fragment|: Returns the fragment identifier (after |#|) > if present. > o |ns_conn urldict|: Parses the request URL into a Tcl dictionary > for structured access. > o |ns_conn host|: Supports an optional default value if the host > is not determined. > o |ns_conn details|: Returns a dictionary with driver-specific > connection metadata. > > > |ns_connchan| > > * > > *Security and diagnostics improvements*: > > o |ns_connchan debug|: Set or query the debug level. > o |ns_connchan connect| / |ns_connchan open|: Now accept > additional security-related options: |-cafile|, |-capath|, > |-cert|, |-hostname|, |-insecure|, |-driver|, and |-unixsocket|. > o |ns_connchan status|: Added |-server| option for multi-server > introspection. > o |ns_connchan write|: Now performs buffered writes. > * > > More detailed timeout handling > > > |ns_driver| > > * |info|, |names|, |stats|, and |threads| support the |-server| option > to allow multi-server diagnostics. > > > |ns_http| > > * > > *Connection handling and introspection*: > > o > > Persistent HTTP connections supported via the |keepalive| option > in |httpclient| configuration. > > o > > Introduced support for multiple task threads. > > o > > Streaming response support for incremental data handling (useful > for large file transfers and LLM interaction). > > o > > Default timeout configuration for requests. > > o > > New callbacks: |response_header_callback| and > |response_data_callback|. > > o > > Renamed |-donecallback| to |-done_callback| (old name deprecated). > > o > > Added support for informational HTTP status codes (e.g., 100 > Continue). > > o > > New subcommands: > > + |ns_http keepalives|: Displays active persistent connections. > + |ns_http taskthreads|: Provides insight into HTTP client > threads. > o > > Major internal refactoring of |tclhttp.c| for modularity and > maintainability. > > > |ns_ictl| > > * |getmodules|: Now supports the |-server| option for per-server > introspection. > > > |ns_info| > > * > > Added subcommands: > > o |argv|: Returns the original argument vector. > o |bindir|: Returns the binary directory path. > o |buildinfo|: Displays build-time config and version info. > o |logdir|: Path to the log directory. > o |meminfo|: Displays memory statistics (when using |tcmalloc|). > > > |ns_ip| > > * > > Added subcommands: > > o |inany|: Checks if an IP matches any configured address. > o |properties|: Returns metadata about configured IPs. > o |public|: Determines if an IP is publicly routable. > o |trusted|: Checks if an IP is trusted. > o |valid|: Validates IP syntax. > * > > These enhancements supersede the need for |ns_subnetmatch|. > > > |ns_issmallint| > > * New command to check if a value is a valid small integer (replaces > the old, now deprecated |issmallint|). > > > |ns_logctl| > > * New subcommand |grep|: Searches log files with pattern matching, > stripping color codes and handling line continuations. > > > |ns_register*| Enhancements > > * All |ns_register_*| commands now support the |-constraints| option, > enabling context-sensitive behavior. > * New command: |ns_register_auth| allows registration of user- and > request-level authorization handlers. > > > |ns_server| > > * New subcommands: > o |authprocs|: Lists registered request/user auth procedures. > o |hosts|: Lists registered hostnames for the server. > o |logdir|: Returns the server log directory. > o |realm|: returns or sets the realm of the server > o |serverdir|: Returns the base directory for the virtual server > (|-effective| returns the resolved runtime path). > o |vhostenabled|: Returns a boolean indicating virtual hosting status. > * |ns_server mapped|: New option |-all| returns a dict with handler > and pool info. > > > |ns_set| > > * > > *Case-insensitive support*: > > o New |-nocase| flag for |ns_set create| and related operations. > o Deprecated the |i*| subcommands (e.g., |iget|, |ifind|) in favor > of unified interface. > * > > *Multi-valued key support*: > > o |-all| option retrieves all values for a given key in > |ns_set| and |ns_config|. > * > > *New subcommands*: > > o |format|: Pretty-prints the set contents. > o |stats|: Returns memory usage statistics. > * > > |delkey|: Now returns a boolean success flag. > > * > > *Internal improvements*: > > o Refactored |ns_set| internals using dense storage for lower > memory use and better cache locality. > o Replaced deeply nested switch logic with modular, maintainable code. > > > |ns_thread| > > * > > Unified thread creation: > > o Use |ns_thread create| for all thread types. > o Deprecated |begin| and |begindetached| to align with |ns_cond|, > |ns_mutex|, and |ns_sema| usage. > > > |ns_urlspace| > > * > > Wildcard matching now supports path-segment-level matches > (previously limited to leaf nodes). > > * > > Applied improved matching in |nscgi| to support directory-wide CGI > mapping. > > * > > Renamed option |-contextfilter| to |-constraints| in |ns_urlspace > set/unset| to match the new registration API. > > > Database Enhancements > > * |ns_db info|: Returns a dictionary of metadata for a given DB handle. > * |ns_dbpooldescription|: Renamed from the previous > |ns_pooldescription| for consistent naming. > * |ns_db rowcount|: Fixed in this release to return actual row counts. > > > New Utilities > > * |ns_fseekchars|: Efficiently scans a stream for a string (e.g., for > multipart/form-data parsing). > * |ns_joinurl|: Constructs well-formed URLs from path components. > * |ns_mkdtemp|: Creates a unique temporary directory (POSIX-style > |mkdtemp()|). > * |ns_parsehtml|: Parses HTML fragments into a structured Tcl dict. > * |ns_parsemessage|: Parses MIME-style messages (e.g., emails or HTTP > headers). > * |ns_percentencode| / |ns_percentdecode|: Replace deprecated > |ns_urlencode| and |ns_urldecode| for robust URL-safe encoding/decoding. > > > Changes in Core Modules > > > |nscgi| > > * New command: |ns_register_cgi| for dynamic CGI handler registration > (supports |-noinherit|, |-path|, etc.). > * Supports unregistration via |ns_unregister_op|. > * New environment variables: |SCRIPT_FILENAME|, |REQUEST_URI|. > * Refactored to support major web apps (e.g., WordPress, Joomla). > * See commit |36027b70215| for implementation details. > > > |nscp| > > * Integrated with new authorization system (e.g., via |nsperm users|). > * New command |nscp users|: Lists registered users for nscp > authentication. > > > |nsperm| > > * Acts as a pluggable authorization provider for request/user scopes. > * New config parameter: |allowLoopbackEmptyUser|—permits > unauthenticated loopback access when enabled. > * Added support for setting default server start pages and |nsstats|. > > > |nsproxy| > > * New subcommand: |ns_proxy workers|—provides detailed runtime info on > proxy worker processes. > > ------------------------------------------------------------------------ > > > Bug Fixes > > > Stability and Crash Resolutions > > * > > *Addressed multiple potential crash scenarios:* > > o Robust handling of HTTP |CONNECT| requests. > o Fixed crashes caused by missing or empty argument lists in > commands such as |ns_filestat|, |ns_sockcallback|, and |ns_ictl > oncleanup|. > o Prevented crash in |ns_log| when invoked with an empty message. > o Resolved a 24-year-old bug in |Ns_AdjTime()| that could lead to > fatal errors due to microsecond overflow in multithreaded > environments. > o Fixed crash in |ns_conn copy| when operating on empty content. > o Prevented crash in |ns_sema release| with invalid semaphore counts. > o Corrected off-by-one error in |ns_adp_bind_args| that could > access uninitialized |Tcl_Obj| values. > o Fixed crash in |ns_inet_ntop| due to unsafe memory operations > with overlapping regions (notably on aarch64 with musl). > o Resolved crash in |Ns_SetIUpdateSz()| caused by case mismatch in > header keys with the legacy C API. > o Fixed crash during |nscp| startup when the |users| section was > not configured. > o Prevented crash in debug mode when the |Host:| header could not > be mapped to a virtual server and the driver was installed locally. > o Avoided crash when launching |nsd| with |-c| and |-t| options > and no |home| parameter defined. > o Fixed crash during computation of |ns_conn location| when the > network driver was not globally installed (global installation > now recommended). > o Fixed crash due to self-destructive header replacement when > |ns_conn outputheaders| are passed via |ns_respond ... -headers ...| > > > Functional Correctness and Logic Fixes: > > * |ns_conn status|: Fixed issue where updated status codes were > silently ignored. > * |ns_conn doneCallback|: Ensured this callback is always invoked in > |ns_http|. > * |nsv_dict get|: Fixed a memory leak in value retrieval. > * |ns_conn peeraddr|: Resolved race condition in pipelined requests > that could yield incorrect peer addresses. > * |ns_cache_eval -force|: Fixed race condition that could produce > obsolete results. > * |ns_sema create|: Corrected handling of initial count values (e.g., > |1000|). > * |ns_trim|: Fixed spacing logic to trim only leading and trailing > whitespace, preserving internal spacing. > * |ns_config -int|: Corrected fallback behavior when invalid values > are supplied, now correctly using documented defaults. > * |ns_sockcallback|: Now gracefully handles missing arguments. > * |ns_socknread|: Fixed inaccurate results for buffered connections. > * |ns_crypto::aead::encrypt/decrypt|: Restored compatibility with > OpenSSL 1.1.1. > * Fixed incorrect parsing of encoded backslashes in URLs. > * |Ns_StrTrimRight()|: Corrected UTF-8 handling in right-side string > trimming. > * Fixed |ns_conn location| when running behind a reverse proxy to > always returns a value, even in broken configurations. > > > OpenSSL fixes > > * Added support for detecting and validating OCSP Must-Staple and AIA > presence in certificates. Without that, NaviServer might crash, when > OCSP is turned on, and NULL values are passed for AIA URLs (letsencrypt) > * Introduced stable output buffers for |send| operations to support > retries after |SSL_ERROR_WANT_WRITE|, preventing connection failures > under high load. > * Improved error handling in OpenSSL integration by draining the error > stack via DrainErrorStack(). > > > HTTP Client Fixes > > * |ns_http|: > o Reordered initialization in |NsInitServer()| to ensure > submodules can access a fully configured server state. > > > HTML and ADP Parsing Fixes > > * ADP Parser: > o Enhanced support for quoted |>| characters inside attribute > values, aligning with modern HTML parsing rules. > * |return-notice| handling: > o Suppressed spurious error messages when fallback ADP templates > are processed outside of a full ADP context. > * |ns_striphtml|: > o Fixed long-standing bug where adjacent HTML entities were > incorrectly decoded—only the first entity was processed. > > > Logging and Diagnostics Fixes > > * Fixed misleading log output when dynamically changing extended > headers via |ns_accesslog extendedheaders ...|. > * Improved error messages when port binding fails due to conflicts > with driver assignment. > * Fixed off-by-one error in the virtual server port configuration logic. > * Clarified or corrected multiple logging messages across modules for > better diagnostics. > > > nscgi Module Fixes > > * Fixed file upload failures when uploads were internally spooled by > NaviServer — previously returned 500 errors. > * Corrected processing of CGI script exit codes not 0. > * Fixed hostname and port reporting for |SERVER_NAME|. > > > Database Fixes > > * |ns_db rowcount|: Fixed regression where the row count logic was not > invoked, rendering the command a no-op. > > > Build and Compatibility Fixes > > * Suppressed obsolete |--enable-threads| warning for Tcl versions > where thread support is now enabled by default. > * Fixed compilation failure with glibc 2.38+ due to > |PTHREAD_STACK_MIN| becoming dynamic via |sysconf()|. > > > General Cleanups > > * Fixed small memory leak triggered by |serverrootproc| reset. > * Numerous minor typo corrections, comment clarifications, and small > logic cleanups across modules. > > ------------------------------------------------------------------------ > > > C-Level Infrastructure, C API Enhancements, and Build System > > > Core Infrastructure Improvements > > * > > *Socket Layer Enhancements*: > > o Added |sendErrno| field to the |Sock| structure to improve > diagnostics and tracking of write errors. > * > > *Modernized Initialization*: > > o Introduced |NS_INIT_ONCE()| macro for thread-safe one-time > initialization, replacing legacy double-lock patterns. > * > > *Data Structure Utilities*: > > o Added utility functions |Ns_DListSaveString()| and > |Ns_DListFreeElements()| to simplify dynamic list management. > o Replaced use of legacy |Ns_DString| functions with standard > |Tcl_DString|, modernizing internal data handling. > * > > *Debugging Support*: > > o Added |NsHexPrint()| for hex-dumping of byte sequences, aiding > in low-level debugging and analysis. > * > > *Introspection Enhancements*: > > o Introduced |Ns_TclReturnCodeString()| and > |Ns_ReturnCodeString()| to convert internal return codes into > readable strings, improving log clarity and diagnostics. > * > > *Code Quality and Performance*: > > o Applied extensive internal refactorings to improve performance, > cache locality, and maintainability across multiple subsystems. > > > C API Enhancements > > * > > *General*: > > o Added typedefs for |Ns_AuthorizeRequestProc|, > |Ns_AuthorizeUserProc|,|Ns_UrlSpaceMatchInfo|, > |Ns_DriverConnInfoProc| > o Added enum for |Ns_RequestType|, |Ns_UrlSpaceOp|, > |Ns_DriverClientInitArg| > o Added API calls in ns.h: |Ns_ConfigFilename|, |Ns_ConnTarget|, > |Ns_UrlSpaceMatchInfo|, |Ns_ConnServPtr|, > |Ns_DStringAppendSockState|, |Ns_RegisterFilter2|, > |Ns_TaskQueueLength|, |Ns_TaskQueueName|, > |Ns_TaskQueueRequests|, |Ns_ObjvTablePrint|, |Ns_InfoLogPath|, > |Ns_LogPath|, |Ns_ServerLogDir|, |Ns_ServerRootProcEnabled|, > |Ns_ServerLogGetFd|, |Ns_ServerLogCloseAll|, > |Ns_ServerLogRollAll|, |Ns_GetServer|, |Ns_ServerName|, > |Ns_SockSetSendErrno|, |Ns_SockGetSendErrno|, > |Ns_SockGetSendRejected|, |Ns_SockGetSendCount|, > |Ns_SockFlagAdd|, |Ns_SockFlagClear|, |Ns_SockSendBufsEx|, > |Ns_SockConnectUnix|, |Ns_SockGetClientSockAddr|, > |Ns_SockGetConfiguredSockAddr|, |Ns_SockaddrPublicIpAddress|, > |Ns_SockaddrTrustedReverseProxy|, |Ns_SockaddrInAny|, > |Ns_SockaddrAddToDictIpProperties|, |Ns_TclReturnCodeString|, > |Ns_ReturnCodeString|, |Ns_TclInterpServPtr|, > |Ns_LogDeprecatedParameter|, |Ns_RegisterFastUrl2File| > o Extended |Ns_Request|, |Ns_TclCallback| > o Refactored |Ns_ConnReturnMoved()| and > |Ns_ConnReturnRedirect()| to unify redirection logic. > * > > *Secure Communication and Validation*: > > o Added fine-grained certificate validation APIs > o Improved error stack draining for OpenSSL operations. > * > > *Extended C API for |ns_connchan|*: > > o Introduced a minimal C-level API for |connchan| connections, > enabling finer control over lower-level network operations. > * > > *Build Platform Compatibility*: > > o Updated Windows build system to use |NS_IMPORT| in place of > deprecated |NS_EXTERN|. > o Avoided use of deprecated C functions such as |mktemp()| to > improve portability and security. > > > Build System and Tooling > > * > > *Configuration and Sample Support*: > > o Replaced hard-coded OS commands (ls, mv, ...) consistently with > build variables > o Replaced hard-coded OpenSSL binary references with the > |$(OPENSSL)| build variable. > o Enhanced log path and configuration variable handling to support > more dynamic setups. > * > > *Test Infrastructure*: > > o Extended regression and compatibility test coverage to validate > edge cases and cross-platform behavior. > * > > *Build Metadata Introspection*: > > o Added support for build-time introspection of environment > settings, including allocator type (e.g., |malloc|), compiler > version, and Tcl build info. > * > > *Optional Deprecation-Free Builds*: > > o Introduced build flag |NS_NO_DEPRECATED| to exclude deprecated > functions and APIs, mirroring Tcl’s |TCL_NO_DEPRECATED| mechanism. > * > > *CI/CD Modernization*: > > o Upgraded GitHub Actions workflows from version 3 to version 4 > for improved performance and compatibility. > * > > *Sample Configuration Files*: > > o Improved sample configurations (|nsd-config| and > |openacs-config|) to use environment-specific settings via > |ns_configure_variables| > o prefer names |http| and |https| instead of |nsock| and > |nsssl| inside sample configuration files to ease configuration > for new users. > > ------------------------------------------------------------------------ > > > Documentation Updates > > > Comprehensive Overhaul > > * > > Conducted a thorough review and restructuring of all documentation: > > o > > *Tcl Command Documentation*: > > + Ensured all implemented Tcl commands and their options are > fully documented. > + Removed documentation for obsolete or unimplemented commands. > + Deprecated commands are no longer advertised in manuals or > used in examples. > + Introduced a dedicated section listing deprecated commands. > + Enabled automated generation of a complete command reference. > o > > *Test Alignment*: > > + Verified that every implemented Tcl command is covered by > regression tests. > + Ensured that all documented commands are also implemented > and tested. > > > Syntax and Formatting Consistency > > * Standardized placeholder syntax across the documentation and syntax > error messages (see commit |ffbd32774db|for details). > > > Manual Page Improvements > > * > > *nscgi*: Significantly revised documentation and usage examples for > clarity and completeness. > > * > > *admin-config.man*: Added a new section on “Customizing File Locations”. > > * > > Added and updated sections covering: > > o Basic templating features. > o Error handling mechanisms. > o Recently introduced Tcl commands and options. > > > Visual and Structural Enhancements > > * > > Updated diagrams and usage examples related to: > > o Request processing flow. > o Reverse proxy (revproxy) behavior. > > > Additional Improvements > > * Numerous corrections to spelling, grammar, formatting, and internal > linking throughout the documentation. > > > Deprecation Management Infrastructure > > * Introduced compiler warnings for usage of deprecated > |Ns_DString*| functions > * Added log severity level |Deprecated| to better surface deprecated > usage at runtime > * Documented all deprecated commands in a dedicated section of the > command reference > * Deprecated the use of manual double-checked locking for one-time > initialization replaced by the |NS_INIT_ONCE()| macro for safer and > cleaner initialization semantics > > ------------------------------------------------------------------------ > > > Deprecations > > > Tcl-Level Command Deprecations > > * > > Deprecated the following Tcl commands: > > o > > |ns_set print| → replaced by |ns_set format| > > o > > |ns_checkurl| and |ns_requestauthorize| → replaced by |ns_auth > request| > > o > > |ns_thread begin| → replaced by |ns_thread create| > > o > > |ns_thread begindetached| → replaced by |ns_thread create -detached| > > o > > |ns_event| → replaced by |ns_cond| > > o > > |ns_pooldescription| → replaced by |ns_dbpooldescription| > > o > > |keyldel|, |keylget|, |keylkeys|, |keylset| (from TclX) → > replaced by native |dict| functionality in Tcl > > o > > Legacy experimental functions (marked TBD for over 20 years) are > now deprecated: > > + |ns_browsermatch|, |ns_choosecharset|, |ns_cookiecharset|, > |ns_formfieldcharset|, |ns_formvalueput|, |ns_paren|, > |ns_tagelement|, |ns_tagelementset| > o > > Deprecated non-namespaced functions: > > + |getformdata|, |issmallint| > o > > |ns_parsetime|: now officially deprecated (was internally marked > "To be removed" for ~15 years) > > o > > |ns_set_precision|: deprecated in favor of standard Tcl idioms > > > Tcl-Level Option Deprecations > > * > > Deprecated options: > > o |-buffered| in |ns_connchan write| > o |-donecallback| in |ns_http| → replaced by > |-done_callback| (naming consistency) > o |-binary| (previously used to indicate Tcl objects with binary > data) → replaced by |-data|, aligning with conventions where > |-binary| is a boolean flag > > > C-Level API Deprecations > > * > > Deprecated or removed C functions: > > o |Ns_ObjvFlags()| → replaced by |Ns_ObjvIndex()| for option > parsing (removed redundancy) > o |Ns_SockSendBufs2()| → replaced by |Ns_SockSendBufsEx()| which > returns an additional |errorCode| > o |Ns_TclInitInterps()| → removed (marked as deprecated since 2005) > o Deprecated internal usage of OpenSSL and Tcl functions that have > been marked as deprecated upstream > o All C functions previously marked as deprecated in source > comments are now officially deprecated > > > Configuration Parameter Deprecations > > * > > Global config parameters: > > o |logroll|: → replaced by |logrollonsignal| (standardized log > rotation behavior on |SIGHUP|) > o |serverlog|: → replaced by |systemlog| to reduce ambiguity > between system and per-server logs > * > > Section parameter changes: > > o |serverdir| in the |fastpath| section is now deprecated → use > |serverdir| in the main per-server section instead (reflecting > its broader usage scope) > > > Changes in extra Modules > > > letsencrypt > > * Tcl9 compatibility changes > > > nsauthpam > > * Tcl9 compatibility changes > * License upgrade > > > nscoap > > * Tcl9 compatibility changes > * NaviServer 5 compatibility > * License upgrade > > > nsdbbdb > > * Replaced deprecated Ns_DString operations > * Support for LMDB > > > nsdbi > > * Removed calls to deprecated functions > * Tcl9 compatibility changes > > > nsdbilite > > * Removed calls to deprecated functions > > > nsdbimy > > * Removed calls to deprecated functions > > > nsdbipg > > * Removed calls to deprecated functions > > > nsdbmysql > > * Removed calls to deprecated functions > > > nsdbpg > > * Tcl9 compatibility changes > * NaviServer 5 compatibility > * Removed calls to deprecated functions > * License upgrade > > > nsdbsqlite > > * Fixed execution of DML queries. > * Removed calls to deprecated functions > * Pulled in new upstream version (3.47.2) of qlite3.c > > > nsdns > > * Removed calls to deprecated functions > * Code cleanup > > > nsldap > > * Added support for LDAP URIs in pool configuration > * Removed calls to deprecated functions > * Removed unneeded compile macro > * Fixed result setting of "connected" subcommand > * Refactor nsldap Tcl command into modular subcommands > * Tcl9 compatibility changes > * Updated documentation > > > nsloopctl > > * Tcl9 compatibility changes > * Minor code cleanup > > > nsmemcache > > * Removed calls to deprecated functions > > > nsoracle > > * Added experimental boolean configuration parameter > |convertEncoding|: When this Boolean parameter is true, the > connection is created with OCIEnvNlsCreate() instead of > OCIEnvCreate(). OCIEnvNlsCreate was introduced with Oracle9 and is > an enhanced version of OCIEnvCreate() which is used by default > (legacy setting) or when ConvertEncoding is not true. This parameter > performs on-the-fly conversions when connecting to a Latin1 encoded > database. > * Removed calls to deprecated functions > * Modernized configuration (range checks) and use Ns_ReturnCode when > appropriate > * Tcl9 compatibility changes > > > nsphp > > * Removed calls to deprecated functions > > > nsshell > > * Updated command list for command completion for NaviServer 5 > * Updated most JavaScript libraries > > > nssmtpd > > * Simplified configuration (provided defaults were possible) > * Added support for providing mail server password via userinfo in > |relayhost| > * Fixed multi-line response parsing > * Tcl9 compatibility changes > * NaviServer 5 compatibility > * Removed calls to deprecated functions > * Updated documentation > * License upgrade > > > nssnmp > > * Removed calls to deprecated functions > > > nsstats > > * More detailed reports: > o added list of loaded modules per server > o added list of all registered domain names for a driver > o added server log dir to per-server information > * Refactored web UI (adjusted layout for NaviServer 4.99 and 5) > * Added support for dark mode > * Added support for |nsperm| module, when installed > * Made parsing of http client log file more robust > * License upgrade > > > nssyslogd > > * Removed calls to deprecated functions > * NaviServer 5 compatibility > > > nstk > > * Tcl9 compatibility changes > > > nsudp > > * Tcl9 compatibility changes > * NaviServer 5 compatibility > * License upgrade > > > nswebpush > > * Tcl9 compatibility changes > * Updated code for newer and more picky web servers > * Fixed code for aes128gcm > > > revproxy > > * moved code to main repository > > > websocket > > * NaviServer 5 compatibility > * Avoid deprecated messages for |ns_conn write -buffered| > * Improved documentation > * More detailed timeout handling > > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel |