2019-08-05 Jerry Lundström

    Release 2.0.1

    Minor fixes to Automake/Autoconf files, such as:
    - Fix #17: add DESTDIR
    - `autoreconf` include fix
    - `configure` Perl program check
    - Update m4 scripts to latest version

    cb5b223 Package
    b7ef042 Funding
    44f0f9f Prepare SPEC for OSB/COPR
    e5d8987 RPM spec and various automake fixes
    d42557b Fix #17: add DESTDIR
    3358d7f Add Travis-CI build status
    f839d0f Fix travis script, only expand dir and test.
    52b5ca3 Add debian/ubuntu package files

2016-06-10 Jerry Lundström

    Release 2.0.0

    This is a major release in a sense but almost no code have been
    changed. The Presenter can now be configured and installed with
    configure, see configure --help for more information and README.md
    if you have an existing installation and wish to continue to use
    the old paths.

    Major changes:
    - Restructure repository to only contain the Presenter for DSC.
    - Use of Automake and rework of the Makefiles
    - Moved the Perl library into it's own repository p5-DSC.
    - Make all paths configurable via configure and use defaults more in
      line with FHS 3.0.
    - Continuous Integration testing using Travis-CI and Jenkins
    - Testing on Ubuntu, Debian, CentOS, FreeBSD and OpenBSD

    Path Changes

    The following paths have been changed, $old is considered /usr/local/dsc
    and the new uses configure path, see configure --help for a full list
    of these paths and their default.

    $old/cache/     => $localstatedir/cache/dsp/
    $old/data/      => $localstatedir/lib/dsc/
    $old/etc/       => $etcdir/dsp/
    $old/libexec/   => $libdir/cgi-bin/ (CGI bins only)
    $old/libexec/   => $libexecdir/dsp/
    $old/share/html => $datarootdir/dsp/html/
    $old/var/log    => $localstatedir/log/dsp/

    Commits:

    4d1a049 Fix typos and add missing cleanup
    3865520 Generate files and create dirs
    42de74e Add configure options to be able to install as it were pre
            version 2.0.0. Fix typos in .in files.
    594049d Use new options when available
    20b1b15 Move Perl library to separate repository.
    340cc09 Fix #3: Try and be more FHS.
    b1c19bc Fix #1: Add missing changes for master branch
    3ed63f0 Check make dist in Travis
    f22ad56 Reconstruct repository to not include collector. Use
            automake/autoconf. Update licenses.

2016-01-11 Duane Wessels

    added dfprintf() macro to improve code readability and avoid
    multi-line if (debug_lvl) fprintf(...) statements.

2016-01-11 Duane Wessels

    Commenting out ancount and nscount to silence compiler warnings
    about unused variables.

2016-01-11 Duane Wessels

    Patch from John Heidemann relating to TCP reassembly
    - fix for multiple DNS messages per TCP connection that span
      multiple segments
    - some editorial code changes (== to >=)
    - additional debugging statements

2016-01-11 Duane Wessels

    Minor fix: debugging statement wasn't protected with debug_flag
    check. (thanks John H).

2015-12-23 Duane Wessels

    add prototype for dns_message_handle()

2015-12-23 Duane Wessels

    Experimental feature to drop "received responses" and "sent queries"
    since DSC is generally used to monitor authoritative servers that,
    under normal operation, never receive responses nor send queries.
    Currently protected with #ifdefs.

2015-12-15 Duane Wessels

    Oops, forgot to set dns_message->server_ip_addr for new server_addr
    indexer

2015-11-23 Duane Wessels

    removing one level of the "dsc/dsc" top directory

2015-11-11 aqadeer

    In pcap.c pcap_setnonblock doesn't accept captured files anymore and
    must need a device from where it could do live capture.  For offline
    files to work, a simple check is added to by-pass this porblem.

2015-11-05 Duane Wessels

    Added a 'server' indexer.  This records the server (query destination)
    IP address.

2015-11-05 Duane Wessels

    Renamed "client_ipv4" to "client_ip" because it supports v4 and v6

2015-11-04 Duane Wessels

    Update copy of pcap_layers.c from https://github.com/wessels/pcap_layers

2015-11-04 Duane Wessels

    avoid "void *" pointer arithmetic (Yoshitaka Aharen)

2015-10-09 Duane Wessels

    bugfix: handle receiving TCP dns length prefix out of order.

    A user reported that when a TCP segment containing only the DNS message
    length is received *after* the message it references (i.e., out-of-order),
    then DSC goes into a 100% CPU loop.  Confirmed that the code doesn't work
    correctly when dnslen comes out-of-order, but I wasn't able to easily
    reproduce the 100% CPU bug.

    The fix is to add a "dnslen_bytes_seen_mask" variable that tracks which
    of the two dnslen bytes we've seen.  Once both bytes have been seen,
    then we can proceed to reassembling the message buffer.

2015-10-09 Duane Wessels

    cosmetic: rename ipv4 to ip4 to be consistent with ip6

2015-10-09 Duane Wessels

    Regarding recent change to add pcap_layers library, forgot to add it
    to Makefile.in (vs Makefile) before committing.

