Releases: SolidWallOfCode/libswoc
Twenty Something
Primarily an updated for C++ 20 compatibility. There are some other fixes to IPNet
and IPMask
for edge cases in computing addresses from instances, along with deprecation of the lower_bound
and upper_bound
methods. These were confusing in other classes so as long as I was tweaking I made that update.
File it, Danno
Mostly file related changes.
- Additional functions for
file
such ascreate_directories
,remove_all
,remove
- Changed
modify_time
tolast_write_time
for compliance. The former is now deprecated. - Changed time point type to
swoc::file::file_time_type
for compliance. - Added
swoc::file::file_type
for compliance. - Meta: added
eraser
meta-function to help with templating overloads withmeta::case
. - Added
unique_malloc
to hold memory frommalloc
like aunique_ptr
does fornew T
. - clang-16 fixes.
Retroville
Add back some deprecated methods on IPEndoint
.
Peanut Gallery
Minor changes from customers.
- Put
MemSpan::view
back and deprecate it. - Fix issues with pkg-config files for CMake.
- Add
IPSpace::iterator::payload
method.
And the format was over the void
- Better control of
Errata
formatting. empty()
method for IP address containers.IPRangeSet
iteration.- Better support for constructing / assigning singleton ranges.
Convertible
The primary changes
- IP address types are more inter-convertible with additional constructors and assignments.
- More support for
sockaddr_in
andsockaddr_in6
. - Range parsing was loosened so the separator can have whitespace.
- Address parsing ignores leading and trailing whitespace.
bwappend
- likebwprint
but appends to the string.
Spanner in the memory works
The biggest changes are for MemSpan
.
- Better
const
correctness. - Construct from generic containers.
- Memory alignment support for
void
spans.
Other changes
- CMake: better install, path fixes.
- improved pkg-config support.
Home on the Range
A number of minor improvements based on field use.
- Added
IPRangeSet
class. This is a wrapper onIPSpace
which eliminates the payload, similarly to howstd::set
is a wrapper forstd::map
. There are many uses cases where no payload is required. - feature request. - Added
const void
specialization forMemSpan
. This provides additionalconst
correctness and safer implicit conversions.MemSpan<const void>
becomes the universal type (any typeMemSpan<T>
will implicitly convert to this type). This more closely models pointers. - feature request - A bit of helper types for self contained
MemArena
. - Added missing support for printing
IPSrv
. - Added range intersection checks to
IPSpace
- feature request. - Added
family
method toIPRange
triad. Can't believe that wasn't already there. - feature request - Some minor comment / documentation cleanup.
At your service
The primary change is the addition of the IPSrv
classes. There has been a lot of pressure to do more with address / port pairs in Traffic Server therefore this class triplet was added to make supporting those easier.
Other changes:
- Fix
empty
bug inVectray
. - Comment clean up.
- Better
const
support inIPSpace
. - The "swoc_ip.h" header was split in to multiple headers due to size.
- Byte ordering issues in
IP4Addr
andIP6Addr
fixed. - IPv4 address parsing extended to cover archaic cases supported by
inet_aton
. - Header "bwf_fwd.h" cleaned up.
Lexicon: By the names
Minor release which adds name iteration to Lexicon
. This allows iteration of secondary names in addition to the current ability to iterate over
values which provides the primary names. An example of parsing a host file using Lexicon
is added, which enables looking up an address for a name or a name for an address.