Roxen Internet Software AB
www.roxen.com
DownloadRoxen WebServer 5.1

Roxen WebServer 5.1.185-release1 (2011-01-17)  

WebServer-specific changes

Administration Interface improvements:

  • Display SNMP data in a site's Status tab.
  • Display load average on start page on some platforms.
  • SSL wizard defaults to more reasonable key size.
  • Added content types for MS Office XML.

Database Manager improvements:

  • Implemented periodic database backup support. The default is Never.
  • Database browser now handles connection errors in copy or rename better. [Bug 5350]
  • Database browser now decodes deflated database fields.
  • Fix database browser charset problem. [Bug 5345]
  • Show table descriptions for non-MySQL databases. [Bug 5367]
  • Show extended database statistics for non-MySQL databases. [Bug 5370]
  • Table field list fix for Oracle.

Patch Management improvements:

  • Fix issue when uploading patch from Windows browser. [Bug 5505]
  • Disregard user/permission information in patch archives. [Bug 5474]
  • Close patch file explicitly to avoid Windows errors. [Bug 5742]

RAM Cache improvements:

  • Enable new RAM cache by default. To learn more, see the Planet Roxen development blog.
  • Fix calculation bugs affecting entry size and cost.
  • Avoid updating size limit as long as there are no cache misses.
  • Fix division by zero.

Modules improvements:

  • Implemented new module XML-DB Mirror with a set of related RXML tags.
  • Relay proxy now adds X-Forwarded-* headers. [Bug 4989]
  • Some FastCGI debug fixes. [Bug 2043]
  • htaccess now has consistent and documented evaluation order and treats order mutual-failure as alias for order allow,deny. [Bug 5723]

Graphics improvements:

  • Fix stack overflow error in generation of GXML images.
  • Flush various image caches on shutdown.

RXML improvements:

  • Fix <nooutput> and <comment> to accept any kind of content. [Bug 5301]
  • Added documentation hint in error message for incompatible types.
  • Implement CSV quoting using &scope.var:csv; and in <emit#values>. [Bug 5376] [Bug 5777]
  • Improve MySQL quoting more compatible with other databases. [Bug 5428]
  • Fix xml-invalids quoting to remove 0xFFFE and 0xFFFF.
  • Added time format pattern %P (am/pm) as a shorter version of %p (a.m./p.m.).
  • Fix localization errors for Polish and Portugese. [Bug 5538] [Bug 5353]
  • Be more lenient with whitespace in conjunction with bindings in SQL tags.
  • Fix for English in <emit#languages>. [Bug 5354]
  • Some fixes to <accessed> for better compatibility with 4.5.
  • <emit#spellcheck> will now default to UTF-8 when invoking Aspell (requires v0.60 or later). [Bug 5759]
  • <insert#cached-href> now understands relative redirects. [Bug 5310]
  • <default> now converts to string before splitting. [Bug 5379]
  • Fix bug in <substring> when using separator-chars on an empty string. [Bug 5411]
  • Added <recode> attributes string-fallback="..." and entity-fallback="yes|no".
  • Always sort tag attributes alphabetically to get stable output. [Bug 5676]
  • Fixed missing propagation of state updates in cache tag. Could cause p-code updates not to be saved persistently.
  • Fix NIL filtering of Value objects. [Bug 5386]
  • Added cleanup callback for Frame objects. [Bug 5473]
  • Avoid garbage from circular memory references in <insert#cached-href>.

WebDAV improvements:

  • Handle clients that send Depth: 0 or Content-Length: 0 headers.
  • Support WebDAV modules that don't fallback to other location modules.

