Releases: Ericsson/libpaf
v1.1.3
Release v1.1.3 includes the following improvements:
Certificate Revocation
Starting in v1.1.3, libpaf supports checking certificates against one or more certificate revocation lists (CRLs). The domain file may optionally contain a key tlsCrlFile, which points to a CRL bundle in PEM format. For CRL checking functionality to be available, libpaf must be linked against XCM v1.9.0 or later. libpaf still supports older releases (down to v1.5.0). This feature is only relevant when the server is reached over TLS.
Multi-homed servers
libpaf v1.1.3 supports multi-homed servers. If the server's DNS name is configured in the domain file, and it resolves to multiple IP addresses, libpaf will interpret that a single server reachable via multiple IP addresses. The list of IP addresses retrieved from DNS will be scanned (i.e., connected to) until a functioning connection can be established. The details of the procedure is much like "Happy Eyeballs", as described in RFC 6555. This feature is only relevant when the server is reached over some TCP-based transport.
Support for multi-homed servers relies on functionality available only in XCM versions v1.9.0 and later.
Source-based Routing
With this release, libpaf allows specifying the source IP address and/or source TCP port to use when contacting a particular server in the domain file (using a new localAddress field). This feature may be useful in scenario where source-based routing is used.
Other Improvements
- Work around false positive maybe-uninitialized warning in GCC 11.3.
- Various minor improvements of the test suite.
- Drop support for XCM API versions older than v1.5.0.
For details concerning the domain file-related changes of this release, consult the API documentation:
https://ericsson.github.io/libpaf/doc/v1.1.3/
v1.1.2
News in this release:
- Fix major bug introduced in 1.1.1, causing context fd to be always active, which in turn leads to excessive application CPU utilization.
- Fix domain file read race, for cases where the domain file was updated in a non-atomic manner.
- Provide gettid wrapper for pre-2.30 glibc versions.
- Avoid compiler warnings causing production build failures.
The API documentation and user manual for this release can be found at:
https://ericsson.github.io/libpaf/doc/v1.1.2/
The API/ABI version remains unchanged.
v1.1.1
This release contains a serious bug. Use 1.1.2 or later instead.
News in this release:
- Add possibility to specify network namespace in domain configuration.
- Fix negative select timeout in Python test suite.
- Fix domain file example.
- Fix misleading connection establishment trace message.
- Add support for newer LTTng versions.
- Reorganize printf functions.
- Properly NUL terminate large log messages.
- Enable more compiler warnings.
- Fix faulty subscription test.
- Fix subscription filter code buffer overrun. The string validated was provided by the application (over the <paf.h> API), and thus bug fixed did not constitute a protocol-level vulnerability.
The API documentation and user manual for this release can be found at:
https://ericsson.github.io/libpaf/doc/v1.1.1/
The API/ABI version remains unchanged.
v1.1.0
News in this release:
- A new API call paf_set_ttl() is introduced, allowing a user application to override the default TTL. This change is purely a library-internal affair, and does not affect the Pathfinder wire protocol (which already supported per-service TTLs).
- Updates in the Python API to allow access to paf_set_ttl().
- The 'domain' field in the paf_debug and paf_error LTTng tracepoints is renamed 'context', to more accurate reflect how it's used.
- Improved subscription-related traces.
The API/ABI version is now 0.1.
v1.0.1
This release contains the following changes:
- New, alternative JSON-based domain file format and per-server TLS configuration.
- Adoption of the "new" XCM API for non-blocking I/O (i.e. xcm_await() in XCM API 0.13).
- Improved JSON error reporting for protocol-level errors.
- Documentation for tracing, domain-to-server mapping, service TTL and server connection reestablishment configuration.
- Reading /dev/urandom is replaced by getentropy() calls for accessing the kernel random number generator (RNG). getentropy() requires at least glibc 2.25 and kernel 3.17.
- Detachment timeout is added to handle unresponsive servers.
- Bug fix: avoid using uninitialized data during filter syntax validation.
XCM API v0.13 or later is now required to build libpaf. To allow for per-server TLS configuration, API version 0.16 or later is needed.
libpaf API/ABI stays at version 0.0.
First public release
This is the first public release of the Pathfinder client library.