Dear friends of NaviServer, on sourceforge is a release candidate for NaviServer 4.99.12. If everything goes well, the release should follow end of this week. Below are the changes since 4.99.11:
best regards -gustaf ======================================= NaviServer 4.99.12, released 2016-08-XX ======================================= 195 files changed, 19904 insertions(+), 13118 deletions(-) New Features: * OpenSSL support integrated with NaviServer core - ns_http can handle now http and https urls - added backward_compatibility stub for ns_ssl - added configure switch --with-openssl?=path? * Improved crypto support (through OpenSSL) New commands: - ns_hmac - ns_md (generalization of ns_md4 and ns_sha1, but supports by default 14 different digest algorithms) - ns_hotp (one-time passwords as defined in RFC 4226) - ns_totp (time-based one-time passwords as defined in RFC 6238) StartTLS support (contributed by Constantin Șerban-Rădoi) - "ns_sendmail" is now able to connect to servers via StartTLS (requires the Tcl "tls" package, since ns_sendmail is implemented in Tcl) - Client and server support for StartTLS in the nssmtpd module. * New Command "ns_rlimit" to get/set various resource limits from the operating system. A typical use case for this command is to query or set e.g. the core size via the NaviServer startup file or to change it at runtime in a syntax independent from the naming and conventions in the various startup scripts (e.g. upstart, systemd, ...). This is e.g. useful when a core dump should be created from the running state (e.g. in combination with the "ns_crash" command). * Improvements for "ns_connchan": - Supports now client functionality via ns_connchan open ... (works for http:// and https:// URLs) - New subcommand "ns_connchan exists /channel/" - Added runtime switchable debug severity "Debug(connchan)" Performance Improvements: Bug Fixes: * Fix ns_set management of headers (which was broken since the introduction of the leftover management when requests are pipelined in 4.99.11). The problem was that the "static" ns_set for headers is was freed to early in the pipelined case. * Fix for a serious bug in cookie management which could lead to false positives in ns_getcookie: - Previous versions of NaviServer searched the "Cookie" and "Set-Cookie" header files for a string "NAME=" and returned the value provided after this string, when found. - However, the "Cookie" and "Set-Cookie" header fields have contents in a different a different syntax (see https://tools.ietf.org/html/rfc6265 section 4.1.1 vs. 4.2.1), such as e.g. Cookie: cookie1="value1"; cookie2="value2"; style=null; ... Set-Cookie: cookie1="new- value"; Expires=Fri, 01-Jan-2035 01:00:00 GMT; Path=/; HttpOnly - Therefore, searching in the "Cookie" header field e.g. for a cookie named "tyle" lead to a success as well as a search in "Set-Cookies" for e.g. a cookie named "Expires". * Improved handling of erroneous requests (some where treated as HTTP/0.9 requests before, leading to strange behavior/error messages). * Fix potential memory leak for "ns_mutex eval" * Long standing bug when exiting "make test" should be fixed by now. The problem was that the the Tcl exit handler was kicking in when the end-of file was reached, interfering with the NaviServer shutdown steps. * Improved portability for *BSD systems and recent Windows build environments (e.g. Visual Studio 2015) Documentation improvements: * New man pages for ns_hmac, hs_md, ns_hotp, ns_totp * Various man pages updated/improved * Improved sample config files C API Changes: * Introduction of Ns_ReturnCode: use an enumeration type instead of preprocessor based constants + int. The change revealed several places, where NS_OK/NS_ERROR and TCL_OK/TCL_ERROR were intermixed. * New functions - Ns_GetBinaryString() to obtain from a Tcl_Obj the binary representation if available, otherwise the string representation. - Ns_SetRecreate() which is a combination of a create and a move operation, but avoiding malloc operations on all keys/values. - Ns_DStringAppendTime() to ease uniform printing of Ns_Time structs into DStrings - Ns_SubcmdObjv(): New infrastructure support for commands with subcommands: instead of long switch statements with nested structures with often many returns, one can now register Tcl_ObjCmdProcs for subcommands in an Ns_SubCmdSpec structure. - New argv checkers Ns_ObjvUShort() and ObjvQueue() Configuration Changes: - added configure switch --with-openssl?=path? Code Changes: * Improved naming of Mutexes: much more mutexes are named now. * Code cleanup: - Modernized argv parsing by using Ns_ParseObjv() for many functions. - Introduced enumeration types Ns_ReturnCode and NsWriterStreamState - New macro INTCHAR to pass "char" values to library - Use "unsigned short" consistently for port numbers functions requiring "int" to avoid code smells - Use boolean types on more occasions - Use more often typedef-ed function definitions - Reduced number of multiple returns per function - Removed all calls to deprecated Tcl API Function Tcl_AppendElement() - Reduced calls to Tcl_AppendResult() and use explicit Tcl_Objs instead for results - Generation of error messages made more consistent - Removed useless calls to Ns_DStringFree() after Tcl_DStringResult() - Replaced deprecated atoll() by strtoll() - Reduced variable scopes - Added more const declarations - Don't use boolean values as arguments of comparison operators - Many large functions split into smaller units * Made testing more robust when IPv6 is available, but turned off in the kernel * NaviServer driver: - Added (clientInitProc, protocol and default port) to info record - Bumped driver version to 4 * Ignore less soft error conditions, but report in the error.log ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohodev2dev _______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel