v2.0 - Thu Jan 23 11:09:38 ART 2014 - DNSResourceRecord was removed. Now DNS records are added using DNS::Resource. - tins.h now includes ppi.h. - Done significant improvements in the speed of DNS parsing. - Added PDUOption<>::to<> which converts a PDUOption to a specific type. - Layer 3 packets sent using PacketSender::send_recv for which the answer is a different PDU type. - ICMP::gateway now uses IPv4Address. - Added support for ICMP address mask request/reply. - Fixed bug in PacketSender when using send_recv and a layer 2 PDU. The interface in which the packet was sent was not the default_interface set when the sender was constructed. - IP packets sent using PacketSender::send_recv now match ICMP responses. - Added support for ICMP timestamp request/reply packets. ICMP::matches_response now works with these types of packets as well. - Added support for reassembling of fragmented IP packets via the IPv4Reassembler class. - Fragmented IP packet's inner_pdu PDUs are not decoded now. - Added 1000ms as the default read timeout used when calling pcap_open_live. Added BaseSniffer::set_timeout to modify this parameter. - Added the --disable-dot11 configure switch. - Added support for IPSec. - Fixed bug triggered when ifaddrs::ifa_addr was null in NetworkInterface::addresses. - Added another overload of Utils::route_entries which returns the result either than storing it in a parameter. - Added ARP monitor, WPS detector, DNS queries sniffer and DNS spoofer examples. - Added another Sniffer constructor which doesn't expect the maximum capture size. - Added tins_cast as a replacement for dynamic_cast on PDUs. v1.2 - Mon oct 7 23:33:49 ART 2013 - Added BaseSniffer::begin and BaseSniffer::end. - BaseSniffer::next_packet uses pcap_loop instead of pcap_next, which doesn't work well on some linux distributions. - Added PPI PDU class. - Fixed a bug in EthernetII triggered when the size of the whole frame was lower than 60 bytes. - Added AddressRange class and IPv4Address, IPv6Address and HWAddress<>::operator/. - Added is_broadcast, is_multicast and is_unicast to IPv4, IPv6 and HWAddress. - Added is_private and is_loopback methods to IPv4 and IPv6 addresses. - Done some optimizations on TCP's constructor from buffer. - Added helper functions to Dot11Data to retrieve the source, destination and BSSID addresses. - Fixed bugs in DNS triggered when parsing MX and unknown records. - BaseSniffer::next_packet now iterates until a valid packet is found. - TCP::get_flag is now const. - The --disable-wpa2 now works as expected. v1.1 - Wed Jun 5 09:03:37 ART 2013 - Implemented std::hash specialization for IPv4, IPv6 and HWAddress<> types. - Added a RSNHandshakeCapturer class. - Added WPA2Decrypter class. - IEEE 802.11 frames are not parsed if the RadioTap FAILED_FCS flag is on. - RadioTap now calculates its size everytime it's serialized. - Splitted the dot11.h and dot11.cpp files into several files to speed up compilation times. - Added HWAddress<>::is_broadcast and HWAddress::operator[]. - Fixed a bug triggered when parsing Dot11QoSData frames. v1.0 - Tue Apr 23 20:40:57 ART 2013 - Link layer protocol PDUs now don't hold a NetworkInterface. This led to changes in their constructors. - Removed the obsolete PDU* parameter taken by several classes' constructors. - IP now sets the sender's address automatically when no link layer PDU is used. - IP, TCP and UDP now calculate the checksum everytime they're serialized. - Added PDU::rfind_pdu. - Defined several exception types. - Implemented matches_response on several protocols. - PacketSender is now movable. - Added an overload of add_option that takes an rvalue-reference in IP, TCP, DHCP, ICMPv6 and Dot11. - Added support for GNU/kFreeBSD. - Removed several deprecated methods, such as PDU::clone_packet. - Added PacketSender::send(PDU&, NetworkInterface). - Normalized the TLV options naming conventions in all of the classes that used them. - Added support for Dot1Q, STP, PPPoE protocols. - Made some important optimizations on PDUOption<>'s constructors. - Added Utils::resolve_domain and Utils::resolve_domain6 v0.3 - Thu Jan 31 16:47:27 ART 2013 - Added IPv6, ICMPv6 and DHCPv6 classes. - Added support for Loopback interfaces and the Linux Crooked Capture pseudo protocol. - Added support for IPv6 records in DNS. - Added Packet/RefPacket class. - Added support for FreeBSD, OSX and Windows. - Added C++11 move semantics to several classes. - Done a complete rewrite of the build system; it now uses libtool. - Fixed several bugs in DNS. v0.2 - Sat Oct 20 11:26:40 2012 - Added support for big endian architectures. - Simplified several interfaces. - Added IPv4Address and HWAddress class to simplify handling IP and hardware addresses. - Added NetworkInterface class to abstract network interfaces. - Added TCPStreamFollower class to follow TCP streams on the fly. - Added WEPDecrypter class to decrypt WEP-encrypted 802.11 data frames on the fly. - Added several new PDUs: Loopback, IEEE802_3, LLC, DNS. - Added support for reading and writing pcap files. - Moved to BSD-2 license.