Share

SharpPcap

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.