Ethereal-cvs: [Ethereal-cvs] cvs commit: ethereal afn.c afn.h Makefile.am Makefile.nmake ippro

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: Sat, 21 Jul 2001 05:27:15 -0500 (CDT)
guy         2001/07/21 05:27:14 CDT

  Modified files:
    .                    Makefile.am Makefile.nmake ipproto.c 
                         ipproto.h packet-bgp.c packet-bgp.h 
                         packet-ldp.c packet-pgm.c packet-pgm.h 
                         packet-pim.c 
  Added files:
    .                    afn.c afn.h 
  Log:
  There is really no need to have the BGP dissector and the LDP dissector
  have two independent "value_string" tables mapping RFC 1700 address
  family numbers to names, nor is there any need to have the BGP dissector
  and the PIM dissector have two independent sets of #defines for RFC 1700
  address family numbers; put a single "value_string" table in "afn.c" and
  put a declaration of it, and #defines for the address family numbers,
  into "afn.h", and have the dissectors use that.
  
  Move the #define for PGM into "ipproto.h", and add an entry for it in
  the "value_string" table in "ipproto.c".
  
  Have the PGM dissector use the standard Ethereal mechanisms for
  resolving addresses, and have it use "value_string" tables for mapping
  option types, the OPX bits, and packet types to strings.  Use
  "bytes_to_str()" to turn byte arrays into strings of hex digits.  Pass
  the packet type string to "dissect_pgmopts()" as an argument, rather
  than making it a global.  Don't use "proto_tree_add_XXX_format" routines
  if you can possibly just use "proto_tree_add_XXX"; give various fields
  the correct radix and type, and VALS() strings if necessary, to make
  that happen (and to make filtering on them more pleasant).  Put the
  type, length, and total length of the options into the protocol tree as
  separate fields.  Don't have separate type, length, and OPX fields for
  every type of option; one field will suffice.  Don't format a string
  with "sprintf()" and then pass that string to "col_add_fstr()" with a
  format of "%s" and the string as an argument - "col_add_fstr()" can
  format strings itself (that's what the "f" stands for).  Don't byte-swap
  and then un-byte-swap IPv4 address fields in the header, just leave them
  network byte order to start with.  Use the correct fields for
  "proto_tree_add_XXX", rather than using the same field multiple times.
  Quit early if an address family identifier isn't AFNUM_INET, as that
  means the structure we use to dissect the header doesn't match the
  actual header.
  
  Revision  Changes    Path
  1.356     +3 -1      ethereal/Makefile.am
  1.127     +2 -1      ethereal/Makefile.nmake
  1.14      +3 -3      ethereal/ipproto.c
  1.3       +3 -3      ethereal/ipproto.h
  1.46      +6 -26     ethereal/packet-bgp.c
  1.15      +2 -19     ethereal/packet-bgp.h
  1.19      +3 -16     ethereal/packet-ldp.c
  1.5       +258 -334  ethereal/packet-pgm.c
  1.4       +9 -12     ethereal/packet-pgm.h
  1.32      +9 -28     ethereal/packet-pim.c