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.