Core improvements:

  • Enable HTTP compression by default. It can be disabled with the start flag --disable-http-compression. [Bug 5744]
  • Enable new RAM cache by default. Use the --disable-new-ram-cache start flag to disable it. [Bug 5744]
  • Improve memory cleanup of RAM-based cache keys.
  • No more infinite recursion when generating 401 & 404 error pages.
  • Improve client-side caching of YUI resources when using HTTPS.
  • Gzip compression is now enabled for JSON data.
  • Fixed Gzip file leak.
  • Look at final content type and disregard charset parameter when deciding if Gzip compression should be used.
  • Enable 304 responses for more requests when using Gzip.
  • Only apply Gzip compression if streaming file object supports proper methods. [Bug 5740]
  • Add support for require user=ANY in module security. [Bug 5381]
  • Handle require group=ANY when user isn't in a group. [Bug 5388]
  • Support comma-separated IP/mask in security patterns.
  • Added SNMP probes for request timing and other internal statistics (5.0.587: added residentMemory and virtualMemory).
  • Added templates for SNMP monitoring with Cacti.
  • Better diagnostics for unavailable modules.
  • Don't stop several modules in parallel.
  • Enable priority support for more module types. [Bug 5384]
  • Added module_is_disabled constant to completely skip a module.
  • Handle ports that are not registered in the configuration.
  • Made cleanup of request data thread-safe.
  • Improve port glob matching. [Bug 5160]
  • IPv6 fix in host lookup.
  • Bind IPv6 ANY ports before IPv4 ANY.
  • Improve IPv6 support in FTP.
  • Flush argcache on shutdown.
  • Move log file I/O to separate thread.
  • Make Roxen.http_encode_string() obsolete.

    COMPAT NOTE: This may require you to update Pike module code that relies on the old call.

  • Handle call-outs in destructed objects.
  • Minor fixes to environment setup (path quoting, path separator and font paths).
  • Learn about canonical format for some more HTTP headers.
  • Better error recovery on FTP connection failure.
  • Only add Vary: Accept-Encoding if response can be compressed.
  • Handle multiple Accept-Encoding headers when determining if response may be compressed. [Bug 5750]
  • Avoid protocol-level overcaching of stale entries.
  • Fix for generation of 416 responses. [Bug 5415]
  • Don't share data derived from User-Agent header between multiple requests in same connection. [Bug 5741]
  • Changes to WebDAV lock handling to avoid thread starving.
  • Avoid starving of threads when executing background tasks.
  • Replace image sizing code with updated Pike 7.8 equivalent.
  • Fix issue with Primary Server URL together with http to https redirect.
  • Enable new-style charset decoding in try_get_file on compatibility level 5.1. New-style decoding also in place in <insert#href> and <insert#cached-href>.
  • Roxen.fix_relative() uses Standards.URI and can run without RequestID. [Bug 5808]
  • Be better at disconnecting on low-level HTTP errors.
  • Disable weak SSL algorithms by default. [Bug 5733]



Pike-specific changes

