Releases: mfontanini/libtins
v4.5 release
Changes in this release:
-
Add VXLAN support (#501)
-
Add
FileSniffer
constructor taking aFILE*
(#499). -
Remove use of deprecated
std::iterator
(#481). -
Add missing
algorithm
header include (#497). -
Validate high order two bits of first dns label octet (#494).
-
Use
CMAKE_INSTALL_LIBDIR
inCONF_CMAKE_INSTALL_DIR
(#472). -
Ignore IPv6 packets with payload after one with no Next Header (#500).
-
Fix unqualified
std::move
call 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
ICMP
andICMPv6
(#426) -
Handle loops in DNS name decompression (#444)
-
Fix Windows'
interface
macro 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
gateway
andaddress_mask
(#437) -
Socket in
PacketSender::open_l3_socket
is now closed ifsetsockopt
fails (#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.h
into multiple files under theutils
directory. -
Split
internals.h
into multiple files under thedetail
directory. -
Improve compilation times by removing useless include directives.
-
Refactor
PDUOption
conversions so that heavy headers are not included in source file. -
Use
std::vector
instead ofstd::list
inTCP
,IP
,IPv6
,DHCP
,DHCPv6
,DNS
,LLC
,Dot11
andPPPoE
. -
Improve performance on
IP
,IPv6
andTCP
by compiting option sizes during serialization. -
Minor performance improvements in
DNS
. -
Refactor
RadioTap
parsing and serialization using a generic parser/writer. -
Add
BaseSniffer::set_pcap_sniffing_method
to specify whetherpcap_loop
orpcap_dispatch
should be used when sniffing. -
Added cipher and akm suites from 802.11-2016.
-
Add IPv6 layer parsing on
Loopback
packets. -
Allow serializing
Loopback
on Windows. -
Restructure CMake files removing useless
CMakeLists.txt
ininclude
paths. -
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
IPv6
next 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_POINTOPOINT
on BSD when getting broadcast address for an interface. -
Ensure TCP::OptionTypes has 8-bit range.
-
Use the first fragment as a base when reassembling
IP
packets inIPv4Reassembler
. -
Use the right flag on
Loopback
forIPv6
.
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_id
into 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
StreamIdentifier
from aStream
-
Allow configuring pcap timestamp precision
-
Allow building libtins using MinGW
-
Allow including libtins using
add_subdirectory
via 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<<
,DataTracker
andAckTracker
-
Don't always set
key_t
to 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_time
work on Windows -
Forward
NetworkInterface
argument when callingPacketSender::send_l2
-
Timestamp
overflow issue -
boost's include directories variable incorrectly used on build system
-
Configuring auto cleanup of
Stream
's server data not working -
Set
EthernetII
payload type toUNKNOWN
if there's no inner PDU -
Set payload type to 0 if there's no inner PDU in
IP
,Dot1Q
andIPv6
-
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
Dot11QoSData
has a TID != 0