Roxen WebServer 4.0.425-release5 (2005-11-04)

WebServer-specific changes

Improvements:

  • Installation: A new Windows installer.
  • Administration interface: Module-specific action buttons are kept separated from standard buttons.
  • Administration interface: Slight CSS changes to headers in admin interface.
  • DB: WebServer now includes ExtSQL module for Oracle (enabled with USE_EXTSQL_ORACLE).
  • RXML: <emit#values> can now randomize its output.
  • RXML: Added <append type="array">.
  • RXML: Added exclude-invisible-layers in <cimg>.
  • RXML: Added remove-illegal-xml-chars attribute to <wash-html>.
  • Modules: Implemented periodic polling of include files in Redirect module.
  • Core: Support SIGWINCH to generate thread dumps.
  • Core: Added Opera 9 to supports system.

Bug Fixes:

  • Installation: Added comment on environment2 in buildenv.pike [Bug 3138] .
  • Installation: Tweaked initialization of environment for Java and NPTL.
  • Administration interface: Only show settings for one port at a time (fixes an error msg).
  • Administration interface: Updated warning and error icons for better recognition.
  • DB: get_my_table() copes with module names containing -.
  • DB: "Copy or Move" wizard renamed to "Copy or Rename".
  • DB: Removed support for moving from internal to external.
  • DB: Hide URL for internal DBs.
  • DB: Removed type field.
  • DB: Fixed bug with clearing of external DBs.
  • DB: Fixed database group creation problem.
  • DB: Allow trailing slash in URL.
  • DB: Connect directly to DB manager instead of MySQL to verify working URL.
  • DB: Nicer formatting of database list.
  • DB: Fixed cache flush when set_url() is called.
  • RXML: Fixed scope bug [Bug 3875] .
  • RXML: Fixed P-code version encoding for 64-bit systems.
  • RXML: Autodoc syntax fixes.
  • RXML: Workaround for <email> verification on Windows [Bug 3992] .
  • RXML: Hide internal attributes in <tablify>, <gtext> and <diagram> output.
  • RXML: LDAP tags now support binddn attribute; updated tagdoc.
  • RXML: Improvements to database format used by <accessed>.
  • RXML: <for> now handles invalid ranges in less strict ways.
  • RXML: Better error handling in <append>.
  • RXML: Don't signal error in <emit#values> for certain data types.
  • RXML: Improved error handling of missing content in various tags.
  • RXML: <gbutton> now tunnels more attributes (e.g. class, id).
  • RXML: Better termination of links in <wash-html>.
  • RXML: Fixed <tablify> column sorting, better attribute filtering [Bug 3416] .
  • RXML: Better attribute filtering in <vform>.
  • Modules: Redirect module no longer uses backend thread.
  • Modules: Allow to redirect with query part in Redirect module.
  • ModuleS: Added wide-string support to Relay2 module.
  • Protocols: try_get_file() sets character set in result mapping.
  • Protocols: New method location_url() returning http/https URL for a module's mountpoint.
  • Protocols: changes to output_charset handling, added get_output_charset().
  • Protocols: Privileges fix in handling of PUT in file systems.
  • Protocols: FTP protocol fix [Bug 3930] .
  • Protocols: Changes to HTTP protocol handling of wide headers.
  • Protocols: HTTP protocol fix for incorrect connection headers [Bug 4040] .
  • Protocols: Updated use of _Roxen->make_http_headers().
  • Core: Warning for duplicate modules with the same name.
  • Core: ArgCache server secret database field definition changed to BINARY.
  • Core: Include port object in InternalRequestID.
  • Core: Turned off module dumping for Postgres and Msql modules.
  • Core: Improved warnings in module_dependencies().
  • Core: Fixed race condition in font handlers.
  • Core: Fix for backtrace in Sitebuilder Link Browser [Bug 3967] .
  • Core: JavaScript library changes for improved Opera 9 and Mozilla compatibility.
  • Core: Safari 1.3/2.0 workaround in JavaScripts handling dynamic popups.
  • Core: File system modules got chmod fixes.
  • Core: Fixed WebDAV directory creation in userfs module and added workaround for normalize_path().
  • Misc: Expire headers added to example pages.
  • Misc: Remove ยท from server name.
  • Misc: Domain list updated in Map.pmod.
Improvement and bug tickets closed: 3138, 3416, 3875, 3930, 3967, 3992, 4040.


Pike-specific changes

