v0.9.21 - ??/??/2011

	o AUTH config option extended to accept a second optional integer parameter. This optional 
	  parameter is a HTTP code (4xx or 5xx only) that will be returned instead of redirecting 
	  the client when accessing an unauthorized resource before login in. Usage:
	  
	  		AUTH url
	  	or
	  		AUTH url 4xx|5xx
	  		
	o Websocket procotol support upgraded to RFC hybi-10 revision.

	o New /info refinement for DO-SQL. Returns the port! value associated with a database
	  connection. Usage:
	  
	  		port: do-sql/info <connection-name> ""

	o New command-line option -f. Use it to redirect Cheyenne working folder to a new location.
	  All new files generated by Cheyenne will be created in the new location. Example:
	  
	  		./cheyenne -f /var/log/cheyenne/
	  		
	o New command-line option -c. Points to a new location where to find the config file.
	  Example:
	  
	  		./cheyenne -c /usr/local/cheyenne/				; load %httpd.cfg from there
	  		./cheyenne -c /usr/local/cheyenne/chey.conf		; load %chey.conf from there

	o Added a CGI configuration script (cgi-conf.r) to the source tree. Use it for configuring
	  the shebang line of CGI scripts provided in %www/ folder on UNIX platforms. (Thanks to
	  Tamas Herman for writing it). Run it from the Cheyenne/ folder:
	  
	  		cd Cheyenne
	  		rebol -s cgi-conf.r

	o New config option (globals section): 'allow-method. Extends allowed HTTP methods.
	  Usage:	
			allow-method DELETE
		or
			allow-method [DELETE OPTION ...]
	
	
	o Boot: -w command line option extended to allow to specify an additional "start" 
	  number value. Usage: 
	  
	  		cheyenne -w max
	  	or
	  		cheyenne -w start,max
	
	
	o Boot: -w 0 now starts Cheyenne with no workers at all (was spawning one at start
	  until now).

	o Added missing 'fast-rebol-cgi config keyword declaration

	o RSP: COLLECT function patched to work in RSP context.
	
	o Added support for 'access-os native. Now Cheyenne can work with /Core on MacOS X.
	
	o READ-CGI mezzanine is missing in /Core 2.7.8 on MacOS X, Cheyenne is now supplying
	  it in such case.
	
	o CGI: (Windows) 'set-env function not redefined if already available as native.
	
	o CGI: (Windows) call.r wasn't loaded properly (native CALL was active instead).
	  Issue now fixed (so v2.7.8 native CALL/OUTPUT bug won't show up).
	

v0.9.20 - 02/03/2011

	o RSP: databases definition can now be declared at webapp level allowing 
	  multiple instances of a webapp to use the same virtual database name but,
	  pointing to different real databases.
	  
	o Config keyword 'databases now allowed in webapp sections. If defined there,
	  it takes precedence over the global section definition.
	  
	o Systray help message now includes HTTPd port number used by the running
	  instance.
	  
	o RSP: session security improved by binding client's IP address to the session.
	
	o Fixed issue with loading %libc.so for Linux 64bits versions.
	
	o HTTPd: fix a long standing issue with IE5/6/7 extra CRLF sent randomly
	  after POST data.
	  
	o RSP: fixed a session cookies collision issue with webapps using same domain root.
	
	o RSP: HTTP compression disabled on RSP runtime errors.
	
	o HTTPd: fixed an issue with matching domains when server runs on port <> 80.
	
	o Uniserve: fixed an encap 2.7.6 crashing issue.
	
	o Boot: fixed tray display message for listening ports.
	
	o RSP: fixed an issue in databases ports isolation per domain (was a typo).
	
	o RSP: response/redirect default HTTP code is now 302 (was 301) to fix some browser
	  caching issues. New refinements are also added :
	  
		response/redirect => 302			; HTTP1.0 compatible moved temporary
		response/redirect/strict => 303		; HTTP1.1 moved temporary (POST=>303=>GET)
		response/redirect/thru => 307		; HTTP1.1 moved temporary with same method (POST=>307=>POST)
		reponse/redirect/last => 301		; HTTP1.0&1.1 moved permanently
		  
	o RSP/CGI: default no caching headers changed to:
	
		Pragma: no-cache
	   	Cache-Control: no-cache, no-store, max-age=0, must-revalidate
	   	
	o RSP: fix for scripts not returning any data (test.rsp: <% 1 %>)
	
	o RSP: words in sandbox context renamed to lower the risk of collision with
	  user script words.
	  
	o New option keyword 'jobs in global section for specifying CRON-like jobs.
	  Example (see http://softinnov.org/rebol/scheduler.shtml) :
	  
	  	jobs [
	  		every 5 s do [prin "."]
	  		every day at 8:00 do %backup.r
	  		every month on #1 at 2:00 do http://softinnov.org/update.rsp
		]
		
	o Fix for a rare freezing issue on quitting Cheyenne.
		
	o RSP: fixed broken global words protection.
	
	o HTTP: Date headers are now in UTC format.
	
	o "Reset Workers" menu wasn't working in service mode. Fixed now. (Thanks Will)
	
	o SVN r4: regression bug on system port for UNIX fixed. (Thanks Will)
	
	o HTTPd: multipart file uploading code refactored. Fixes many bugs with
	  file uploading.
	  
	o Email async sending sub-system (MTA) added . 
	
	o RSP: added two new function for email support: 'send-email and 'email-info?
	
	o Cheyenne: main process ID is now exported in /tmp/cheyenne.pid on start and
	  deleted on quit. (All platforms except Windows).
	  
	o Cheyenne: logs verbosity handling refactored. Now verbosity is more consistent
	  across all modules.
	
	o New config keyword in global section: dns-server. Allow user-defined DNS server(s)
	  for MX querying. Examples: 
	  
			dns-server 1.2.3.4
			dns-server [1.2.3.4 1.2.3.5]

	o Cheyenne: encap paths are now removed from %cheyenne.r and put in a separate
	  file, avoiding users patching %cheyenne.r on each update.
	  
	o RSP: errors from %app-init are now logged properly in %trace.log.
	
	o Config: set-mime wasn't adding the new mime type correctly, fixed.
	
	o RSP: 'from special session field can appear multiple times in sesssion block, fixed.
	
	o RSP: improved script error catching involving unset! values.
	
	o RSP: fix for a rare case of response buffer corruption.
	
	o RSP: fix for locally defined databases growing connections issue.
	
	o New config keyword in global section: block. It will drop client connection if
	  some given attack patterns are found in the request (usually on request line).
	  Examples:
	  
	  		block "w00tw00t"
	  		block [
	  			"php"
	  			"w00tw00t"
	  			"/admin"
	  		]
	  
	  When one of the patterns is detected, the connection is closed at once, no response
	  is sent back to client. Additionnaly, you can add the 'ip-host keyword in block argument
	  list to block all requests using an IP address in Host header instead of a valid domain.
	  This is, almost every time, the signature of a web scanner. Examples:
	  
	  		block ip-host
	  		block [
	  			"php"
	  			"w00tw00t"
	  			ip-host
	  		]
	  
	o New config keyword in global section: allow-ip-banning. It will drop client connection if
	  the client IP has been already blocked once. Examples:
	  
	  		allow-ip-banning 				;-- default banning time is 1 minute
	  		allow-ip-banning 08:00:00		;-- ban for 8 hours
	
	o Added support for running multiple Cheyenne instances on same server (relocating internal
	  listening ports if necessary). Trace files, PID file and other files
	  (RSP sessions, MTA jobs,...) will now include HTTPd's port number in the file name if
	  server is running on port(s) other than the default one (80).
	  
	o New web socket application framework added. See %www/ws-apps/ws-test-app.r for a commented example.

	o New 'socket-app config keyword to define socket application URL mappings to be used
	  in virtual hosts or webapps sections of config file. Example: 

			socket-app "/ws.rsp" ws-test-app

	  Currently, the URL must point to a valid RSP script. The application name (2nd argument) must exists in
 	  host's or webapp's root folder under %/ws-apps sub-folder.
 	  
 	o RSP: user errors from included scripts were sent to browser even in production mode. Fixed.
	
	o HTTPd: added new upload realtime information query API. See %www/upload.html.

	o RSP: new method 'store added to Request object. It simplifies uploaded files
	  management. Example:

			request/store request/content/file
			
	  will save the uploaded file passed as "file" query parameter in default incoming folder
	  using the original name (!!watch out for security issues!!).
	
			request/store/as request/content/file %attached/
			
	  will save the uploaded file passed as "file" query parameter in %attached/ folder
	  using the original name (!!watch out for security issues!!).
	  
	  		request/store/as request/content/file %attached/my-file.bin
	  		
	  will save the uploaded file with a forced name (original name needs to be saved
	  separatedly if needed).
	  
	o HTTPd: added support for returning a file! name from a worker process as 
	  response. Enables sending a file from filesystem without reading it in memory
	  in a worker process. Example(RSP, could work in CGI too):
	  
	  		response/buffer: %/c/www/movie123.avi		;-- use absolute paths preferably
	  		
	  The mime type will be set depending on file extension or you can force it using
	  a Content-Disposition header. Example: 
	  
	  		response/buffer: get-modes %file123.tmp 'full-path		;-- dynamically lookup full path
			response/set-header 'Content-Disposition  {attachment; filename="movie123.avi"}
	  
	  Double quotes are mandatory around filename's value.
	  
	o UniServe: fixed a bug with internal DNS resolution cache querying.
	 
	o Worker tasks: cleaned-up command line arguments.
	  
	o New config keyword: 'locals added. It allows to declare domain or application specific
	  local parameters that will be passed to worker processes. The content is free-form,
	  just keep it as short as possible for performances and avoid using plain REBOL code to
	  keep the config file clean. Example:
	   
	  		locals [
	   			config-path		%private/config/
	   			logo-image		%img/logo3.png
	   			...
	   		]
	   		
	o RSP: new 'on-database-init event (to be used in %app-init.r). It's called when a new
	  webapp instance is called and makes the first database access. Typical usage is to place
	  there database cache settings (db-cache/define API function).
	  
	o RSP: fixed a bug in db cache synchronization making some internal timeout value leak 
	  between sessions.
	  
	o RSP: relaxed event declaration in %app-init.r, now you can define only the events you
	  use, no need to add them all anymore.
	 
	o CGI: environment variables now sanitized after each request (not sure it is necessary).
	
	o HTTP: bad time formatting in HTTP logs for negative timezones fixed.

	o RSP: optimized <%=...%> evaluation, now NONE values will be silently ignored instead of
	  being printed out.
	  
	o RSP: internal change to make database connection port accessible (for RSP database API
	  improvement).
	  
	o RSP: fix for 'do-sql error when used from outside of a webapp context.
	
	o New config keyword in global section: pid-dir. Allows to relocate Cheyenne's PID file
	  from %/tmp/ to any other folder. Requires a file! argument.
	  
	o Cheyenne SVN revision number now included in the 'Server response header for
	  encapped binary revisions.
	  
	o (UNIX) Added a new boot option: -V or --version. Displays Cheyenne's version and quits.
	
	o (Windows) Cheyenne's version is now displayed in the tray icon help message.
	
	o RSP: debug mode extended to display tail of trace.log file using a new [show trace] button
  	  on the RSP debug bar.
  	  
  	o RSP: debug bar look improved, menu horizontal alignment fixed, direct link to RSP API
  	  online documentation added. RSP errors are now displayed in an overlay popup instead of
  	  being inlined in the page.
  	  
  	o RSP: debug bar javascript code footprint reduced to a single object: rspdbg.
  	  
	o RSP: new API functions: debug/on, debug/off, debug/options. Switches on or off, the debug mode
	  for the current RSP script. The 'options function sets mainly displays options. Example: 
	  
	  	   debug/off				;-- disables debug mode for the current RSP
	  	   debug/on					;-- forces debug mode for the current RSP
	       debug/options	[...]	;-- set debug mode options
	       
	       current options: 
	           o lines: integer!		 ;-- number of lines to display from the trace file
	           o colors: [color1 color2] ;-- font and bg colors for trace file display
	           o error: 'popup | 'inline ;-- controls how RSP errors are displayed
	           o ip: tuple!				 ;-- restricts debug mode to requests coming from
	                                     ;-- this client only
	  
	o RSP: new API function: debug?. Returns TRUE if debug mode is active.
	
	o Config: 'debug config keyword definition extended to accept an optional block of parameters.
	  See 'debug function description for parameters list.
	  
	o RSP: session/start now returns the session/active? flag as result (proposed by Carl).
	
	o (UNIX) Added a new boot option: -h or --help. Displays the command line syntax help
	  and quits.
	  
	o RSP: Improved function 'validate to accept default values for optional parameters when
	  using the /full refinement. Example: 
	  
	  		validate/full [
			    name	string!  *			;-- mandatory parameter
			    code	string!  -			;-- optional parameter 
			    size	integer! 0			;-- optional parameter with default value
			    country string! "USA"		;-- optional parameter with default value
  			]
  	  
  	o RSP: now plain REBOL scripts can also be run by the RSP engine! Code caching and RSP API
  	  is fully available (remember to BIND the RSP handler to .r files in httpd.cfg).
  	  
  	o RSP: new RSP API function: emit. Does a REDUCE on its argument before APPENDing to
  	  response/buffer. It's a shortcut for [print reduce].
  	  
  	o RSP: added new RSP syntax for emit-action : <%? ... %>. Does the same as 'emit, but
  	  inlined in a template page. Example :
  	  
  	  		<%? now/date " " now/time%>
  	   
  	    	will output: 25-Oct-2010 15:06:17
  	
  	o CGI: REBOL CGI scripts are now run as plain CGI scripts by default
  	
  	o CGI: new config keyword: fast-rebol-cgi. Forces running REBOL CGI scripts in FastCGI mode.

	o CGI: (Windows) CGI handler rewritten to fix environment variables passing.
	
	o CGI: 'set-env mapping code refactored, setup errors are now properly logged. Missing 
	  OS X support added.
	  
	o CGI: scripts errors are now logged in %trace.log file.
	
	o HTTP: fix an error when Host header is present but his value is empty.

	o HTTP: fix a rare case minor error in client closing handler.
	
	o Mod-static: better catch malformed resources filenames.
	
	o Boot: better boot message to warn against Windows Services mode "access denied" error.
	
	o RSP: now when a file is returned by response/buffer and not found, it will result
	  in a 404 and a error message in trace.log.
	  
  	  		

v0.9.19 - 01/03/2009

	o RSP: webapps config options are now correctly isolated per domains.
	
	o RSP: 'do native overloaded to bind automatically loaded scripts to 
	  the current webapp context (if running in a webapp). If don't want to bind
	  your script to the webapp, you can use :
	  
	  		do/global %file.r
	  
	o RSP: by default, all webapps are now in "production" mode. It means that
	  script errors in RSP pages are now caught and logged on server side (no
	  more REBOL errors, or broken pages sent to clients). Clients receive a default
	  generic error message. If 'debug keyword is found in webapp config options,
	  the error is passed to the client as in previous Cheyenne versions.
	  
	o Added 'error-page optional keyword in webapps definitions to set the 
	  default error page for script errors. If not defined, a default internal
	  error page will be used. Example: 
	  
	  		error-page "/myapp/sorry.html"
	
	o Config file parser: fixed an issue on locating errors in global context.
	
	o Regression fixed in %HTTPd.r when using REBOL 2.7.6+
	
	o Handling of virtual domains runnning on port <> 80 improved. Now you can
	  specify in config file, a port number attached to virtual hosts like :
	  		
	  		my.site.com:8000 [...]
	  		
	  		or even using an IP address (beware: requires double quotes) :
	  		
	  		"1.2.3.4:8000" [...]
	  		
	o Minor typos fixed in RSP API doc (Oldes).
	
	o NT-Service? function now set to NONE for /Core (Oldes).
	  
	o For 4xx response code, the connection is now kept open (keepalive). That fixes 
	  401 and 407 connection authentication issues.
	  
	o PHP support greatly improved (consider it beta). It should be now both stable
	  and scalable. (FastCGI code still needs to be optimized for performances)
	
	o New 'channels keyword in extern-app configuration block indicating the number
	  of supported parallel requests (default is 1). It has to be lesser or equal to
 	  the number of PHP processes (or threads).
	  
	o Improved mod-alias, 'alias option keyword rewrote, it now behaves like its Apache's
	  equivalent :
	  
	  		alias "/path/to/target" %script
	  		
	o If 'alias keyword is used with CGI, SCRIPT_NAME parameter will now contain the
	  alias path.
	  
	o Fixed missing seconds in log file timestamps when seconds are at zero.
	
	o Added a new config file keyword: 'disable-log. When used in a virtual host
	  config block, it disables HTTP log files output for that virtual host.
	
	o Fixed mixed log file entries when serving multiple virtual hosts.
	
	o RSP: fixed two issues with DB cached queries synchronization.
	
	o RSP: after a request, response's buffer is now correctly reset to the default
	  buffer.
	  
	o Mod-static: fixed badly formed redirection URL when parameters are present
	  (Will).
	
	o Bug fixed in request internal forwarding clean-up code (Will).
	
	o RSP: fixed an issue with localization directories having the same path in
	  different webapps (Will).
	  
	o RSP: an HTTP redirection in 'on-page-start won't evaluate the page script anymore.
	
	o CGI: mezz function READ-CGI now patched to be compatible with Cheyenne. That's
	  the right way of reading POST data in REBOL CGI scripts.
	  
	o RSP: fixed a bug in session/add when setting a block! value.
	
	o Task-handler: fixed a network error on first packet read (high load + fast hardware).
	
	o Task-handler: TCP keepalive mode activated (workaround half-closed connections).
	
	o Task-master: 
			o 'no-delay mode removed and replaced by 'keep-alive mode
			o now forks a new process as soon as one dies (not waiting for a new request)
			o fix a long standing bug in queued job module name mismatching (can happen under extreme load)
			o minor code cleanup
	
	o Uniserve: 'no-delay TCP network mode now switched off for all connections. Fixes a
	  stability issue on Vista and probably on UNIX with very high load.

	o RSP: fix a bug in 'decode-multipart when there's no file received.
	
	o UniServe: new logger service. Now all info or error logs and debug messages from
	  CGI/RSP scripts are written in %trace.log. Additionnaly, you can now log messages
	  using :
	  
	  		- debug/print msg 		; msg [string!]
	  		- debug/probe value 	; any mold-able value
	  		- ?? word				; works like REBOL's '?? function
	  		- ? msg					; alias for debug/print
	  
	o RSP: in debug mode, page generation time and SQL queries stats now added at bottom
	  of pages.
	  
	o RSP: error in events from %app-init.r now logged.
	
	o RSP: fix a rare RSP freezing issue when an error occurs in %RSP.r (for example, by
	  a user script that breaks RSP sandbox).
	  
	o RSP: sanboxing now protects from Exit/Return/Break calls made outside of a
	  function context.
	  
	o RSP: %misc/rsp-init.r file removed.
	
	o RSP/CGI: New config keyword added in global sections : 'worker-libs. It lists the
	  librairies to load when a worker process is started. An optional 'on-quit section can
	  be added to call cleanup code when the process quits. Examples :
	  
	  		worker-libs [
				%libs/mysql-protocols.r
				...
			]
		or	
			worker-libs [
				%libs/mysql-protocols.r
				...
				on-quit [
					%/libs/free-resources.r
				]
			]
	
	o Task-master: now you can reset all worker processes without stopping Cheyenne. This
	  is usefull when you need to force non-RSP/CGI files reload (helper scripts, 3rd party
	  librairies,...). 
	  
	  	Usage:
	
			Windows : tray icon -> Reset Workers
		
			UNIX : kill -USR1 <pid>	(<pid> is Cheyenne's main process ID)
	 
	 
	 o Added a -w command line option to set the worker processes number. 
	 
	   	Usage:
	   
	  		$ cheyenne -w <n>		(n [integer!] : CGI/RSP processes number)
	   
	   Use -w 0 to help debug CGI/RSP code by resetting worker processes after each request.
	   (it's like calling "Reset workers" after each request).


	 o RSP: fixed a security issue allowing access to /webapp/private/ sub-folders content.
	 
	 o RSP/CGI: fix for HTTP 'Date header not being returned in some cases.(Will)
	 
	 o RSP Sessions: fixed an issue with init flag when saving sessions on disk.(Will)
	 
	 o RSP: now you can declare folders as valid login URL.(Will)
	 
	 	Ex: auth "/admin/login/"
	 	
	 o RSP: a new session word 'from has been added. It's set to the referring URL on login.
	   After login, you can now redirect to the referring page (in case of session timeouts
	   for example).(Will)
	   
	 o RSP: a webapp can now be called without the ending slash.(Will)
	 
	 o RSP: the root "/" webapp can now be declared (needs testing).(Will)
	 	 
	 o RSP: new 'SID-domain config keyword added allowing to share sessions between
	   sub-domains.(Will)
	 
	 o RSP: now session ID can be passed as URL or POST data in addition to cookie.(Will)
	 
	 o New 'charset config keyword added. It allows to define specific charset sent through
	   HTTP headers for 'text/htlm resources.(Will)
	   
	 o RSP: Added a new function no-log in Response object. Use it to avoid writing
	   log info to disk for the current request.
	   
	   		Ex: response/no-log

	 o New 'mod-expire module for HTTPd. Allow configuring 'Expires HTTP header. 
	   See %Cheyenne/mods/mod-expire.r for more info.(Will)
	   
	 o RSP: fix in request/query-string allowing processing parameters values passed
	   through 'validate filter.
	   
	 o RSP: output of RSP scripts is now compressed (using deflate) if the client
	   supports it.
	   
	 o RSP: new method added to response object: 'no-compress. Use it to disable RSP
	   output compression for the current response.
	   
	 o Default static files memory cache now set to 4Mb accepting files up to 64Kb.
	   
	 o Mod-static: fixed a bug in Last-Modified date forming when second = 0.
	 
	 

v0.9.18 - 19/02/2008

	o FastCGI: enhanced implementation to support POSTed data larger than 64K.
	
	o 'do-events now wrapped in a loop (improves uptime)
	
	o Fix for lower/uppercase log files issues.
	
	o Fix PHP-fastcgi idle connection timeout issue.

	o Client connection will now be closed after sending a 405 response.
	  (avoids processing useless data)
  
	o Log files access errors are now trapped (improves uptime).
	
	o Fix for premature event loop exiting (was introduced in previous release).
	
	o RSP: bug fixed in accessing ressources in /public sub-folders.
	
	o RSP: fix for databases connection URL loading from config file, now attempting
	  to load from disk first, then if failed, from memory cache.
	
	o Fix for bad URLs like /path/file.ext/ crashing Cheyenne.
	  (by fixing the buggy 'info? mezz)
	
	o UniServe: Added -q to slave processes command-line.

	o Enhanced 'on-status-code support, can now be declared at domain or webapp level.
	
	o Fix for a security issue on Windows: /..%5C.. URL forms are now caught 
	  preventing an attacker from getting files out of the www root directory.


v0.9.17 - 20/12/2007

	o Cheyenne can now run natively as NT-Service. Use the systray menu to 
	  switch between service and user mode. (switching to service mode requires
	  admin rights)
	  
	o Several new command-line options have been added :
			
			-u : (Windows only) uninstall Cheyenne service (alternative to systray menu)
			-f %path/ : specify a working folder for Cheyenne's runtime files.
			
			Internal use (Windows only) :
			
			-s        : run as NT-service
			-fromdesk : executable was started from a user desktop	
	  
	o cheyenne.r boot script refactored for cleaner and more modular approach.

	o CGI handler was redefining 'read-io in a unfriendly permanent way. Now
	  you should use 'cgi-read-io if you want to read the system/ports/input from CGI
	  scripts.
	
	o Fixed an issue with FastCGI apps, now local file paths are absolute
	  instead of relative.
	 
	o Major change in modules event functions prototype, now all module events
	  are called with only one argument : 'req (the request objet). The HTTPd 
	  context is also now reachable from module's context using 'service word.
	  For example :
	  		
	  		service/conf => loaded configuration file
	  
	o RSP session timeouts can now be set per webapp or per session, from
	  config file in webapps using the 'timeout keyword or from RSP code using
	  the session/timeout property. The 'timeout keyword need a time! value.
	  Example :
	  		
	  		timeout 00:30	; session timeout set to 30 minutes
	  
	o BugFix in REBOL CGI scripts header handler introduced in previous betas.
	
	o If a 'Content-Length header is not sent by the client in a POST or PUT
	  request, now Cheyenne returns a "400 Bad Request" response.
	  
	o A new config file keyword 'post-mem-limit allows to define the threshold
	  for disk-based temporary storage of POST/PUT data instead of buffering
	  in memory (raw data of arbitrary size can now be sent with POST/PUT).
	  
	o New 'listen keyword in configuration file in 'globals section allows to
	  define the HTTPd listen ports. If the -p command line option is used,
	  it overrides the ports defined by 'listen.
	  
	o A new header 'Internal-Referer has been added to save the previous 
	  requested URL when a request is internally forwarded.
	  
	o New config keyword in 'globals: 'set-mime allows to add new mime types.
	  If the mime type is already defined, it will be replaced by the new definition.
	  Syntax : 
	  	
	  		set-mime type/sub-type .extension 
	  			or 
	  		set-mime type/sub-type [.ext1 .ext2 ...]
	  
	o Fixed PHP support for non-Windows platforms. Added a new 'delay option in
	  'extapp definition block to allow slower processes finish booting before trying
	  to obtain a connection.(This may happen on slower machines). PHP support
	  tested successfully on Windows, Linux and OSX using PHP 5.2.5.
	  
	o Minor additions to FastCGI protocol handler.
	
	o 'mod-userdir refactored :
			- cleaner and shorter code.
			- 'user and 'group keywords accept a name or integer ID.
			- task-master's slave processes are now SETUID too.
			
	o Cheyenne doesn't check anymore for a valid system/license, but now just
	  for the /Library component.
	  
	o Bug fixed (from online bugtracker) :
	
	#0010034 : Configuration: PHP execution stops working after a configuration reload  
	#0010032 : CGI: posting large amount of data fails  
	#0010026 : HTTP: protocol  http://domain.com/?a=1 get redirected to http://domain.com/?a=1/  

		

v0.9.16 - 12/07/2007
	
	o Localization framework added to RSP. API overview :
	
		- #[text] in static parts of RSP pages will be translated.
		
		- new function: say "data" : translate a string! value in the current
		  language.
		  
		- session's new 'lang variable can set the current language.
		
		- new config file options to control default language and 
		  locales resources folder.
		
	o Decode-cgi rewrote from scratch. Cleaner and 2-3 times faster than before.
	
	o RSP request params decoding rewrote. Now GET and POST parameters are unified
	  in request/content.
	  
	o BugFix for encapping %misc/mime-types file.
	
	o File upload support redesigned. Now big files (user defined threshold) are
	  directly written to disk in temporary files, instead of being held in memory.
	  The temporary files are deleted once the request is completed. So now
	  Cheyenne supports files upload up to 2Gb (R2 port! limitation).
	  
	o CGI execution extended to any scripts (not just REBOL). If found, the
	  shebang line (#!) is honored (on all platforms). Several perl scripts
	  added in %www/ folder as demo.
	  
	o Module's 'on-started event now fired only once, when multiple HTTPd instances
	  are listening on more than one port.
	  
	o New module : mod-extapp for launching and managing external applications.
	  Only the start and shutdown actions are currently supported. Load balancing
	  will be included in future.
	
	o FastCGI protocol reliability improved and some bugs fixed.
	
	o RSP-API documentation updated.
	

v0.9.15 - 20/06/2007

	o RConsole was not started by default in the previous release. Fixed
	
	o RSP: 'include function protection from infinite cycles changed. It's
	  now based on a counter (5 maximum recursive includes). It's a little less
	  cleaner than stack-based tracking but much more reliable (avoids matching
	  paths and targets).
	  
	o HTML.r library rewritten from scratch. Now, faster and more conforming to 
	  standards (Full range of Latin1 entities supported). Fixes URL-encode bugs.

	o BugFix for command line parsing in encapped Cheyenne on Linux.
	
	o Fixed an issue with 'decode-multipart in RSP.r. File upload should work ok 
	  again.
	  
	o Added a new global function : 'rsp-log value. Outputs values in console for 
	  debugging RSP scripts. Works as 'probe.
	  
	o Reloading config file now supported. Running sessions and client connections
	  survive to the reloading process (needs some additional testing). Activating
	  config file reload is done using:
	  
	  		- (Windows) "Reload Config" menu option in systray icon.
	  		- (UNIX)     kill -HUP pid
	  		
	o UNIX signals SIGINT,SIGQUIT,SIGTERM now caught to allow cleaner exit and last
	  minute actions. Triggers the new 'on-quit event for HTTPd modules.
	
	o HTTPd internal events (not phases) refactored to be more cleaner. New module's
	  events added:
	
			- 'on-started:	when Cheyenne starts.
			- 'on-reload:   before a config file reload happens.
			- 'on-reloaded: after a config file reload happens.
			- 'on-quit:     when Cheyenne is about to stop and quit.
			
	o RSP sessions can now be made persistent (can survive to a server complete restart).
	  This option is controlled by a new config keyword: 'persist. Usage is :
	  	
	        persist [sessions]    ; other flags can be added at will
	        
	o BugFix in session cookie handling for web-apps using 'auth mode. Now the cookie
	  is sent on the 302 redirection to the login page avoiding the creation of a 
	  "shadow session" that will never be used. 
		  
	o FastCGI is under heavy work so mod-fastcgi is commented in config file to avoid
	  fastcgi startup. If you want to play with PHP, just uncomment the line.


v0.9.14 - 09/06/2007

	o response/forward improved : 
		- fully supports URLs as argument (can now forward to another virtual host).
		- URL validity check (must have an explicit target).
		- protection against cycle.
		
	o Command line option -p extended, now you can specify several listen ports 
	  separated by a comma (ex: -p 80,10443).
	  
	o New command line option -e : load and initialize Cheyenne without entering the
	  event loop (needed for embedding Cheyenne in third party apps).
	  
	o Added a new experimental module: mod-embed. Purpose is to allow easy Cheyenne
	  integration in third-party REBOL applications that require an embedded web
	  server. (Uncomment mod-embed in httpd.cfg file to activate it)
	  
	o Added %embed-demo.r file to show a sample of the mod-embed usage and API.
	  
	o RSP: <% without %> eats all the memory. Fixed.
	
	o URL-encoded request values were not parsed correctly. Fixed.
	
	o RSP: fixed a typo in 'decode-params blocking the multipart data decoding and
	  also a word ('type) leaking in GC.
	
	o UniServe's service startup refactored to be more flexible.
		

v0.9.13 - 06/06/2007

	o Session cookie management refactored. Cookies are now cached in memory. 
	  Fixes all issues related to timezone.
	  
	o HTTPd request pipeline refactored. It's now more reliable, little faster and 
	  able to handle extreme situations (stressing with FasterFox). Several core parts
	  of Cheyenne have been touched, so watch out for regressions.
	  
	o Added 'forward method to RSP's Response object (now possible thanks to the 
	  new pipeline engine).
	  
	o Internal modules API changed : 'deferred? property removed (not needed 
	  anymore with new pipeline).
	  
	o Added 'on-status-code option in config file (see example in %httpd.cfg).
	  
	o do-sql now catches internal errors, so they can be more easily located in 
	  calling context.
	  

v0.9.12 - 04/06/2007

	o do-sql function improved to support RT's DB drivers. /flat refinement is 
	  supported now too. ODBC insert error fixed too.
	
	o RConsole prompt changed to "Server>"
	
	o CGI's 'path-info now returns the request URL.
	
	o Fixed a bug in RSP session destruction potentially corrupting the internal 
	  session list and giving weird results or behaviour.
	  
	o Fixed a timezone computation bug that was setting incorrect expire times for 
	  session cookies, resulting in unstable behaviour. All platforms except Windows.
	  
	o Small patch to parse-request-line func in HTTPd.r to be more 'mod-rewrite 
	  friendly.