[Sep 13 2009] * ADDED: Process HTTP DELETE, OPTIONS and TRACE methods. Torbjörn Lager. [Aug 27 2009] * FIXED: JSON Mimetype handling. Matt Lilley. [Aug 25 2009] * ENHANCED: Made the detection of JSON more flexible. * ENHANCED: JSON indentation handling. Matt Lilley. [Aug 21 2009] * ENHANCED: Bug#414: Get rid of pool/4 in HTTP request structures. Lourens van der Meij. [Aug 18 2009] * CLEANUP: Bug#413: Complete 'make distclean'. Feliks Kluzniak [Aug 16 2009] * DOC: Provide documentation of http_dispatch.pl through PlDoc * ADDED: http_redirect/3 to simplify writing redirect handlers and enhance the reflexive capabilities of the HTTP server. [Aug 14 2009] * ADDED: Allow grouping of HTTP parameters * ADDED: Support disjunctive types in HTTP parameter handling * CLEANUP: Use meta_predicate for json_convert.pl [Aug 13 2009] * ADDED: type nonneg to http_parameters/3. * ADDED: PlDoc wiki to handle references as module:name/arity. * ADDED: Allow hooking http_parameters type checking and conversion. * ADDED: &(Int) is written as Int; in html_write. Clarified the documentation. * ADDED: Types list(Type), boolean and atom to http_parameters/3. [Aug 12 2009] * ENHANCED: Better handing of \[...] in cross-referencer [Aug 10 2009] * FIXED: Properly deal with external resources * FIXED: Module-handling of body//1 and head//1 hooks in html_write.pl * FIXED: Actually handle timout of the threaded HTTP deamon. The connection is now dropped after 60 seconds inactivity of the client. * FIXED: HTTP server DoS if the clients sends an empty Cookie header. [Jul 21 2009] * MODIFIED: Make initialization/1 ISO compliant This patch is a modest cleanup to the implementation of '$load_file'/3 from init.pl and provides an ISO compatible implementation of initialization/1. This executes the argument goal *after* loading the file rather than when encountering the directive. Often this makes no difference, but notably load_foreign_library/1 is an exception. Therefore we added use_foreign_library/1,2 that act as a directive and provides proper integration with saved-states automatically. Loading code using initialization(load_foreign_library(...)) will load the library immediately and issue a warning. See initialization/1,2 for details and further hints for dealing with possible compatibility problems. [Jul 1 2009] * ADDED: Allow \-escape inside html(\List). * ADDED: Return the fact that a handler is a prefix handler in http_current_handler/3. * ADDED: Allow for http_handler(root(find/concept), ...). I.e., allow for component/component without quotes, [Jun 29 2009] * FIXED: http_currect_session(-, ?) did not generate (all) sessions. * ADDED: http_close_session/1 [Jun 23 2009] * MODIFIED: Added option unsafe(Bool) to http_reply_file/3. This option is by default false, which causes this predicate to refuse serving files with an absolute path, a path outside the working directory or, if an alias(Path) is used, outside the root of the alias. If you want to serve such files, you must provide unsafe(true) explicitely. * ADDED: Reply with 400 Bad Request on illegal HTTP requests [Mar 19 2009] * CLEANUP: Removed all trailing whitespace from all source-files. This avoids many GIT (merge) warnings. [Mar 12 2009] * FIXED: Avoid race condition in session management. Jacco van Ossenbruggen. * MODIFIED: Renamed concat_atom/2,3 into atomic_list_concat/2,3 for compatibility. Moved the old predicates into library(backcomp). It is adviced to update your code, but 99% of the code will remain working because the old definitions are autoloaded. [Feb 27 2009] * FIXED: http_current_server/2 was broken with meta_predicate introduction. [Feb 25 2009] * ENHANCED: Use a cache for http_in_session/1 to avoid repetitive access to the CGI stream object. * FIXED: make http_current_request/1 semidet again. Added is_cgi_stream/1 for testing whether we are in a CGI context without raising an error. [Feb 23 2009] * ENHANCED: Allow the start broadcast-message of the HTTP server to throw an exception. This allows for defining additional policy-handlers as broadcast plugins. [Feb 20 2009] * ADDED: Use nlink property of stream to close the logfile [Feb 15 2009] * FIXED: Proper reply on partial content (use 206 reply; fix length computation) [Feb 3 2009] * ADDED: HTTP server support for byte-ranges of files. * ADDED: Parsing of HTTP Range field into a structured term [Jan 30 2009] * ENHANCED: HTTP error handler in formulating replies from a file. [Jan 29 2009] * CLEANUP: be careful, but to not crash on unexpected event on CGI streams. [Jan 28 2009] * ADDED: When matching a prefix-path in http_dispatch, makethe remainder of the path available through path_info(PathInfo) in the request. [Jan 22 2009] * ADDED: http_in_session/1 to find the current session but do not raise an exception if it doesn't exist. * ADDED: http_current_handler/3 to get access to accumulated options on a path [Jan 20 2009] * FIXED: ?- edit(HTTPLocation). Module-handling issue in locate/3 in http_dispatch.pl * CLEANUP: http_wrapper.pl: PlDoc and meta-predicate handler * FIXED: http_open/3: avoid leaking a socket-handle if the tcp_connect raises an exception. [Jan 9 2009] * ADDED: library(http/html_head), tracking CSS and Javascript dependencies and merging them automatically into the HTML
element. Imported from Cliopatria project. [Dec 20 2008] * ADDED: http_log_close/1 to provide for cooperation with logrotate [Dec 18 2008] * MSFIX: Accept invalid cookie options sent by Microsoft (httponly). Matt Lilley. [Nov 26 2008] * FIXED: Update HTTP header definition for a token to RFC 2616. Matt Lilley [Oct 9 2008] * ADDED: More flexible support for HTTP 503 (service unavailable) replies. [Oct 8 2008] * FIXED: drop body of HTTP 304 response [Oct 7 2008] * MODIFIED: Generalized the HTTP dispatch module authentication interface. * Instead of returning an atom representing the authenticated user, the hook must deliver a list of options that is added to the request. The new API allows for multiple authentication hooks on the same location. It is used by PlDoc to provide host access control. See doc_access.pl from the PlDoc package. [Oct 6 2008] * FIXED: Updated http_error to deal with new HTTP server [Oct 5 2008] * ADDED: Support http_path.pl specifications in http_handler/3. * MODIFIED: library(http/http_dispatch): Handler changes. :- http_handler(prefix(Path), Action, Options) is now translated into http_handler(Path, Action, [prefix|Options]) with a warning. Future versions will drop the prefix(Path) syntax as it becomes ambiguous after integrating http_path.pl with the handler declarations. * ADDED: html_write.pl: Support href(loc+[name1(value1),name2(value2)]) [Oct 3 2008] * ADDED: Support encode(Value) and describe http location handling. * ADDED: http_location_by_id/2 and location_by_id(ID) to html_write values. Suggested by Jacco van Ossenbruggen. [Oct 2 2008] * ADDED: Allow redefining the HTTP server address output of non-200 pages. * ADDED: Provide hostname in http error messages * FIXED: File descriptor leak in http session management. [Oct 1 2008] * FIXED: undefined parse_url_ex/3 in http_open.pl (deals with redirections) [Sep 30 2008] * ADDED: Support for proxy routes in HTTP session management. Also cleanup and additional tests in library(http/http_session). [Sep 11 2008] * PORT: Add AC_PREREQ to configure.h for systems that auto-select autoconf versions. After tip by Ulrich Neumerkel. [Aug 30 2008] * FIXED: use csym instead of csymf for valid HTTP fieldname characters. Edward Blake. [Aug 11 2008] * INSTALL: Remove all configure files from the git repository [Aug 5 2008] * MODIFIED: http_read_request/3 throws error on illegal request and http_wrapper/5 maps these to internal server errors. * MODIFIED: http_open/3 now raises an error if the URL is not well-formed (used to fail silently). [Jul 31 2008] * FIXED: handling setting http:chunked_transfer(never). Yves Raimond. [Jul 3 2008] * MODIFIED: Deleted the `after' option processing. Modern code can start a thread to deal with formulating a reply and start procesing after the reply has been sent. [Jul 2 2008] * ADDED: Support for HTTP 503 (service unavailable) * ADDED: Support for options chunked and spawn in http_handler/3. [Jun 27 2008] * FIXED: Read JSON reply when using chunked encoding * FIXED: Post header when using data in CGI format (used by JSON posts) [Jun 25 2008] * MODIFIED: http_get/3 using to(atom) or to(codes) perform UTF-8 decoding if the content type is declared as UTF-8. [Jul 2 2008] * ADDED: Bug#365: timeout support for the HTTP client library. Keri Harris. [Jun 16 2008] * ENHANCED: Reduce HTTP header parsing time * ENHANCED: Reduce overhead of deleting dead HTTP sessions [May 21 2008] * FIXED: atom_json_term(-,+,+): typo. Torbjörn Lager [Apr 28 2008] * ENHANCED: Perform a GC at the end of a communication with a client. Note that at that moment we have little active memory (=cheap GC), while otherwise we may remain idle for a long time with large stacks. [Apr 2 2008] * FIXED: Throw an exception in illegal input wo json_write/3. [Apr 1 2008] * FIXED: Close the server socket in http_stop_server/2. John Stewart. [Mar 28 2008] * MODIFIED: html//1 interpretation of Module:Term. Previously this acted as \(Module:Term), now it acts as Module:html(Term), interpreting an entire specification relative to a module. [Mar 20 2008] * FIXED: Make HTTP status messages work when using the xhtml dialect [Mar 10 2008] * FIXED: HTTP accept loop to deal properly with termination [Mar 9 2008] * FIXED: Various issues around JSON booleans and null. Michiel Hildebrand. [Feb 26 2008] * FIXED: Avoid error on destroyed message queue in http_stop_server/3. Ferreira Maurizio. [Feb 8 2008] * ADDED: Hook to expand HTML head material. [Feb 7 2008] * ADDED: html_receive//2 to allow for post-processing of posted messages * MODIFIED: http_post//2 now executes embedded commands delayed. [Feb 1 2008] * FIXED: html_write.pl: avoid multiple receivers for xmlns. [Jan 23 2008] * PORT: Bug#346: Allow overriding COFLAGS and CWFLAGS in package configuration. Keri Harris. [Jan 22 2008] * DOC: Applied various patches. Item#272, Ulrich Neumerkel. [Dec 22 2007] * FIXED: Write JSON newlines always as \n. Also write all control characters that have no defined escape (< ' ') as \uXXXX. Michiel Hildebrand. * FIXED: json_read/2 for strings holding double-quotes. [Dec 18 2007] * WORKAROUND: Emit no DOCTYPE header of the doctype is set to ''. This avoids a bug in Microsoft IE AJAX processing. [Dec 16 2007] * FIXED: recursive handling of lists in prolog_to_json/2. Michiel Hildebrand [Dec 15 2007] * FIXED: is_json_term/2 for pairs. Michiel Hildebrand. [Dec 13 2007] * ADDED: A predefined `head' receiver for http_post//2 and a predefined `xmlns' receiver used by xhtml_ns//2 to define XML namespaces in xhml mode. Clarified documentation of the html_write library with examples on how to deal with HTML head material. [Dec 11 2007] * DOC: various enhancement to the presentation of pldoc @keywords [Dec 7 2007] * MODIFIED: renamed library(http/http_chunked) to library(http/http_stream). Added range-limited streams [Dec 5 2007] * ADDED: library(http/http_json.pl), integrating JSON support into the HTTP libraries. [Dec 4 2007] * ADDED: library(http/json), providing (still incomplete) JSON support [Nov 16 2007] * ENHANCED: Bug#323: no longer force bgcolor=white in pagebody//1. Chris Sutton. [Nov 9 2007] * ADDED: type between(Low, High) for numerical values [Nov 6 2007] * ADDED: post/receive mechanism to modularize CSS and Javascript support in library(html_write). Documented using PlDoc LaTeX backend Oct 1, 2007 * ADDED: http_stop_server/2 to stop a running HTTP server. Sep 26, 2007 * ADDED: http_set_authorization/2 in library(http/http_open) to provide authorization defauls. * ADDED: authorization(basic(User, Passowrd)) to the options of http_open/3. Now generates a permission error for common applicable 4xx errors. Jun 21, 2007 * Avoid leaking stream handle in http_get/3 on chunked encoding. Jun 20, 2007 * ENHANCED: Support chunked encoding in http_get/3 and http_post/4 on the new http_chunked library, reducing memory usage and overhead. Jun 19, 2007 * ADDED: Support chunked encoding through library(http/http_open) based on new http_chunked library. Jun 16, 2007 * ADDED: library(http/http_chunked). Jun 7, 2007 * ADDED: http_dispatch and http_authenticate libraries. Jun 1, 2007 * FIXED: Use new predicate_indicator frame attribute for safe error handling. May 23, 2007 * FIXED: Preserve extra request-headers over redirect. Yves Raimond. May 20, 2007 * FIXED: redirection issues. Yves Raimond. Apr 12, 2007 * ADDED: .svg to mimetypes Apr 10, 2007 * FIXED: Forcing UTF-8 character set. Mar 22, 2007 * FIXED: Bug#269: time-stamp was emitted in current locale. Mar 19, 2007 * ADDED: Include name of parameter in type-errors detected by http_parameters/2. Mar 15, 2007 * ADDED: Include peer in session management for better security. * ADDED: Broadcast session start/end to allow deletion of derived data. Mar 11, 2007 * FIXED: http_open/3: send Host: