---------------------------------------------------------------------- Changes in 1.1.1 Bug fixes: - FastCGI: In previous versions, output > 64K could not be sent in one output operation. This is now fixed. ---------------------------------------------------------------------- Changes in 1.1 ---------------------------------------------------------------------- Bug fixes: - Netmime.write_mime_message: The [crlf] argument is correctly passed to recursive invocations of this function. One can now print multi-part messages with crlf:false. - PCRE: Newer versions of the library raise Not_found instead of returning "" when get_substring does not have a matching string. This turned out to be a problem in Netencoding.Html. It is now fixed. - FastCGI: In previous versions it was not possible to POST larger data blocks. This is now fixed. Addition of smtp: - New library component smtp, a simple SMTP client protocol processor. (A contribution by Pierre Habouzit.) Addition of nethttpd: - The library nethttpd implements a full-fledged HTTP server. (This work was possible because Baretta s.r.l. sponsored it. Thank you, Alex.) - New module Nethttp in netstrings for basic HTTP types and parsing/printing. A number of types have been moved from Netcgi_types and Netcgi_env to this module. (But the types are still also defined in their old locations.) - Extensions of cgi_environment: Methods cgi_properties, cgi_request_uri, set_status, and log_error. - Note that nethttpd is licensed under the terms of the GPL, while the rest of the library is still under the libpng/zlib license. So we have now a split license. ---------------------------------------------------------------------- Changes in 1.0 ---------------------------------------------------------------------- Only bug fixes and improvements to ease debugging of problems: Mail infrastructure: - One can now select a single LF as line terminator to write mail messages. This is the default when Netsendmail.sendmail pipes messages to the (external) MTA. FastCGI: - Improved exception handling. Low-level errors are signaled by the new FCGI_Error exception. CGI: - Many exceptions explain in more detail what is going wrong. ---------------------------------------------------------------------- Changes in 0.98.1 ---------------------------------------------------------------------- Two bug fixes: - Improved fastcgi compatibility, works now also with lighttpd - Quoting errors in Neturl. ---------------------------------------------------------------------- Changes in 0.98: ---------------------------------------------------------------------- ********************************************************************** * IMPORTANT: There is one API change that is incompatible with * * previous versions of ocamlnet. * ********************************************************************** Incompatible Change: the method "input" of the object channels signals the end of the channel in a different way. In previous versions of Ocamlnet, the return value 0 was used. Now the exception End_of_file is raised. - This change was necessary to make Ocamlnet compatible with a recent recommendation about object channels in O'Caml in order to improve inter library compatibility. - This change may cause that programs or libraries using ocamlnet fail. The symptom is usually that the running program stops with the uncaught exception "End_of_file". The fix is to catch this exception when the "input" method is called, e.g. try ch # input s k l with End_of_file -> (* Here put the action for end of file, e.g. return 0 *) 0 It is known that the PXP library is affected by this problem: Versions up to 1.1.6 and up to 1.1.94.2. Further changes: The legacy Cgi module is no longer built by default. One can still create it by -enable-compatcgi. Bugfixes in Netconversion's cursor implementation. It is now better specified, and the corner cases are handled in a better way. Bugfix in Mimestring.write_value: Folding of long encoded words is now correct. Bugfix in Netencoding.QuotedPrintable: Soft line breaks are added when lines would become too long otherwise. Uses CRLF as line separator in output now. Bugfix in Nethtml: In some rare cases, end tags were handled incorrectly. Addition: In Netchannels, there are now delegation classes. Useful if one wants only to redefine individual methods, and not whole classes. Addition: Netchannels.lift_in and lift_out is a simplified interface to lift a class from raw_in/out_channel to in/out_obj_channel. Improvement: Netmime.basic_mime_header avoids unnecessary modifications of the order of existing header fields. It is also faster. Additions: Mimestring.split_mime_type, split_uri. Netbuffer.add_char, insert_string, insert_sub_string, insert_char. Addition: Netulex is a support module for ulex Improvement: For bytecode, ocamlnet includes now "accelerators", i.e. C implementations of some time-intensive auxiliary functions. Currently, the character set conversions from ISO-8859-1 and from UTF-8 are accelerated. Enhanced Netsendmail module: It is now possible to create much more complicated mails, e.g. multipart/related mails. Improvements in Neturl: New function parse_url automatically selects the URL syntax. Support for a lot of new URL schemes. Enhanced URL syntax: Support for userparam, and the prevention of relative URLs. Added charset CP-1047 (= Latin1 as EBCDIC). Added ocamldoc to module interfaces, including a lot of tutorials. ---------------------------------------------------------------------- Changes in 0.97.1: ---------------------------------------------------------------------- A single bugfix: netmappings_min.{cmx,o} are installed. ---------------------------------------------------------------------- Changes in 0.97: ---------------------------------------------------------------------- This is a bugfix release. Ocamlnet can now be built when only vmthreads are supported. Furthermore, there is experimental support for fastcgi (contributed by Eric Stokes). ---------------------------------------------------------------------- Changes in 0.96: ---------------------------------------------------------------------- Netconversion: A lot of changes, more or less I have rewritten this module. First, the new module is _much_ faster, you will really notice it. Second, there are a number of new features: - There are now cursors. Cursors are pointers into encoded strings that can be moved by multiples of characters (not bytes). - There are a number of string functions that are implemented on top of cursors. For example: ustring_length counts the characters in a string; ustring_sub extracts a substring. - The Japanese encoding EUC-JP is fully supported. - The conversion tables are now loaded at runtime. Optionally, the old method of linking them into the executable is still available. ---------------------------------------------------------------------- Changes in 0.95: ---------------------------------------------------------------------- Several bugfixes in the jserv modules. There is now a jserv property "ocamlnet.https" to set that the server assumes the HTTPS protocol. New jserv config options js_idle_worker and js_idle_master to perform idle callbacks when nothing is to do. ---------------------------------------------------------------------- Changes in 0.94: ---------------------------------------------------------------------- There is now a preliminary manual (doc/intro/html). Netchannels: raw_input_channel/raw_output_channel stuff has been improved. Netstreams: class input_stream: The ~len argument is interpreted correctly. Netconversion: Minor fixes Netcgi: Support for the HEAD method. Workaround for bug in IE when the cookie value is the empty string. ---------------------------------------------------------------------- Changes between 0.92 and 0.93: ---------------------------------------------------------------------- Netbuffer: Large buffers are better supported, especially on 32 bit platforms. Netconversion/Netmappings_*: Added ISO-8859-16. There is now an intermediate format for netmappings that does not depend on the current O'Caml version. There is now a pipeline class for character conversion. `Enc_subset is new. Netencoding: Html.encode and Html.decode are now available for other encodings than ISO-8859-1. Nethtml: encode and decode are now available for other encodings than ISO-8859-1. The HTML parser can cope with such other encodings, too, provided that they are ASCII-compatible. Netmime: The ~strip argument is available again. Netstream: The interpretation of the ~len argument of the class input_stream has been fixed. Netstring_pcre: Fixed bounded_split and split. Netcgi_jserv: Works now under mod_jk, too. Support for the `Process_pool model (pool of preforked processes)