Ethereal-cvs: [Ethereal-cvs] cvs commit: ethereal packet-tds.c

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 3 Dec 2002 02:36:49 -0600 (CST)
guy         2002/12/03 02:36:49 CST

  Modified files:
    .                    packet-tds.c 
  Log:
  I've seen a capture with a TDS packet type of 18 at the beginning of the
  session; treat all packet type values >= 1 and <= 18 as valid packet
  types.
  
  Do standard TCP desegmentation of Netlib buffers, and do reassembly of
  TDS messages fragmented over multiple Netlib buffers, rather than doing
  the "remember what was in the last TCP segment" stuff; I've seen nothing
  to indicate that a TDS message would continue past the last byte of a
  "last buffer in request or response" Netlib buffer, and the "remember
  what was in the last TCP segment" stuff was complicated and buggy,
  perhaps irreparably so ("buggy" as in "crashes").
  
  Make the top-level protocol item for a TDS message be an item for
  "proto_tds", and put both the Netlib header and TDS stuff under that
  item - that's what Microsoft Network Monitor does.
  
  Get rid of the unused Netlib heuristic subdissector list.
  
  Don't make a new data source for NTLMSSP data in a TDS message - the
  data is just a slice of the message, it's not transformed from ASCII hex
  to binary, or reassembled, or anything such as that.
  
  Tokens are tokens, not PDUs.
  
  Make the heuristics a bit stronger, to reject packets that are clearly
  not TDS packets.  Once the heuristics match, make a non-heuristic
  dissector the dissector for the conversation.
  
  Quit dissecting the TCP segment (or reassembled data) if we have a
  Netlib buffer with a length < 8, as it's not large enough to even have a
  Netlib header.
  
  Revision  Changes    Path
  1.8       +596 -605  ethereal/packet-tds.c