2015-10-09 Duane Wessels

    Integrated https://github.com/wessels/pcap_layers with DSC collector.
    The DSC code now includes a copy of the pcap_layers library, which does
    a better job of extracting the layers of a pcap packet.  In particular,
    it does IP fragmentation reassembly, which is important for DSC and
    RSSAC-002. At this time the DSC code still does TCP reassembly, however.

    Removed USE_IPV6 ifdefs.  IPV6 support is now always compiled.

2015-10-08 Duane Wessels

    Removing "DMC *dns_message_callback" because there is only one that
    would ever be used. The callback layer of indirection makes the code
    a little confusing, and also this change is in preparation for bringing
    in a third-party pcap layer handling library which will work slightly
    differently.

2015-10-08 Duane Wessels

    The "ip_message" code has not been in use since a commit back in 2012.
    But the code lingered, until now.

2015-02-25 Duane Wessels

    User reported a concern with the way dsc-xml-extractor.pl called
    the operating system 'mv' command.  It has been replaced with Perl's
    File::Copy::mv().

2013-03-19 Duane Wessels

    Fixed a bug in TCP reassembly when the DNS length field was
    split between two segments.

2012-08-27 Sebastian Castro

    Added 'tc_bit' indexer and dataset to track the frequency
    of responses having the TC bit set.  Useful with DNSSEC
    signed zones.

2012-02-29 Duane Wessels

    Added 'qr_aa_bits' dataset and graph.  It shows the distribution
    of QR/AA values in received messages and may be helpful in
    detecting reflector attacks targeting your name server.

2010-11-29 Duane Wessels

    The dnssec_qtype and dns_ip_version plots were not working due
    the presence of 'dataset' attributes in their definitions.  Also
    fixed the chaos plot.

2010-11-04 Duane Wessels

    Added NSEC3 record type to the extractor.

2010-09-14 Duane Wessels

    A fix to put pcap interfaces into non-blocking mode, which is
    important when reading from multiple interfaces.

2010-08-13 Alexander Mayrhofer

    Added "country_index" to the collector which is an index based
    on country as returned by the GeoIP library.  configure attempts
    to learn if you have GeoIP installed.

2010-08-13 Peter Koch

    Some minor fixes to the collector that allow it to read from
    pcap files on disk, rather than live packets from an interface.

2010-06-02 Henrik Kramsh?j

    Improvements for OpenBSD compatibility

2010-05-01 Duane Wessels

    Added NSEC3 to DNSSEC query types

2010-02-22 Duane Wessels

     Collector bug fixed: USE_IPV6=1 was not passed to .c
     files, which resulted in different-sized data structurs
     and crashes on CentOS.

2009-12-10 Duane Wessels

    Added "priming_queries" and "priming_responses" datasets in
    preparation for root zone signing.

2009-11-11 Duane Wessels

    On the presenter some of the "accum" graphs stopped working
    due to recent rewrites.  These should now be working again.

2009-10-12 Duane Wessels

    The presenter debugging is now configurable via dsc-grapher.cfg.

2009-08-14 Duane Wessels

    In the presenter, there have been some significant changes to
    the perl modules so that they can be used in command line
    (ie non-CGI) utilities, both for creating graphs and for
    reading data.  Most of these changes are purely internal.
    However, you may need to update your dsc-grapher.pl CGI
    program to be like presenter/grapher/dsc-grapher.pl.sample
    in the source distribution.

2009-04-15 Duane Wessels

    In the presenter's refile-and-grok.sh script, note that in
    some environtments it is useful to skip NODEs that don't
    have an incoming directory because they might have been
    "grokked" elsewhere and then rsync'd to you.

2009-02-27 Duane Wessels

    In the collector it is now necessary to include <stdlib.h>
    and <stdio.h>.   Not sure why it wasn't necessary before.
    Perhaps due to 2009-01-26 Hapy library upgrade.

2009-02-19 Duane Wessels

    In the collector, fixed some 64-bit free disk space calculations
    with casting.

2009-01-26 Duane Wessels

    Upgraded to more recent version of Hapy parsing library.

2008-12-31 Duane Wessels

    In the collector, changed the value of pcap_open_live() because
    we always try to read from all interfaces after select() returns.
    If we have multiple interfaces and one of them is quiet, and
    the timeout is too large, we'll drop packets on the other
    interface while waiting for the first to time out.

    Also added a pseudo-dataset that reports on pcap packets captured
    and dropped.


2008-12-02 Duane Wessels

    Grapher now preserves the order of the server list given in
    dsc-grapher.cfg.

2008-11-22 Duane Wessels

    Added some collector indexers and datasets for 2nd and 3rd level
    domains.

2008-10-02 Duane Wessels

    Made the 'no extractor for $dataset' error message non-fatal.
    Now, the unknown dataset will just be skipped and the remaining
    ones will be processed.

2008-09-30 Duane Wessels

    In the presenter, account for the possibility that the collector's
    clock is not in sync.

2008-09-18 Elmar Knipp

    Found bug in upload script where a $PROG.out prevents removal
    of a $YYYYMMDD directory.