Modules improvements:

  • Calendar: Support negative year days. [Bug 5303]
  • Calendar: Greek language additions.
  • Calendar: Fix backwards compatibility for iso_name() and iso_short_name().
  • Calendar: Solved issue with NULL indexing.
  • Calendar: Corrected local name for Portugese. [Bug 5353]
  • Calendar: Language objects can now return the language name.
  • Calendar: Fix evaluation order for `+().
  • Crypto: Added multiple padding algorithms.
  • Filesystem.Tar: Truncate output file before writing extracted data.
  • GTK: Numerous fixes and additions.
  • Gz: Report error when feeding wide strings into a number of functions.
  • Gz: Fixed handling of window_size argument.
  • Image.Dims: Added support for Adobe Photoshop file format.
  • Image.PNG: Fix alignment bug. [Bug 5138]
  • Java: Improve diagnostics of JNI_CreateJavaVM() failures.
  • Locale.Charset: ASCII encoding now runs substitute hook outside 0-127.
  • Locale.Charset: Support UTF32 encoding/decoding.
  • Locale.Charset: Speed up encoder subsitution significantly. [Bug 5636]
  • Locale.Language: Update Polish month names. [Bug 5538]
  • Math.Matrix: Make mul(), ()add and sub() work with more than one argument.
  • MIME: Reduce memory consumption for large messages.
  • Nettle: Don't release thread mutex in thread-unsafe region during hashing.
  • Nettle: Fix memory leak in Proxy.
  • Nettle: Fix stack overrun bugs in CBC and Proxy.
  • Nettle: Disable thread switching when hashing less than 1 MB data.
  • Parser.XML: Fixed bug in SloppyDOM predicate testing.
  • Parser.Tabular: Added support for Stdio.File objects.
  • Protocols.HTTP: Implemented do_proxied_method().
  • Protocols.HTTP: Allow POST body to be specified.
  • Protocols.HTTP: Make close() accessible in Query.
  • Protocols.HTTP: Don't keep reference to unopened file to avoid backtrace. [Bug 5730]
  • Protocols.HTTP: Correct SSL port number in Server.
  • Protocols.HTTP: Improve byte range handling in Server.
  • Protocols.SMTP: Now exposes error code from server to the caller.
  • Regexp: Avoid crashing when running out of C stack.
  • Regexp: Fixed PCRE crash problem in split().
  • Sql: Return string for Oracle/ODBC varchar fields in fetch_field(). [Bug 5642]
  • Sql.MySQL: Prevent C stack overflow in low-level interface.
  • Sql.MySQL: Reconnect also when retrieving CR_SERVER_LOST error.
  • Sql.Oracle: Correct binding issue with one LONG bind variable per row.
  • Sql.Oracle: Added result->eof().
  • Sql.ODBC: Corrected NULL handling for fixed-length fields.
  • Sql.ODBC: Improved support for long wide character strings.
  • Sql.Postgres: Many fixes to authentication, connection and results.
  • SSL: Add support for AES 128/256.
  • SSL: Make sure handshake failures are sent to the client.
  • SSL: Fixed bugs in handling of abrupt remote close.
  • SSL: Make code more robust for compilation errors and bad dumping.
  • Standards.JSON: New module for JSON encoding/decoding.
  • Standards.URI: Fixed handling of empty path together with query string.
  • Standards.UUID: Added 7.6 compatibility to make_version3().
  • Stdio: Corrected Mac OS X fd count limit to speed up get_all_active_fd(). [Bug 5751]
  • Stdio: Avoid releasing interpreter lock when peeking at file with no timeout.
  • Stdio: Improved socket code when mixing IPv4 and IPv6 addresses.
  • Stdio.Terminfo: Merge several terminfo directories.
  • System: Added getloadavg() to query system load value.
  • Thread: Don't report error for kill() on main thread.
  • Thread: Fixed bug with extra zero element returned by Queue.read_array().
  • Thread: Implemented Queue.peek_array().

Core improvements:

  • Optimized array initialization and copying of empty arrays.
  • Optimized inlining of constants.
  • Optimized recursive copying of arrays, multisets and mappings.
  • Object initializers must be called even if object has no storage.
  • Improve stability for call-outs to objects with overridden hash/comparison.
  • Adjust gc time counters to not use thread-local timers.
  • Force . as decimal separator in %O float output regardless of locale.
  • Report error when calling backend with incorrect parameters.
  • Fix threshold bug in memory hashing code.
  • Fixed mapping loop in f_exece().
  • PPC32/64 code generator fix to update PC before jumps.
  • Updated signals to restore in low_init_signals().
  • Fixed typo in setrlimit() range check.
  • Added string_builder_putchars().
  • Unlink ONERRORs before calling to avoid recursion on error.
  • Don't optimize away thread yield calls in sleep(0).
  • Don't yield to other threads halfway through setting of internal values.
  • Safeguard thread clock timer against wraparound.
  • Corrected memory recursion that affected gc and Pike.count_memory(). [Bug 5072]
  • Improved error message for indexing on illegal type.
  • Allow modules to export constants to be used in preprocessor expressions.
  • Fix sign extension bug in mapping memory tracking.
  • Fix leak of memory_usage callbacks.
  • Fix random() for integers larger than 31 bits but smaller than bignum.
  • has_prefix() can now search objects.
  • Added ! modifier to sscanf() patterns.
  • Fix for throwing errors for unevaluated constant expressions.
  • Fix SIGSEGV in compiler. [Bug 5273]
  • Fix out of stack error in decode_value().
  • Simplify sleep functions and use nanosleep when available.
  • Adjustments to socket error handling.
  • Propagate errors from get_dir() to errno on Windows.
  • Fixed overcaching issue in F_COND_RECUR.



MySQL-specific changes

Updated the bundled MySQL to version 5.0.91. To see the changes from the previous 5.0.90 package please read the following MySQL change notes: