I've just made a new round of releases.
Changes WRT the previous version are:
* NET.SOCKETS: TCP socket options for Linux and FreeBSD have been added,
so now you can set options like TCP_MAXSEG and TCP_NODELAY
* NET.SOCKETS: calling BIND-ADDRESS on active sockets now works,
although probably it is seldom needed
* NET.SOCKETS: the function MAKE-SOCKET have been renamed to
CREATE-SOCKET, and an implementation of MAKE-SOCKET compatible with
Allegro 8 has been added basically you can now do something like this:
(make-socket :address-family :internet :type :stream
:connect :passive :reuse-address t
:local-host host :local-port port)
* NET.SOCKETS: it is now possible to specify an active socket's external
format in MAKE-SOCKET and setting it through (SETF EXTERNAL-FORMAT-OF)
works better; accepted values are:
- keywords: either :default or the name of an encoding, :utf-8 or
:ascii for instance
- lists specifying the encoding and the end-of-line flavour(:unix,
:mac or :dos): '(:utf-8 :line-terminator :dos)
- EXTERNAL-FORMAT structures, as returned by IOENC:MAKE-EXTERNAL-FORMAT
* a modified version of CL-SMTP has been added in package NET.SMTP-CLIENT
the system depends on CL-BASE64 and has only one external symbol: the
function SEND-EMAIL
* NET.SOCKETS: the INVALID-ADDRESS condition has been eliminated, the address
conversion functions(like DOTTED-TO-VECTOR, VECTOR-TO-COLON-SEPARATED ...)
now signal only TYPE-ERROR or PARSE-ERROR
* IO.MULTIPLEX: EVENT-DISPATCH has been improved, and two more functions
have been exported: EXIT-EVENT-LOOP and EVENT-BASE-EMPTY-P(which
returns T when no events are being monitored by an event base)
A special variable *MAXIMUM-EVENT-LOOP-TIMEOUT* has been exported: it
serves to limit the poll time of the event loop in case a thread other
than the one of the event loop accesses the event base. Defaults to
1 (in seconds) but can also be bound to NIL which means no timeout(or
infinity)
--
(sign :name "Stelian Ionescu" :aka "fe[nl]ix"
:quote "Quidquid latine dictum sit, altum videtur.")