2021-07-16 Jerry Lundström

    Release 2.0.0

    This major release is a complete rewrite of drool to Lua using dnsjit!

    This includes two commands:
    - `drool replay`: replay DNS traffic from packet capture (PCAP) files
      and send it to a specified server, with options such as to manipulate
      the timing between packets, as well as loop packets infinitely or for
      a set number of iterations.
    - `drool respdiff`: replay DNS queries found in the PCAP, but only if
      a correlating response is also found. The query, original response
      and the received response is then stored into a LMDB database which
      can then be used by respdiff by CZ.NIC (see https://gitlab.labs.nic.cz/knot/respdiff)
      for analysis.

    See `man drool`, `man drool reply` and `man drool respdiff` for more
    information.

    9357c54 RPM
    dc27432 configure
    5a60fd3 Bye Travis
    21d950c Info, Travis
    eb44217 Badges
    5623d60 COPR
    1b5bd66 COPR, spec
    2033d26 Package
    61264d2 Funding
    c3eb323 (tag: v1.99.4) Copyright, v1.99.4
    ff9dfd5 Timing Mode
    fc55d2d (tag: v1.99.3) Respdiff fix
    e432c91 (tag: v1.99.2) Respdiff, v1.99.2
    8e99d0e Dependencies
    46712c0 Packaging
    dcc5450 Configure options
    de63694 (tag: v1.99.1) Rewrite, v1.99.1
    e96a9f9 (tag: v1.99.0) Backends
    8c99925 pcapthread
    cf3f65a Split
    99542e5 Rewrite into Lua using `dnsjit`

2018-02-16 Jerry Lundström

    Release 1.1.0

    Rework of the timing code to make it more effective, based on
    proof-of-concept from Petr Špaček @pspacek (CZ.NIC).

    The `best_effort` timing mode is now deprecated, this is now the same
    mode as `keep` and the warnings `keep` made when unable to follow
    timings have been removed.

    6e81a31 Timing
    d30918c WIP: timing rework

2018-01-16 Jerry Lundström

    Release 1.0.2

    Bugfixes:
    - TCP option parsing was fixed in pcap-thread 3.0.0 but the work-around
      code was still in drool
    - The month in the console output was incorrect

    a47ed95 Update copyright year
    4d44801 TCP options was fixed in pcap-thread 3.0.0
    cb5cebf Fix #93: `tm_mon` is 0-11

2017-12-19 Jerry Lundström

    Release 1.0.1 (v1.0)

    Thanks to a few people, especially Petr Špaček @pspacek (CZ.NIC), for
    testing and reporting issues and other oddities (documentation is hard),
    release v1.0 is now ready!

    Increase of version because of how distributions compare package versions.

    f9a55bc Update pcap-thread to v3.1.0
    9c26a5a pcap-thread and tests
    a069d84 Fix #87: Use `sockaddr_storage`, add more debug and error messages
    047abe6 Fix #84: don't loop client list on timeout handling
    5377698 Fix #82: Parse TCP payload, add Known Issues
    05013f0 Fix #82: Send query length
    aea71ad Correct `timing multiply` in README also
    6437fe7 Fix man page example for timing multiply

2017-09-18 Jerry Lundström

    Release 1.0.0-rc.1

    Mostly documentation updates and clarifications but also a new timing
    mode `best_effort` to send packets as fast as possible without warnings
    and a correct usage of `nanosleep()` on systems that does not support
    `clock_nanosleep()`.

    114f984 Fix #74: Best effort timing mode, fix usage of `nanosleep()`
    a32201c Rework development notes
    3999214 Add examples and default values
    1e70ab9 Design documentation
    6e530ee Fix #64: More documentation around context and client_pool,
            and how configuration relates to each other.

2017-08-22 Jerry Lundström

    Release 1.0.0-beta.4

    Compatibility fixes and packaging.

    f6b6251 Fix #66: Check for libev/ev.h also
    8dff723 Code formatting
    a5af21d Update pcap-thread to v2.1.3
    e622612 Prepare SPEC for OSB/COPR
    3c8fbb0 Fix #57: Update README with build tools and environment setup
    456d586 Add debian packaging files
    a0a74cb Add dependencies

2017-03-29 Jerry Lundström

    Release 1.0.0-beta.3

    Various compatibility fixes across GNU/Linux, FreeBSD, OpenBSD and
    OS X, along with a bugfix in pcap-thread.

    Special thanks to Brian Carpenter (@geeknik) for fuzzing drool.

    82273cc Fix #50: Compat for OS X
    fc9d87c Issue #50: Update pcap-thread to v2.1.2
    04817f0 const not needed on size_t
    7ab1811 Update submodules: sllq v1.0.0, parseconf v1.0.0 and omg-dns
            v1.0.0
    242c67a Fix CID 1421861
    9f3914f Add Travis and Coverity badges
    ae33c90 Check for `clock_gettime()` in librt, needed for older glibc
    594c877 Add Travis-CI
    b7e19a2 Fix compiler warnings and check errors from `sigwait()`
    3b9f2dc Fix #43, fix #44, fix #45: Update pcap-thread to fix one off
            in IP layer

2017-03-25 Jerry Lundström

    Release 1.0.0-beta.2

    Some minor changes and documentation updates prior to making the
    repository public.

    79ce5cc Add description
    3f63cff Update all submodules to latest develop
    0bbe9dc Log format

2017-03-06 Jerry Lundström

    Release 1.0.0-beta.1

    Documentation and packaging for CentOS to prepare for release candidate.

    New command line option:
    - `-n` to run in dry-run mode

    a61d1fa Fix #9: Documentation
    ee93ced Impl timing multiply
    7cfaf84 Tests, dry run and updated SLLQ

2017-03-02 Jerry Lundström

    Release 1.0.0-alpha.3

    Reworked some of the client code to better handle stream sockets (TCP),
    retrys to send query if the system's sockets are exhausted.  Can send
    queries as the original protocol or force them into UDP or TCP.

    Default number of client pools running per context is now 1, increase
    this if you want to push UDP queries.  For TCP this has little effect
    since you will most likely hit system limits before that.

    Config changes:
    - Added `context client_pools num;`
    - Added `client_pool max_reuse_clients num;`
    - Added `client_pool sendas what;`

    Other changes:
    - Add timing details to warning about not keeping up with timings

    f8805da TCP, send as, proper shutdown
    800e971 Include CHANGES in dist
    cae9834 Honor previous fd flags

2017-02-21 Jerry Lundström

    Release 1.0.0-alpha.2

    This release implements the core engine and most of the network code
    which consists of:
    - parsing DNS packet from input using omg-dns
    - sending queries to a client pool using sllq
    - processing queries using client objects and libev event loops

    Handling results/responses have yet been implemented.

    Command line option changes:
    - Added `-R` to specify read mode for PCAP files
    - Removed `-w` and `-o`

    Config changes:
    - Added `timing ignore;`
    - Added `timing keep;`
    - Added `timing add nanoseconds;`
    - Added `timing reduce nanoseconds;`
    - Added `timing multiply float;`, note: no logic added yet
    - Added `client_pool target "ip" "port";`
    - Added `client_pool max_clients num;`
    - Added `client_pool client_ttl float;`
    - Added `client_pool skip_reply;`
    - Removed `read`, `input`, `write` and `output`

    246c9ad Update README with example, build info and copyright etc
    94ce650 Loop/iteration read, lag detect and documentation
    7bda852 Send as, multi client pools per context
    e233f51 Tweaks
    3d0dae4 Rework network code
    5d2e492 Update conf example and man-page
    9d2b4a3 Split conf, skip reply
    c9cc5a2 Use parseconf submodule
    64241b8 Check for `clock_nanosleep()`, `nanosleep()` and use what it
            available
    bbdcb07 A lot of more stuff

2017-01-20 Jerry Lundström

    Release 1.0.0-alpha.1

    First release, has command line options, conf file handling, logging,
    man-pages, can capture/read interface/pcaps and will display some
    statistics at exit.

    $ src/drool -h
    $ src/drool -vv -r file.pcap
    $ man src/drool.1
    $ man src/drool.conf.5

    bb5602c Fix #3
    a46d040 Fix #13: Add license
    5b43516 Fix #4: Basic layout for opts, conf, logging, skeleton man-pages
            and tests
    a9b6ab5 Fix #1: Add initial files and directories
    aca355b Initial commit
