################################################################################ # # Copyright (C) 2007-2010 Sly Technologies, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ################################################################################ jNetPcap Package Change Log == Release 1.3.0 (2011-04-01) == * Fixes - Fixed Bug#3240888 - WinPcapSendQueue throws BufferUnderflow exception - Fixed Bug#3226590 - Flow API not working - Fixed Bug#3226577 - Constant Pcap.LOOP_INFINATE miss-spelled - Fixed Bug#3220271 - AbstractMessageHeader parser fails - Fixed Bug#3220200 - NullPtr exception in multi-threaded pcap capture * No further changes. Code is production ready. == Release 1.3.b4 (2010-12-15) == * Fixes - Memory swings - Object finalization is replaced with java Reference cleanup. Memory is now managed through Reference and ReferenceQueue mechanism. - Various performance optimizations in JMemory and JBuffer class. Optimized memory allocation path in JMemoryPool for certain object types. - Fixed boundary check in Checksum calculation with truncated jumbo Ethernet frames. - Fixed an issue when an JMemory based object tried to peer to itself. - Fixed JMemory resize issue. - Fixed Bug#3108615 - Ethernet FCS - FCS calculation and various Ethernet header APIs that check for presence of FCS field, allow verification, calculation and setting of new FCS value. * Added - Added a new management class named DisposableGC which runs in a background system thread and schedules native memory cleanup. - Added several system properties (nio.mx, nio.ms, nio.blocksize) which affect native memory allocation, limits and DisposableGC behavior. - PcapPacket.peerAndScan - convenience method peering header and buffer to a PcapPacket object. Implements certain optimizations to perform the task faster. * Changes - Changed the format of the debug output for PcapPacket.State.toDebugString() method. The output produced is more tabular with a table heading on top. - Removed no longer used classes and directories from source such as tests/beta1.5, JReference class, JMemory.references field * Non-code changes - Added complete MANIFEST to jnetpcap.jar file, which describes version information of the jNetPcap library being used. - Changed the native and java library files names to not include full version information. The versioning is now fully accomplished through the use of jnetpcap root distribution directory instead. This allows easier switching between different versions of jNetPcap. - Updated file headers which reflects the proper copyright and license agreement (LGPL v3) - Updated all javadoc comments and tags for all classes == Release 1.3.b3 (2010-10-01) == * Fixes - Bug#3078703 - JMemory.transferTo(ByteBuffer) (array version) - Bug#3078704 - Debug message coming from Tcp header when options are parsed * Removed - org.jnetpcap.package.dissect - left over and unusable package intended for the native dissector feature which has been removed from 1.3 release - SipHandler interface - left over from analyzer feature that has been removed from 1.3 release * Modifications/Updates - org.jnetpcap.protocol.voip - updated javadocs, cleaned up warnings on all the classes in this package == Release 1.3.b2 (2010-09-26) == * Fixes - Bug#3062026 - Scanner.reloadAll() in JPacket.scan() - Bug#3062029 - Memory leak in native scanner reloadAll() tables - Bug#3062031 - @Bind method with multiple same headers, gets wrong header - Bug#3062035 - AnnotatedMethod doesn't open up method access perm - Bug#3062037 - Checksum.pseudoUDP coredumps on invalid headers - Bug#3062050 - Main scanner loop processes 0 length headers - Bug#3062053 - @Deprecated JPacket.getScanner method - Bug#3065968 - Missing sendPacket(JBuffer) implementation - Bug#3066662 - UDP header missing setter methods - Bug#3066959 - VLAN definition incorrectly assumes 802.1d as next header - Bug#2353774 - Tcp header incomplete - missing tcp options - Bug#3067088 - Ip4.Timestamp incorrectly initialized - Bug#3067096 - JPacket.toString() exceptions consume all output in progress - Bug#2933449 - SIP PRACK Message dosn't recognized - Bug#3018072 - Wrong scanning Sdp headers in Linux == Release 1.3 final (2010-08-24) == * No code changes (b1 code thoroughly tested and deployed for several months) * Various build script changes - Added x86_64 builds == Release 1.3.b1 (2010-04-05) == * Fixes - Bug#2981951 - Intermittent crashes in scanner - Bug#2978441 - JRegistry.addBinding(JBinding) not working - Bug#2890736 - reopened bug ConcurrentModificationException in JMemoryPool - Bug#2906021 - Ethernet trailer end up in last header payload - Bug#2908252 - JFormatter invalid state after exception during format output - Bug#2908513 - exception thrown by Checksum for truncated or recursive ICMP headers. * Added - Added testcase for Bug#2899902 ( buffer underflow on 64-bit systems) == Release 1.3.a1 (2009-11-06) == * Fixes - Bug#2890773 - PcapPacketHandler invalid PcapHeader peer - Bug#2890736 - JMemoryPool concurrent mod exception - Bug#2890094 - JPacket.toHexdump doesn't work on unintialized packets - Bug#2878768 - JMemoryPacket(int) constructor doesn't work - Bug#2857282 - Ip4.destination(byte[]) setter uses incorrect offset - Bug#2897714 - invalid (char *) to (int) conversion in packet_protocol.cpp * Added - Feature#2848659 - Add frame counter reset on JScanner == No Official 1.2 stable release == * Notes - Release 1.2 branch was deprecated and replaced with stable 1.3 branch == Release 1.2.rc5 (2009-3-18) == * Fixes - #2688877 - reported that debian package is missing .so soft link to .so.rc4 main lib file. Will add that link in post-install to debian package control file - #2648427 - PcapDumper.dump() core-dumps. A patch is available upon request. - #2557009 - LLC header problem * Added - Pcap.loop() and Pcap.dispatch() variation to allow the user to supply JScanner. This allows JScanner internal buffer size to be changed by the user - Added JPacket.setMemoryPool(). This allows the user to change the default allocation block size of JMemoryPool for packets that are copied via the constructor and transferTo() methods - Added analyzer support for Tcp/Ip family of protocols. This includes Ip fragment reassembly, tcp segment sequencing and reassembly as well - Added Http and Html as CORE jnetpcap protocols supported by native scanner * Changed - Moved org.jnetpcap.packet.header package to new org.jnetpcap.protocol package. Protocols are grouped into families of protocols, which are stored under appropriate protocol suite sub-packages. == Release 1.2.rc4 (2009-1-4) == * Fixes - #2469209 - Ip6 CORE protocol missing scanner - #2469205 - Unchecked exceptions consumed in dispatch handlers - #2469198 - PcapPacket.transferStateAndDataFrom(PcapPacket) not working * Added - JConfig class for managing configuration through properties - Activated java's logging system for logging messages - Address resolvers - resolve addresses and numbers to human labels such as ip addresses to hostnames * Changes - Renamed annotation interface @FieldRuntime to @Dynamic * TODO - Mapped fields for protocols such as Http and SIP == Release 1.2.rc3 (2008-12-22) == * Update to 1.2.rc2 * Fixes - #2458371 - Serious memory leak in JMemory - #2458376 - Invalid class name for an exception being thrown from JNI code * Added - Protocol to protocol binding and registration - Protocol header annotations; makes protocol definitions much cleaner and easier to write - Protocols/java directory with some - new non core protocols being released; Http and Html headers are included - Added several static methods to JMemory class which report on native memory usage for jNetPcap library; since native memory is not reported in any JRE statictics, the user can rely on these JMemory methods for monitoring native memory usage - Added several getter methods to JBuffer class that retrieve UTF8 strings in raw buffers * Changes - Main JNI scanner LOOP has been slightly rewritten to take advantage of JHeaderScanner java objects, their bidnings and user written scanners * TODO - JField class still needs more cleanup; JFieldRuntime needs to be removed completely - Formatting styles for field values need to be redone; currently too limited in functionality - Add exception hooks; exception hooks rewrite exceptions being thrown to include a lot more debug information that is useful when debugging a protocol == Release 1.2.rc2 (2008-12-06) == * Update to 1.2.rc1 released on 2008-11-24 * Fixed - Fixed PcapPacket and JPacket class APIs - Fixed various memory related issues found with JMemory * Added - Added sub-header capabilities to JHeader and formatters - Added all Ip options to Ip4 header definition - Added all missing ICMP sub-header types * Known Issues - TCP header definition is missing its optional sub-headers - Java binding overrides are implemented but still not fully tested - Numerous javadoc typos and blank type comments == Release 1.2 (2008-11-24) == * Feature release * Added - #2292402 - Packet decoding framework - #2292455 - Memory management - #2292464 - Add a function to acquire network interface MAC address - #2292515 - Simplify capturing packets in multi-threaded environment - #2321006 - Deprecate: PcapHandler - #2321014 - Deprecate: PcapPktHdr - #2321017 - Deprecate: PcapInteger - #2321024 - Deprecate: certain loop, dispatch functions * Bugs - #2219738 - WinPcap.sendQueue ignores its parameter. WinPcapSendQueue(int size) constructor was ignoring size parameter and using a constant. - #2219729 - Memory leak in Pcap.loop(). Memory leak in Pcap.loop method. Local JNI references were accumulating causing out of memory errors in Pcap.loop when it was set to loop forever. == Release 1.1 (2008-06-19) == * Maintenance release * Provides packages for: Fedora Core 8 (Linux), Debian 4 (Linux), Win32 (WinXP/Vista) * NO BUG FIXES - no bugs reported from the time of previous release == Release 1.0 (2007-12-21) == * First production release * Bug #1855589 - Win32 isInjectSupported returned incorrect value == Release 1.0b4 (2007-08-21) == * Linux support * Bug #1776380 - PcapBpfProgram exceptions on linux platform * Added - Pcap.inject, Pcap.isSendPacketSupported, Pcap.isInjectPacketSupported, Pcap.lookupDev, Pcap.lookupNet == Release 1.0b3 == * No bugs found or reported since previous release * Additions to org.jnetpcap package - All core 'libpcap' functions - PcapClosedException, PcapExtensionNotAvailableException exceptions * Addtions of and to jnetpcap.org.winpcap package - WinPcap extensions + Nearly all WinPcap based functions, very few exceptions * Removed "commons-logging" dependency. Static initializers throw appropriate exceptions directly during initialization failure. == Release 1.0b2 == * Bug #1767744 - PcapHandler object ptr error in loop() and dispatch() This is a critical bug, where PcapHandler objects clobers the parent Pcap object data after invocation through loop() or dispatch() method. * Add a number of int constants to Pcap.java class to represent various return codes, flags, and mode settings. Each constant has detailed explanation of its usage and where it is be applicable. * openLive() method will now also return "warning" messages in errbuf, even if result code from the OK was 0, meaning no error had occured, as per pcap specification. * Possible issue uncovered, but not fixed in this release. - setting the snaplen value on openLinve() call does not seem to cause a return of a truncated packet buffer from next(), nextEx(), dispatch() or loop(). The buffer always contains the entire packet. Significant debugging effort does not point to a bug in jNetPcap software but in underlying WinPcap library. This could be in issue with particular Network Interface Card in use. The issue is still under investigation, but the fix to critical bug #1767744 can not be delayed. == Release 1.0b1 == * Initial release