Improvements:

  • Now supports recent Fedora Core releases.
  • Various performance optimizations for Mac OS X.
  • Implemented timed_async_fetch() in Protocols.HTTP.Query.
  • Added FreeType rendering of monochrome fonts.
  • MIME module now won't include large mail content in error messages.
  • sscanf(): Performance optimizations and reduced memory footprint.

Bug Fixes:

  • Fixed non-absolute redirect bug in Web.Crawler [Bug 3950] .
  • Updated utf8_to_string() to Unicode 3.1 compliance by not decoding non-shortest forms.
  • Solaris 10 fixes.
  • Improved time-out handling and security fixes in MySQL glue code.
  • Many fixes to improve Oracle 9 compatibility.
  • Added detection of Sybase frameworks on Mac OS X.
  • Fix for Windows error reporting in file handling.
  • A number of GTK bug fixes.
  • Fixed rare filesystem race condition [Bug 4000] .
  • Fixed EINTR problem with file_stat().
  • Fixed decoding of Photoshop files with layers having negative coordinates on 64-bit machines [Bug 4007] .
  • A lot of internal bug fixes.
Improvement and bug tickets closed: 3950, 4000, 4007.

Roxen WebServer 4.0.325-release4 (2005-02-16)

WebServer-specific changes

Improvements:

  • Email tag: Throw RXML parse error for unknown charset.
  • Email tag: Use unencoded subjects if possible. Use quoted-printed instead of base64 if it is shorter for subject.
  • Email tag: Fall back to utf-8 if subject or body is unable to be encoded with the supplied charset.
  • Email tag: Implemented mbox logging of e-mail messages from the <email> tag.
  • Changed bg_time_buffer_min to 0. This will improve background_run performance when the queue is large and when the server is heavy loaded. Improved DEBUG_BACKGROUND_RUN output.
  • Roxen.get_client_charset_decoder() now can return a decoder that handle entities too (support for IE).
  • RXML: Added attribute filtering to simple_path in Sloopy DOM.
  • Additiontal RXML Tags: The sscanf tag is improved when you forget to supply it the required arguments.
  • Spell Checker: Improved default path for aspell on Windows; try to read the path from the registry.