2008-09-16 Duane Wessels

    New presenter feature: Node Merging.  Now the DSC grapher can
    automatically "merge" multiple nodes so that they appear as
    one.  For example instead of this dsc-grapher.cfg line:

        server S N1a N1b

    you can merge nodes "a" and "b" with this line:

	server S N1=N1a,N1b

    This feature is also useful for just renaming a node if you
    want it to be displayed as a different name than the directory
    where its files are.

2008-09-15 Duane Wessels

    On the collector, changed the sample config and upload scripts
    to use /usr/local/dsc/run as the default run_dir (was formerly
    /usr/local/dsc/var/run/).

2008-08-21 Duane Wessels

    Added an EDNS bufsiz indexer so we can collect buffer sizes
    advertised by clients.

2008-08-12 Duane Wessels

    Attempt to improve portability (on Solaris) by checking for
    libresolv, libnsl, and libsocket.  Also check for statvfs() vs
    statvs() in configure.

2008-07-29 Duane Wessels

    Updates to collector/cron/upload-rsync.sh so that it behaves
    better with new date-based directories on both collector and
    presenter.

2008-06-27 Duane Wessels

    Added a source port range dataset (for about-to-be-announced
    vulnerability that can be mititgated by improving source port
    randomness).

2008-04-22 Duane Wessels

    Added ./configure script for presenter/dsc code.

2008-04-22 Duane Wessels

    Added support for capturing NCAP data streams.

2008-01-09 Duane Wessels

    Changed the location of the presenter's ".dat" files.  Previously
    there were stored in a directory such as 20080109/qtype/qtype.dat
    and now they will be moved one directory up and stored as
    20080109/qtype.dat.

    The source distribution includes a script found at
    presenter/grapher/update-dat-file-locations.sh that will traverse
    the /usr/local/dsc/data directory and move all the .dat files
    one level up.

    When upgrading to this version of DSC you should first stop the
    refile-and-grok.sh cron job, install the DSC software, and then
    run the update-dat-file-locations.sh script (after reading it).

2008-01-09 Duane Wessels

    Data passed from collector to presenter is now contained in a
    single XML file, rather than one XML file per dataset.  This
    should significantly reduce filesystem pressure (i.e., 20x fewer
    files to be stored and sent) on both sides.

2008-01-07 Duane Wessels

    The collector now stores to-be-uploaded XML files in
    date-named subdirectories.  This reduces filesystem pressure
    in the event that the collector cannot communicate with the
    presenter for an extended period of time.

    To accomodate this change, the upload-prep.sh script has been
    replaced with a Perl version, named upload-prep.pl.  After
    installing DSC you should change your cron job to use the new
    script.

2008-01-04 Ken Keys

    Previously, a child was forked for each collection interval.
    Memory allocated for collected data was freed by simply exiting
    the child.  But this left no way to preserve any data across
    intervals.

    Now, interval collectors do not fork.  To avoid the tedious,
    slow, and error-prone nature of normal malloc-and-free memory
    management, we instead store non-persistent data in memory
    allocated from an "arena", which can be freed quickly and safely.
    We don't need to free individual allocations, but we do need
    to reset some pointers to allocated memory.

    TCP resets are now properly handled and TCP state is freed
    if a connection has been idle for too long.

2008-01-04 Duane Wessels

    The collector configuration (dsc.conf) has a new 'minfree_bytes'
    directive.  If the amount of free disk space on dsc's partition
    falls below this limit, dsc will not write any XML files -- that
    data will be lost.

    The default value is 5 MB.

2007-12-14 Alexander Gall

    Added a 'dns_ip_version' indexer so that we can track DNS messages
    sent over v4 and v6.

2007-12-04 Duane Wessels

    Fixed a collector bug when listening on multiple interfaces of
    different datalink types (e.g., eth0 and lo).

2007-11-26 Duane Wessels

    Added a 'hide_nodes' feature to dsc-grapher.cfg.  If 'hide_nodes'
    is given, then the navigation menu will not display the nodes
    underneath a server.  Note, however, that knowledgeable users
    could still view individual node data by manually if they know
    the names by specifying it in the URL query terms.

2007-10-09 Duane Wessels

    Changed the presenter to not use "data URIs" by default.  Now
    Internet Explorer users should be happier.

2007/06/14 Duane Wessels

    Added -f command line option to keep 'dsc' collector as a foreground
    process.

2007-06-11 Duane Wessels

    dsc-xml-extractor.pl now looks for incoming XML files in
    "incoming/YYYY-MM-DD" directories.

2007-06-07 Duane Wessels

    New TCP code did not compile cleanly on Linux.  Added some
    #ifdefs and macros for Linux compatibility on TCP headers.

2007-05-15 Ken Keys, Duane Wessels

    TCP support
    New 'transport' indexer for DNS messages.  Indicates whether message
    arrived over UDP or TCP.

2007-04-04 Duane Wessels

    IPv6 support
    New 'ip_version' indexer.  Indicates whether DNS message arrived
    via IPv4 or IPv6.
