Skip to content

Releases: SolidWallOfCode/libswoc

Twenty Something

11 May 23:49
Compare
Choose a tag to compare

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

08 Apr 02:23
Compare
Choose a tag to compare

Mostly file related changes.

  • Additional functions for file such as create_directories, remove_all, remove
  • Changed modify_time to last_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 with meta::case.
  • Added unique_malloc to hold memory from malloc like a unique_ptr does for new T.
  • clang-16 fixes.

Retroville

21 Mar 19:17
Compare
Choose a tag to compare

Add back some deprecated methods on IPEndoint.

Peanut Gallery

21 Mar 00:12
Compare
Choose a tag to compare

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

18 Mar 14:25
Compare
Choose a tag to compare
  • Better control of Errata formatting.
  • empty() method for IP address containers.
  • IPRangeSet iteration.
  • Better support for constructing / assigning singleton ranges.

Convertible

15 Mar 21:42
1751a33
Compare
Choose a tag to compare

The primary changes

  • IP address types are more inter-convertible with additional constructors and assignments.
  • More support for sockaddr_in and sockaddr_in6.
  • Range parsing was loosened so the separator can have whitespace.
  • Address parsing ignores leading and trailing whitespace.
  • bwappend - like bwprint but appends to the string.

Spanner in the memory works

01 Mar 18:05
a509f66
Compare
Choose a tag to compare

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

06 Jan 22:36
Compare
Choose a tag to compare

A number of minor improvements based on field use.

  • Added IPRangeSet class. This is a wrapper on IPSpace which eliminates the payload, similarly to how std::set is a wrapper for std::map. There are many uses cases where no payload is required. - feature request.
  • Added const void specialization for MemSpan. This provides additional const correctness and safer implicit conversions. MemSpan<const void> becomes the universal type (any type MemSpan<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 to IPRange triad. Can't believe that wasn't already there. - feature request
  • Some minor comment / documentation cleanup.

At your service

15 Nov 16:26
89d8432
Compare
Choose a tag to compare

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 in Vectray.
  • Comment clean up.
  • Better const support in IPSpace.
  • The "swoc_ip.h" header was split in to multiple headers due to size.
  • Byte ordering issues in IP4Addr and IP6Addr fixed.
  • IPv4 address parsing extended to cover archaic cases supported by inet_aton.
  • Header "bwf_fwd.h" cleaned up.

Lexicon: By the names

24 Aug 20:51
6b6f5c4
Compare
Choose a tag to compare

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.