The asiolink library is intended to provide an abstraction layer between Kea modules and the socket I/O subsystem we are using (currently, the headers-only version of ASIO included in Boost). This has several benefits, including: - Simple interface - Back-end flexibility: It would be relatively easy to switch to any other asynchronous I/O system. - Cleaner compilation: The ASIO headers include code which can generate warnings in some compilers due to unused parameters and such. Including ASIO header files throughout the Kea tree would require us to relax the strictness of our error checking. Including them in only one place allows us to relax strictness here, while leaving it in place elsewhere. Some of the classes defined here--for example, IOSocket, IOEndpoint, and IOAddress--are to be used by Kea modules as wrappers around ASIO-specific classes. Logging ------- At this point, nothing is logged by this low-level library. We may revisit that in the future, if we find suitable messages to log, but right now there are also no loggers initialized or called.