Releases: mfontanini/libtins
v4.5 release
Changes in this release:
-
Add VXLAN support (#501)
-
Add
FileSnifferconstructor taking aFILE*(#499). -
Remove use of deprecated
std::iterator(#481). -
Add missing
algorithmheader include (#497). -
Validate high order two bits of first dns label octet (#494).
-
Use
CMAKE_INSTALL_LIBDIRinCONF_CMAKE_INSTALL_DIR(#472). -
Ignore IPv6 packets with payload after one with no Next Header (#500).
-
Fix unqualified
std::movecall warnings on clang (#488). -
Fix incorrect IP address range calculation when using /0 prefix (#484) (#486).
-
Fall back to system GTest if available (#473).
-
Fix compilation issue on android (#471).
-
Fix DNS parser reading garbage on misreported packet size (#468).
-
Fix DNS parser misinterpreting bad label size (#466).
v4.4 release
Changes in this release:
-
Add RFC8335 extended echo types to
ICMPandICMPv6(#426) -
Handle loops in DNS name decompression (#444)
-
Fix Windows'
interfacemacro colliding with uses of that identifier in the code (#458) -
Sending IPv6 packets to a link-scope destination address now uses the right interface index (#448)
-
Fix incorrect endian being used for ICMP's
gatewayandaddress_mask(#437) -
Socket in
PacketSender::open_l3_socketis now closed ifsetsockoptfails (#433) -
Fix various incorrect doxygen documentation comments (#439).
-
Fix infinite loop when querying the routing table in *BSD (#427)
v4.3 release
Changes in this release:
-
Assign a PDUType to
Dot11ControlTA(#420) -
Don't consider IPv6 ESP header a normal extension header (#374)
-
Don't include non-existing headers when installed without libpcap (#382)
-
Add
IPv6Address::is_local_unicast(#369) -
Fix memory leak in
PacketWriter(#343) -
Fix memory leaks in
OfflinePacketFilter(#343) -
Fix detection of new TCP stream (#335)
-
Introduce
TCP::has_flags(#334) -
Fix padding calculations in RadioTapWriter (#333)
v4.2 release
v4.1
New features/additions:
-
Implement IPv6::recv_response
-
Add parsing of well known IPv6 extension headers (#287)
-
Add missing operators to address classes (#275)
Fixes
-
Fix serialization for QinQ (#316)
-
Added base class access specifier for socket_close_error (#306)
-
Rewrote hw_address_to_string to not require a stringstream (#299)
-
Make RadioTapParser::skip_to_field check for end of buffer (#296)
-
Ensure local include directory comes before system. (#293)
-
Calculate IP option sizes properly (#288)
-
Add version macros in config.h
-
Don't assume IPv6 uses ICMPv6 underneath
-
Allow users to specify library install dir
-
Use Sleep windows function passing milliseconds as parameter
-
Don't use nullptr in non C++11 code
-
Ignore (possibly malformed) options after EOL (#281)
-
Don't include dot11.h in tins.h if it is not configured in the library (#277)
-
Fix memory leak in PDU's move assignment operator
-
Append padding to IPv6 options
v4.0
For a deeper look into all major changes in this version, please check this blog post.
New features/additions:
-
Add parent PDU to each PDU.
-
Removed parent PDU parameter on
PDU::write_serialization. -
Split
utils.hinto multiple files under theutilsdirectory. -
Split
internals.hinto multiple files under thedetaildirectory. -
Improve compilation times by removing useless include directives.
-
Refactor
PDUOptionconversions so that heavy headers are not included in source file. -
Use
std::vectorinstead ofstd::listinTCP,IP,IPv6,DHCP,DHCPv6,DNS,LLC,Dot11andPPPoE. -
Improve performance on
IP,IPv6andTCPby compiting option sizes during serialization. -
Minor performance improvements in
DNS. -
Refactor
RadioTapparsing and serialization using a generic parser/writer. -
Add
BaseSniffer::set_pcap_sniffing_methodto specify whetherpcap_looporpcap_dispatchshould be used when sniffing. -
Added cipher and akm suites from 802.11-2016.
-
Add IPv6 layer parsing on
Loopbackpackets. -
Allow serializing
Loopbackon Windows. -
Restructure CMake files removing useless
CMakeLists.txtinincludepaths. -
Add getter/setter for "more data" field in
Dot11Base. -
Implemented matching for ND protocol related ICMPv6 messages.
-
Add header files into CMake sources so IDE can pick them up.
-
Add MPLS "experimental" field.
Fixes
-
Fix
IPv6next header handling. Now each one contains its own type and the next type is only set during serialization for ease of use. -
Fix dhcpv6::duid_type constructor from duid_ll.
-
Use
IFF_POINTOPOINTon BSD when getting broadcast address for an interface. -
Ensure TCP::OptionTypes has 8-bit range.
-
Use the first fragment as a base when reassembling
IPpackets inIPv4Reassembler. -
Use the right flag on
LoopbackforIPv6.
v3.5
New features/additions
-
Added Utils::route6_entries
-
Allow masking IPv4/6 and hardware addresses via
operator& -
Add
IPv4Address::from_prefix_length -
Move
stream_idinto a new file and rename itStreamIdentifier -
Allow disabling TCPIP classes
-
Properly handle out of order SACKs on
AckTracker -
Move TCP data tracking into a separate class
-
Allow constructing
StreamIdentifierfrom aStream -
Allow configuring pcap timestamp precision
-
Allow building libtins using MinGW
-
Allow including libtins using
add_subdirectoryvia CMake -
Allow setting customer user data to each TCP stream
-
Allow skipping data forward in TCP streams
-
Allow attaching to already existing TCP streams
Fixes
-
AddressRange masks first address as well
-
Add TINS_API to
IPv4Address::operator<<,DataTrackerandAckTracker -
Don't always set
key_tto 0 onRSNEAPOL -
Handle MLDv1 properly on ICMP
-
Make Utils::resolve_hwaddress work on Windows
-
Interface was sometimes considered down when it was up (BSD/Linux)
-
Don't set
Dot1Q's payload type if next protocol type is unknown -
Use recvfrom on BSD/OSX when capturing layer 3 packets
-
Make
Timestamp::current_timework on Windows -
Forward
NetworkInterfaceargument when callingPacketSender::send_l2 -
Timestampoverflow issue -
boost's include directories variable incorrectly used on build system
-
Configuring auto cleanup of
Stream's server data not working -
Set
EthernetIIpayload type toUNKNOWNif there's no inner PDU -
Set payload type to 0 if there's no inner PDU in
IP,Dot1QandIPv6 -
Buffer length check issues on
Dot11QosData -
Use AF_INET6 flag when opening L3 IPv6 socket
-
Check expecter size properly on
DNS::extract_metadata -
Several unused parameter warnings
-
CCMP decryption issue when
Dot11QoSDatahas a TID != 0