Bug Fixes:

  • Get privs before binding ports. This fixes the failure to add ports when the server is running with nonpermanently changed uid/gid.
  • Replication: Added encoding of the server secret in the replication of argument cache entries. [Bug 3878]
  • Admin Interface: Fixed a module configuration saving bug that appeared when creating an empty site.
  • Admin Interface: Fixed an infinite loop that could cause the server to hang if a too long name was specified for a new server configuration.
  • Directory Listing: This module depends on rxmltags if default template is used and now makes the proper call to module_dependencies() [Bug 3787] .
  • Restrict access to specially crafted file names on Mac OS X. This partly fixes [Bug 2100] . Special thanks to the team at NetSec for their testing efforts.
  • Fixed a check in the dns security pattern. The bug should have had the effect that access is denied the first time a valid client accesses a resource, and subsequent accesses are always delayed one second.
  • Use http_encode_invalids instead of http_encode_string in http_redirect. This avoids double-escaping of "%" in many cases. It only breaks in cases where there's a literal "%" in the input "url", but that's very rare.
  • Added a note about the brokenness of http_encode_string and correctly_http_encode_url. Added http_encode_invalids that handles it somewhat more correctly (depending on what you want to do). Extended http_encode_cookie to escape control chars. Extended http_encode_url and correctly_http_encode_url to escape all reserved chars according to RFC 2396.
  • Fixed encoding of the DEL control char in the http_encode_* functions.
  • Fixed bug in the "XPath light" parser when an attribute test doesn't match any attribute.
  • '.' and ':' may occur in element and attribute names, so they should be allowed in them in the "XPath light" parser used in the <define> tag.
  • Check for @ also after parsing the e-mail address variable. (Avoids a backtrace to the user.)
  • Redirect module: Avoid regexp errors when URL is a wide string.
  • GTEXT/CIMG: Don't treat empty strings as valid input to scale, max-width and max-size when processing images.
  • Cimg module: Workaround for [Bug 3814] where the entity _.data is cached in the PCode.
  • Emit Time Range module: Fixed documentation and correctness.
  • Java script support tag: Removed stupid check for javascript 1.2 support in client. Didn't provide alternative, just broke things.
  • RXML Tags: Fixed the <sprintf>, <sscanf> and <case> tags to cope with null content.
  • RXML Tags: Fixed <scope extend=...> to actually work.
  • RXML Tags: Added feature to return the node sets from <contents copy-of=...> and <contents value-of=...> as arrays or mappings.
  • RXML Tags: Documented the added functionality to filter on attributes in <contents copy-of=...> and <contents value-of=...> in the <define> tag.
  • RXML Tags: Fixed bug reported in [RT#5748]. Interpret <date unix-time="0"> and <expire-time unix-time="0"> as 01:00, January the 1st, 1970 and not the current date.
  • SSI module: Fixed bug in ssi variable substitution.
  • Removed an old undocumented limitation on POST:ed form variables where the data must be less than 200000 bytes. Fixes [Bug 3808] .
Improvement and bug tickets closed: 2100, 3787, 3808, 3814, 3878.


Pike-specific changes

Improvements:

  • Backported modify_shared_string() and rehash_string_backwards() fixes from Pike 7.7. Fixes C stack overflow errors.
  • Describe UNDEFINED arguments better in backtraces.
  • XML Parser: Stricter detection of RXML entities. Added flags to pass through the compat_allow_errors setting to the XML parser in simple_parse_input and parse_input.
  • Windows installer: Preparations for the new installer.

Bug Fixes:

  • LDAP: Fixed the filter value unescaping function. Fixes LDAP searches for values containing for example parentheses.
  • Fixes in the SSL client layer.
  • Fixed memory leak/waste with weak multisets.
  • Fixed fatal error when weak multisets got shrunk to zero size by the gc: "Pike was in GC stage 400 when this fatal occured: Invalid flags 19". The bug was introduced in Pike 7.4.154.
  • Support for modern libiodbc.
  • HTTP Query module: Fixed keepalive operation when the remote end has closed the connection. Somewhat better propagation of read/write errors (by setting errno).
  • Remote module: Be more careful to avoid getting a ref from the backend through the async enable call out. This avoids garbage, especially in the case for a client that fails to connect while no backend is running.
  • Arrays: Fixed three-state return value from alpha_svalue_cmpfun. This bug surfaced when get_order was made stable in 7.4.48. C.f. [Bug 3812] .
  • Backend: Fixed bugs in backend switching (Backend.add_file). (Fixed in other ways in later versions.) Backported return value extension for Backend.`() which is necessary for the newstyled SSL.sslfile.
  • Built-in functions: Corrected f_mktime for some combinations of HAVE_MKTIME, HAVE_GMTIME and HAVE_LOCALTIME. Make the timezone correction even when my_time_inverse is used with localtime as replacement for gmtime. Disabled the "fix" for the allegedly broken Linux mktime(3) since the fix itself is broken.
  • Built-in functions: Handle overflow better in my_time_inverse.
  • Built-in functions: Fixed mktime() to work before 1970 even when the system mktime(3) doesn't (if gmtime and localtime work). Fixed the gmtime inverse function to work for localtime too. It also maps to the closest valid time when given an invalid time, just like mktime(3) usually does.
  • Built-in functions: Show the error when the compile time replace() optimizer fails.
  • CPP: Keep track of line numbers in cpp directives that contain strings with escaped newlines.
  • CPP: Handle escaped newlines in ordinary text too. This also fixes the bug that #if expressions couldn't be broken with escaped newlines.
  • CPP: Fixed bug in the expression parser that caused it to interpret all character constants as if they were backslash escapes. This affected only backslash special chars like 'n', 'r', 'b', 't', and numbers.
  • Clear the subtype properly in a number of opcodes that can produce nonzero integer svalues. Otherwise the zero type can remain in calculations that start with UNDEFINED.
  • Don't keep the socket after Stdio.File.connect if it fails and there was no open socket before it was called.
  • Fixed to udp->wait() to handle EINTR.
  • Oracle: Fixed leaking error handles. This caused leaks when Oracle.Date objects were created from strings or were casted to strings. The leak is accentuated in 7.4 and later since there's a big_query wrapper there that correctly casts everything to strings.
  • XML: Backported additional validity checks from 7.7. Turned off by default, but may be enabled to get stricter XML parsing.
  • XML: Processing Instructions are now allowed on the top level.
  • XML: Added 7.2 compatibility mode that allows multiple tags at the top level. Also fixed bug where comments and PI:s after the top level element weren't allowed.
Improvement and bug tickets closed: 3812, 3855.

Roxen WebServer 4.0.172-release3 (2004-09-28)

WebServer-specific changes

Bug Fixes:

  • Fixed a bug in <emit> which caused unwanted memory garbage.
  • Fixed a bug in <replace> with empty content.
  • Administration interface: Corrected some issues in the Pike Memory Usage Information wizard.
  • Administration interface: Fixed so that Flush Caches also empty the protocol cache.
  • Disabled update server setting.
  • Fix for too deep recursion. [Bug 3790]
  • Fixed unnecessary memory consumption when running the server in a specialized debug mode.
  • Generate RXML error messages in <cimg> when it can't load an image.
  • Updated the default binary path for aspell on Windows.
  • Fixed a JavaScript error in the color selector widget in Mozilla and MSIE browsers.
  • Various documentation updates.
Improvement and bug tickets closed: 3790.


Pike-specific changes

Bug Fixes:

  • Backported memory handling in weak multisets from Pike 7.6 to reduce memory consumption.
  • Casting of destructed objects now behave like casting a zero.
  • Fixed a problem with create_process() by backporting from Pike 7.6.
  • Implemented fix from Pike 7.6 for is_eq().
  • Fixed an error with _sprintf() in the Calendar module.
  • DNS handling fixes when running on Mac OS X without a network connection.

Roxen WebServer 4.0.158-release2 (2004-09-09)

WebServer-specific changes

Improvements:

  • Disabled the font roxenbuiltin for personal edition sites.
  • Implemented recursion limit for <insert href>. Default limit is 2.

Bug Fixes:

  • Fixed changing of SSL protocols settings. Changes should now be effective immediately.
  • Fixed bug where files were created with permission 0000 if FD_DEBUG was active.
  • Fixed implementation of %u in redirect module to not switch from https to http.
  • Fixed settings being reset in robots.txt module. [Bug 3770]
  • Fixes in emit-timerange module.
  • Fixes in keep-alive.
Improvement and bug tickets closed: 3770.


Pike-specific changes

Improvements:

  • Added new function is_open in Stdio.File.
  • Added Oracle 8 support for Redhat Enterprise Linux distribution.

Bug Fixes:

  • Calendar: Fix in calendar function dwim_day().
  • LDAP: Bugfix in the handling of escaped "*" characters in the filter parser.
  • DB: Fixed nonworking Oracle support. [Bug 3775]
  • DB: Bugfix in date handling in Oracle module.
  • Bugfix in program_(indices,values)()
Improvement and bug tickets closed: 3775.

Roxen WebServer 4.0.141-release1 (2004-08-13)

WebServer-specific changes

Improvements:

  • Now uses Pike 7.4.
  • Now uses MySQL 4.0.18.
  • Now supports RFC 2518 (webdav).
  • GXML improvements:
    • Added a new scope to access layer properties. Accessible through &_.layers.<name>.{l,r,t,b,w,h}; Ex. &_.layers.Background.w;.
    • Added <rotate degrees=""/>.
    • Added basic operation "clear".
    • Handle layers attribute to "scale".
    • Shadow now handles xoffset and yoffset attributes.
    • Scale now obeys max-width and max-height.
  • GText improvements:
    • The background image may now have an alpha channel.
    • Fixed various bugs in the alpha channel handling.
    • The attributes magic-{texture,background,alpha} now work again.
  • Fixed rendering of Photoshop images.
  • The check_spelling module now implements the <emit#spellcheck> tag.
  • Improvements in <emit#timerange>:
    • Added a calendar scope.
    • Added a plugin API.
    • Days can be padded to the calendar timerange to eg complete full weeks.
  • Improved support for various browsers (Firefox, IE, Opera, Safari, etc).
  • The mysql server is now taken down cleanly on server shutdown.
  • The logfile directory now automatically gets a corresponding .nsr (Networker) configuration file that informs that it contains logfiles.
  • Improved diagnostics in lots of places.
  • Several places now use REPLACE INTO in preference to INSERT/UPDATE.
  • Several optimisations.
  • Fixed UI bugs in several server templates.
  • New administration interface look.
  • FTP protocol module extended with some support for RFC 2228.
Improvement and bug tickets closed: 835, 2491, 2658, 3454, 3474, 3495, 3527, 3530, 3531, 3550, 3551, 3565, 3566, 3571, 3575, 3580, 3581, 3582, 3586, 3587, 3590, 3597, 3615, 3632, 3640, 3640, 3647, 3648, 3666, 3667, 3669, 3703, 3704, 3709, 3720, 3734, 3737, 3766, 3767.