* Netplex_container: emits now backtraces if these are enabled.
* Http_fs: adding [last_response_status] method
* Rpc_client: fixing a potential endless loop when session IDs
are reused
* Rpc_client: fixing the shutdown when a TCP connection is
immediately refused, and GSS-API authentication is active.
* Netcgi_fcgi.run: no longer ignoring the sockaddr argument
(problem reported by Watanabe Masaki)
* Remove duplicate method Netpop.stat
* Build fix for netstring-pcre
* Regular expressions: The config switch -enable-pcre no
longer switches the default backend to PCRE. The default
remains Str, and only Netstring_pcre is additionally
built. The new switch -enable-full-pcre has now the
stronger meaning of also using PCRE as default backend.
New documentation page Regexp explaining this.
* Netmcore_basics.txt: more documentation for Netmulticore
* Netgzip.ml: Fixing a bug in the inflating pipe (bad calculation
of the crc)
* Netplex_mbox: implementation of a simple message box allowing
communication between Netplex components. This module does
neither need Netmulticore nor Netcamlbox, but is relatively slow.
* netcgi2-apache: fixing build against apache-2.4.
* netcgi2-apache: fixing bug that PKGNAME was incorrect
* netcgi2-apache: the directory of the OCaml stdlib is now
added via rpath to mod_netcgi_apache.so so that
libcamlrun_shared.so is automatically found
* Http_client: more liberal interpretation of the "domain" part
of authentication keys
* src/netsys/netsys_c_poll.c: Fix FD_CLOEXEC
(Guillem Jover <guillem@hadrons.org>)
* Http_client authentication: The domain for authentication
keys can be set to ["*"]. Also, port number can be omitted
in such domains.
* Http_client authentication: adding skip_challenges auth style
* Uq_engines: New [qseq_engine] class. This is the same as
[seq_engine], but it does not forward pure progress events.
The operator [++] is now backed by [qseq_engine]. This change
fixes performance bugs (e.g. Http_client had problems with
HTTP responses consisting of many chunks).
* Netmcore, Netmcore_process: also adding a function [run] in
in addition to [startup] for jobs that want to return something.
With [join_nowait] one can now get the result of the first process.
Also updated examples/multicore/create_join.ml.
* Netplex_main: new function [run], designed for compute
jobs run under Netplex regime
* Netdate: adding ISO-8601 week numbering. Fixing test suite
and some bugs
- removed obsolete file PLIST.opt (now implemented using PLIST_VARS)
* Netmcore_heap.mli: allowing to [add] bigarrays. New
function [add_string] for creating uninitialized strings on
heaps. New function [add_immutable] for retaining value sharing.
* Netsys_mem: New options [Copy_conditionally] and [Keep_atom]
for function [init_value].
* netsys_c_subprocess.c: fixing a deadlock issue
(when calling commands via the Shell library)
* Netdate: Fix interpretation of the ~localzone argument
of several functions. Now the timezone is assumed for the
target time, not the calling time
* Netdate: Adding localization
* Netconversion: Adding functions for converting to lowercase/
uppercase/titlecase, and for case-insensitive comparison
* Fix Netfs.copy: When the copy method throws EXDEV, it is
fallen back to a streaming-type copy
* Several fixes for OS X
* Daemonizer: now using a signal for waiting until the children
are up and running
* Fixes for OCaml-4.00
* Better endianness check as suggested by Matias Giovannini
* Fixing handling of `Recv_send_implied sockets in
socket_multiplex_controller
* netzip: it is now autodetected whether the camlzip library
is available under the findlib name "zip" or "camlzip"
This is an update of ocamlnet to its newest version, 3.6. Changes are:
* Netsys_sem: a new abstraction for emulating anonymous
semaphores on systems that only provide named semaphores,
like OS X. All users of semaphores inside Ocamlnet now
base on Netsys_sem.
* reimplementing Netstring_str for the case the Str engine
is used. It is now thread-safe without having to use
mutexes.
* The default is now -disable-pcre
* The module Netstring_pcre has been moved to a library of its
own, namely netstring-pcre. It is only installed if -enable-pcre
* Nethttp.Header.best_media_type: improved
(patch by Christopher Zimmemann)
* Netsys_mem.alloc_memory_pages: one can now mark the memory
pages as executable
* src/netsys/configure: disabling POSIX semaphore check
for win32
* Fixes for OpenBSD (by Christopher Zimmermann)
* Netcgi connectors (SCGI, AJP, FCGI): unifying the ~sockaddr
and ~port arguments. ~port now also assumes a loopback binding.
(Suggested by Christopher Zimmermann).
* Allowing posix_spawn again for MacOS. It turns out the
number of file actions is limited. If we are above the
limit, posix_spawn is not used.
* Ssl_exts: adding function for returning the fingerprint of
a certificate
* Https_client: new verify callback for additional certificate
checks
DragonFly doesn't define AT_SYMLINK_FOLLOW. The added patch will
appropriately disable linkat support.
No revbump necessary - this patch doesn't change the binary on systems
for which it has already built.
6 years of changes. 3.5.1 in particular has:
it is time for another version of Ocamlnet. The new release 3.5 focuses on
the system interface, and includes a long list of smaller improvements.
The system interface, Netsys_posix, is extended by:
- Support for POSIX clocks and POSIX timers (with nanosecond resolution)
- Netsys_posix.spawn usses now the posix_spawn call if present on the OS
- Adding support for pollable events (as e.g. provided by Linux via
eventfd). For other OS an emulation is available.
- Support for epoll on Linux
Note that Netsys_posix covers now large parts of POSIX realtime.
Other improvements:
- The code generator for XDR has been improved. A new switch -direct for
ocamlrpcgen can be used to generate direct mappings between OCaml values
and binary representation (in many cases). Speedups up to 50% are
possible for large XDR values.
- The new module Uq_mt allows it to access an event-driven resource from
several kernel threads (e.g. use an RPC client commonly from several
threads).
- The thread-safety of Netplex container functions has been improved.
- Netmulticore condition variables can now be polled, for better
integration into event-based programs.
- Option greedy_accepts for Netplex to support servers that accept
many connections per second. With this improvement, Netplex can
now accept more than 5000 connections/s, and assign them to worker
processes.
Last but not least there is now a new tutorial for Equeue (event systems
and engines). In particular, the section about combining Ocamlnet with Lwt
might be interesting.
The Ocamlnet project provides a collection of modules for the
Objective Caml language which focus on application-level Internet
protocols and conventions.
The current distribution contains:
- a mature implementation of the CGI protocol
- an implementation of the JSERV protocol (AJP-1.2), can be used with
mod_jserv (Apache JServ) and mod_jk (Jakarta connector) to connect
application servers written in O'Caml with web servers
- a FastCGI implementation
- a POP3 client
- an SMTP client
- a library of string processing functions related to Internet
protocols (formerly known as "netstring" and distributed separately):
MIME encoding/decoding, Date/time parsing, Character encoding
conversion, HTML parsing and printing, URL parsing and printing,
OO-representation of channels, and a lot more.
- an experimental web server component