CHANGE_LOG.txt 14.6 KB
Newer Older
filatov's avatar
filatov committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
################################################################################
#
#    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