File Release Notes and Changelog
Release Name: 2.0.2
Notes:
API changes to remove the 'pcap' prefix from some methods and accessors.
Fixed issues with Pcap.GetAllDevices() that was producing exceptions.
Re-enable checksumming of TCP and UDP packets thanks to patches from Tamir Gal and Chris Penrose.
Changes:
v2.0.2 - 20090227
- Rename some methods, accessors and variables to remove the 'Pcap' prefix.
It doesn't seem useful to keep this prefix since the classes and assembly are
clearly named as being SharpPcap or Pcap.
- API breaking changes due to renaming (there are others that aren't in
this list)
* PcapDevice.PcapOpen() -> PcapDevice.Open()
* PcapDevice.PcapClose() -> PcapDevice.Close()
* PcapDevice.PcapOpened -> PcapDevice.Opened
* PcapDevice.PcapStarted -> PcapDevice.Started
* PcapDevice.PcapDescription -> PcapDevice.Description
* PcapDevice.PcapName -> PcapDevice.Name
* PcapDevice.PcapStartCapture() -> PcapDevice.StartCapture()
* PcapDevice.PcapCapture() -> PcapDevice.Capture()
* PcapDevice.PcapStopCapture() -> PcapDevice.StopCapture()
* PcapDevice.PcapGetNextPacket() -> PcapDevice.GetNextPacket()
* PcapDevice.PcapSetFilter() -> PcapDevice.SetFilter()
* PcapDevice.PcapSendPacket() -> PcapDevice.SendPacket()
- Added PcapDevice.Addresses, this goes along with PcapDevice.Name, .Description and
.Flags to provide visibility into the PcapDevice's underlying PcapInterface
- Added accessor, PcapDevice.Interface, to enable the user to retrieve the PcapDevice's
interface. Enables user to get the ip/hardware/etc addresses that the PcapDevice is
associated with. Suggestion by Riyaz Ahemed.
- Integrated a patch from Chris Penrose
* Re-enable checksumming for UDP
* Remove duplicate IPPacket.IpHeaderLength property, switch code to use the
existing IPPacket.IPHeaderLength property
* Add additional checks to EthernetPacketTest.cs
* Improve IPv6Packet test to be easier to extend packet checking
- Added comparison to known checksum values, extracted from wireshark, to
IPv6PacketTest.TCPChecksumIPv6
- Integrated a patch from Tamir Gal
* Fixes IPv4 and IPv6 checksumming and adds unit test case for IPv6 checksum
* Int64RangeTest cases
* The ability to create an IPPacket from scratch
* Simplifies the OnesComplement code
* Re-enabled the checksum tests in PacketsTest.cs
- Remove unnecessary stuff from the SharpPcap namespace by hiding the
PcapUnmanagedStructures by moving from a namespace of
SharpPcap.PcapUnmanagedStructures to putting the structures inside of an internal
class named PcapUnmanagedStructures. Switch some methods from public to internal so
they are hidden like the unmanaged structures now are.
- Improve PcapAddress by introducing a Sockaddr container class. Enables handling of
hardware addresses that were previously confused and parsed as IP addresses and also
resolves a user reported issue with unknown sockaddr.sa_family of 0 by treating this
case as unknown.
- Refactor checksumming code into Packets/Util/ChecksumUtils.cs
- Set 'svn propset svn:eol-style native' on all .cs files so we don't have line ending
conflicts between Windows and Linux.
- Have ToColoredString() and ToColoredVerboseString() overrides call the base
instances of the same methods. This ensures that full output is produced from each
packet.
- Introduced 'struct sockaddr_in' and modified Pcap.GetPcapAddress() to use sockaddr_in
for IPv4 addresses. Previously the code was incorrectly attempting to extract the
address from the sockaddr directly. Fixes a user
reported bug where IPv4 addresses are displayed incorrectly from PcapDevice.ToString().
- Modifed 'struct pcap_pkthdr' to contain a proper 'struct timeval'. Fixes a bug where
64 bit platforms would see crashes when reading packets from a PcapOfflineDevice. Crash
was due to a segfault because the pcap_pkthdr size differed from that of the platform and
the packet size was coming back as some large and invalid value. The subsequent
marshalling of the packet data would be out of the range of data and would
produce the segfault.
- Fixed a few of the examples in the html documentation.