This afternoon (US), I will be committing a trio of changes.

One will roll the version number (to 2.1.55) and set the cvs tags.  That was
done around 4pm CST (23:00 Pisa).  If you need to pull ntop 2.1.54 from the
cvs, the following (or something a lot like it) will do it:

$ cvs -t checkout -r ntop_2_1_54 ntop/*

Commit One-A updated the vendortable.h to reflect data from the IEEE as of
yesterday. Done around 4:15 CST (23:15 Pisa).


If things were working, this would make yesterday's daily snapshot,
http://snapshot.ntop.org/tgz/ntop-03-01-05.tgz equivalent to 2.1.54.  Since
snapshot is down, it won't - I'll make and post an ntop-2.1.54.tgz to
SourceForge.  No rpms.  Uploaded around 4:30 CST (23:30 Pisa).


The second commit is a MASSIVE change (ref BMS1075).

Note that I deliberately tried to make zero functional changes with this
one.  I didn't succeed, there are a couple of really minor items, such as
eliminating the doubling of _DEBUG reports in info.html and better
statistics on the hash table loads/collisions.  But ntop 2.1.55 should
function exactly like 2.1.54.  If it doesn't well, then there's a problem
somewhere.

While this change SHOULD have no affect on ntop, there is always the
possibility of a problem, so I'm alerting you to be on the look out...
mostly for compile (make) problems.


What this change does is to break up and reorganize the ntop.h and globals.h
files into the following (this is taken from the comments in the new
ntop.h):

/*

ntop's defines - what's what and what's where

ntop.h
  This is the 'control' for the various globals-*.h files.  It's a single
  include to drag in the necessary headers, defines ntop data structures
  (e.g. the structs), etc.

  A few globally #defined items which control expansion of the standard
  and system headers MUST be here.

  Any tests - #if () #error #endif type stuff goes here at the bottom.

  ntop.h includes
     config.h -- generated by ./configure

     various standard and system headers

     globals-defines.h
          All of the #defines used by ntop should be here, except for those
          explicitly discussed below.

     globals-structtypes.h
          Every struct and typedef, including #define used instead of
typedef.

   and

     globals-core.h
          This defines the extern functions, exported from one ntop source
file to
          the others.
          "function" which are actually #define macros are here.

  All programs must include ntop.h.  Any program which requires the
"reporting"
  functions also have to include globals-report.h.

*/

All of the struct and typedef declarations were placed into the
globals-structtypes.h, unchanged except to sequence them so that no forward
declarations were required.

As part of the reorg, almost all of the #define values in ntop have been
moved into globals-defines.h
renamed into what I hope is a logical naming convention AND DOCUMENTED:

/*
 *
 *  This file, included from ntop.h, contains ALL common #define statements.
 *
 *     Changes here affect how ntop compiles.  This includes features that
are
 *     enabled, etc.
 *
 *  Names have at least one part that defines their "type".  Listed below in
the order
 *  they are most frequently changed.
 *
 *  PARM -- any "PARM" item is an internal tuning item, e.g. one that must
be set at
 *  compile time and can not be overridden at run time.
 *
 *  MAKE -- MAKEs are like PARM, but set based on other factors like the os,
absence
 *  of other values, etc.
 *
 *  DEBUG -- any "DEBUG" item is not normally set, but if #define(d) causes
additional
 *  output fron ntop of a debugging nature.
 *
 *  CONST, LEN and MAX - these are arbitrary values, limits and lengths of
fields
 *  (buffer size, ethernet address, et al) and arrays.
 *
 *  FLAG and BITFLAG -- are various constants and flags.
 *           FLAG is a numeric/char value used to mean something
 *           BITFLAG is a value used to test/set a specific bit in a value
 *
 *  HTML -- an "HTML" item is the name of a page produced by the ntop web
server.  Using
 *  these constants ensures that the same name is used for testing and for
including in
 *  generated html.  Note that this includes the graphics we use (.jpg, .gif
and .png)
 *  regardless of whether it's a generated "page" or just a static included
image.
 *
 *  CFG -- any "CFG" item is set in config.h by ./configure indicating that
ntop was
 *  requested to be compiled with a particular configuration.  These are not
defined in
 *  this file.
 *
 *  HAVE -- any "HAVE" item is set in config.h by ./configure indicating
that the .h and
 *  .a/.so tests found we have a particular file or library during the
testing process.
 *  HAVE items are not defined in this file (they're in config.h).
 However -
 *  Note that we don't differentiate in the code between the automatically
generated
 *  singular items (HAVE_SSL_H) and the composite ones (generated from a
bunch of tests,
 *  HAVE_OPENSSL).  Forced and/or Composite items should be defined here.
 *
 *  DEFAULT -- any "DEFAULT" item is the standard, default value of a global
data item.
 *  This can be over-ridden (usually) by a command-line pararameter at
run-time.
 *  These go pretty much last so they can use values from other classes.
 *
 *  -- any MISSING or EXTERNALLY named item, obviously, has to have the
proper missing
 *     or externally named name.  These are grouped after the ntop stuff...
 *
 *  Note that with this initial version (01-2003), there is something less
than 100%
 *  adherence to this.  Any corrections, comments, (hopefully) documentation
would be
 *  greatly appreciated.
 *
 */

A few #defines, internal to a particular source file were retained in their
locations.

The biggest risks from this change are that a number of the OS specific test
have been rationalised under the -D${OSNAME} value generated from
./configure (e.g. #ifdef LINUX, #ifdef DARWIN, etc.) vs. the smattering of
stuff used previously.

Note that globals.h is gone, except as a place holder file, with a comment
telling you to look elsewhere.

I've tested this under Linux (extensively), Solaris and FreeBSD 4.6.3.  I've
also tested that it compiles (at least with ./configure --prefix=/usr) under
Darwin and MinGW.


Exceptions:
  regex.c and qsort.c - this code comes from ngrep and Bentley & McIlroy's
"Engineering a Sort Function" (respectively) and was not altered.

ToDo:
  globals-report.h needs the same treatment to rationalize the names and
document them.  These entries could also be merged into globals-defines.h or
globals-rdefines.h - any preferences??

  Pull more stuff out of ntop_win32.c and merge/rationalize.  May not be
able to do these - _win32 provides ntop with a bunch of stuff not defined
under MinGW.  What's been pulled so far is the stuff that caused problems
compiling due to the sequence of #include statements.

  Pull stuff out of ntop_darwin.c and merge/rationalize.  May not be able to
do these - _darwin has special licensing issues.

  Pull more stuff out of sflow - maybe...


As always, comments et al to the lists...

-----Burton



_______________________________________________
Ntop-dev mailing list
[EMAIL PROTECTED]
http://listgateway.unipi.it/mailman/listinfo/ntop-dev

Reply via email to