Skip to content

Releases: DNS-OARC/dnsjit

Release 1.4.0

28 Aug 08:57
Compare
Choose a tag to compare

This release adds a new module input.zmmpcap to read compressed PCAPs using mmap(), changes how core.thread push/pop, removes signal blocking and squashes a few bugs.

For core.thread, the push()/pop() now uses double instead of int64_t to match the conversion table of LuaJIT and to support floating point numbers.

Packages are available at: https://dev.dns-oarc.net/packages/

Updates:

  • examples/dumpdns:
    • Add support for reading PCAPs using mmpcap or zmmpcap
    • Add support for reading PCAPs from stdin
  • zpcap: Add support for reading zlib/lzma compressed PCAPs

Fixes:

  • Fix #234: Remove signal blocking
  • Fix #233: floating point numbers not supported by dnsjit.core.thread push/pop
  • Fix a potential memory leak in trie
  • zpcap: Fix incorrect check if having enough to read

b376ac9 Fix a potential memory leak in trie
dfeb20e Badges
e4fa047 Fix zzmpcap
88b5ccf Compressed PCAPs, Copyright
36b8266 thread push number
0056736 thread push number
0247ec6 Signals, code format

Release 1.3.0

07 Dec 09:08
Compare
Choose a tag to compare

This release adds core.object.dns:reset() to reset DNS objects so they can be reused correctly.

Example scripts have been updated to reflect this along with correctly setting includes_dnslen for TCP packets.

New example converter pcap2tcpdns added that can be used to create bin files for replaying with dnsperf -B.

Packages are available at: https://dev.dns-oarc.net/packages/

f0d0b39 pkg-config
464a198 pcap2tcpdns
b40ad6d example convertor from PCAP to TCP DNS format used by dnsperf -B option
ac51bfd pkg-config
198bae9 Copyright
5a87e37 DNS reset, dnslen TCP
f2d6b05 Doc
265a577 COPR fix

Release 1.2.3

21 Mar 14:46
Compare
Choose a tag to compare

This patch release fixes compilation issues on FreeBSD for LLVM v12+.

Packages are available at: https://dev.dns-oarc.net/packages/

4346a48 static inline

Release 1.2.2

05 Nov 09:51
Compare
Choose a tag to compare

This patch release fixes a small issues with the generated compatibility code and updates the package control files for Debian.

Packages are available at: https://dev.dns-oarc.net/packages/

3cdd801 Fix compat
cb352c6 debhelper

Release 1.2.1

07 Jul 09:41
Compare
Choose a tag to compare

This patch release fixes packages for SLE/openSUSE and the generation of an environment script for the stand-alone tool example.

Packages are available at: https://dev.dns-oarc.net/packages/

9c6f630 SLE/openSUSE
f07ac4a Stand-alone tool example

Release 1.2.0

05 Jul 13:00
Compare
Choose a tag to compare

This release adds development files and autotool examples for C/Lua modules or stand-alone tools for dnsjit.

Packages are available at: https://dev.dns-oarc.net/packages/

In examples/ you'll now also find:

  • modules/input-example
    This input example is based on dnsjit.input.zero which was a testing modules during the early days of dnsjit.
    It's a C module that generates empty objects for the receiver.

  • modules/filter-example:
    This filter example is C module that counts the number of objects passed to it before sending it to the receiver.

  • modules/output-example:
    This output example is based on dnsjit.output.null which was a testing modules during the early days of dnsjit.
    It's a C module that will just discard objects it receives.

  • modules/lib-example:
    This example Lua module takes two core_timespec_t C objects and gives the duration between them as a string.

  • stand-alone-tool:
    This example is based on test_pcap_read.lua and test_throughput.lua which was previous located in examples/.
    There are two installable Lua programs and shows how to depend on a dnsjit version, depend on specific dnsjit modules and how to run tests using make test.

All these examples can easily be copied and renamed to build and distribute your own dnsjit modules and tools, using autotool for configure, make and make install.

Development files will also be installed, or can be installed via dnsjit-dev/dnsjit-devel packages. All C headers have been prefixed with dnsjit/ (for example #include <dnsjit/version.h>).

Thanks to this new setup, the module output.dnssim has been moved out from dnsjit's repository and placed in DNS shotgun's: https://gitlab.nic.cz/knot/shotgun/-/tree/master/replay/dnssim
This will help CZ.NIC to maintain and release both the module and tool at the same time.

New modules:

  • Added input.zpcap, module for reading LZ4/ZSTD compressed PCAPs
  • Added core.loader, module for loading C modules using LuaJIT's ffi interface and package.cpath
  • Added core.file with core_file_exists(), a C function to check if a file exists

Other changes:

  • Add <dnsjit/version.h> for DNSJIT_MAJOR_VERSION, DNSJIT_MINOR_VERSION, DNSJIT_PATCH_VERSION
  • dnsjit: Remove version print on start
  • dnsjit.input.zero: Will require("example.input.zero") for backwards compatibility
  • dnsjit.output.null: Will require("example.output.null") for backwards compatibility
  • core/timespec: Add :max_init(), return a new object with maximum values set for seconds and nanoseconds.
  • output/pcap:
    • Update open() man-page, indicate usage of pcap_dump_open()
    • Add have_errors() to check for write errors during/after dumping
  • input.fpcap: Add fadvise_sequential() to advise sequential read of the file
  • examples/dumpdns.lua: Add support for dumping compressed PCAPs

Bugfixes:

  • lib/getopt: Fix short options, error if length is not 1
  • core/timespec: Fix typo in struct documentation

892ac65 example lib
ae7e647 stand alone tool, dnsjit
2d937a5 Package
5c5ba74 Package
6059bb5 Package
48df46f zpcap
ff13586 Remove dnssim
389f274 filter example
45e0102 output example
9d76760 Example input
f823db8 Example modules - input
df12078 f/m-advise
31ee04d WIP: Advise kernel that inputs are read sequentially
eff6313 Output PCAP man-page, errors
ac60fec Timespec
cea7936 Bye Travis
a5c967f getopt
506ee99 getopt: detect incorrect short strings

Release 1.1.0

03 Feb 12:57
Compare
Choose a tag to compare

This releases adds a new module for handling Base64 URLs and new calls for error handling and opening PCAPs using file descriptors, along with a bug fix in lib.getopt and other changes.

Packages are available at: https://dev.dns-oarc.net/packages/

The dnssim module has also gotten its own version and changelog, this is to prepare it for being moved outside of dnsjit's repository in the future.

New modules, calls, features:

  • New lib.base64url: Utility library to convert data to base64url format
  • core.log: New call Log.errstr(): Convert error number to its text representation
  • input.fpcap: New call Fpcap.openfp(): Open a PCAP file for processing using a file descriptor, for example io.stdin
  • output.dnssim: Support for DNS-over-HTTPS

Bug fixes:

  • lib.getopt: Fix bug where - and -- could not be used as arguments to options

Other changes:

  • Fix typo in configure help text
  • Add coverage
  • filter.ipsplit: Extend PRNG modulus to 2^31, new implementation is the same as glibc's rand()
  • lib.ip: Fix typo in documentation
  • output.dnssim:
    • This module now has it's own changelog
    • Updated to v20210129
    • Depend on libhttp2 for dnssim DNS-over-HTTPS capabilities
  • output.pcap: Log libpcap error when failing to open
  • SUSE packages now depend on moonjit because of lack of LuaJIT support

d001ccb m4
4b63bce output/dnssim: add changelog
7355810 output/dnssim: add version checks
95fa6a9 input pcap/fpcap, getopt
99c3d9f test/test_ipsplit: update to use new PRNG
3235b09 filter/ipsplit: extend PRNG modulus to 2^31
8ff81a0 fixup! input.fpcap: filename "-" reads from stdin
63cf0a4 output/dnssim: fix regression in DoH GET
367d0b8 input.pcap: document stdin feature of open_offline()
8d94504 input.fpcap: filename "-" reads from stdin
617058e getopt: accept singleton - also as option value
7d7f17c output/dnssim: unify failed to bind error messages
bdf1517 output/dnssim: add IPv4 support
15a21da Sonarcloud
ceeea1d SUSE
1fc3c82 PR179
2f5d38f output/dnssim: allow user-set instance log name
b036c68 Info
0af1ffb Travis, configure
49bdc08 output/dnssim: implement udp(tcp_fallback) method
b4f9cf9 man: update gitlab.labs.nic.cz to gitlab.nic.cz
45b977d output/dnssim: update man page
4184090 output/dnssim: https2 - fix connection closure issues
342f33e output/dnssim: https2 - omit closing connection inside callback
67a76d5 output/dnssim: handle all states when closing connection
41f04d8 output/dnssim: document importance of conn state enum ordering
795ab6f output/dnssim: tls - fix handling of CONGESTED connections
8792b32 output/dnssim: match QUESTION section of received responses
3a88f5b Coverage
4f611c8 dnssim
6e35d5b Compile
63faa44 README, format code, man-page
925f85e lib: add missing man reference
9239087 output/dnssim: fix man formatting
bd7bee5 fix lua log levels
4083efd output/dnssim: fix doc typo
24c22b8 lib/base64url: add lua bindings
69be2a1 core/log: add errstr() utility function
0c14d74 output/dnssim: improve https2() documentation and behaviour
f74e19c output/pcap: log errors when opening output PCAP
6fe699a output/dnssim: cleanup and nitpicks
96db8a9 output/https2: handle max_concurrent_streams similar to nghttp2
15ea609 output/dnssim: https2 - ensure uri authority is always set
fad3ed6 output/dnssim: https2 - fix some TODOs
0bee6d8 output/dnssim: https2 - lua documentation
e83e010 output/dnssim: https2 - implement GET method
b553e0f output/dnssim: https2 - configure method
a431a0d contrib: add base64url functions
c753097 output/dnssim: https2 - set default concurrent stream limit
d49f275 output/dnssim: https2 - track number of open streams
2f7217f output/dnssim: https2 - improve data send edge cases
c0abebc output/dnssim: https2 - return correct error code on send failure
5b1f6c3 output/dnssim: conn - avoid assert when tearing down failed connections
5c42266 output/dnssim: exit when file descriptors run out
1ab2ab6 output/dnssim: https2 - additional asserts to detect invalid data
4424eb3 output/dnssim: https2 - check response code
303f2cd output/dnssim: https2 - improve QID mismatch debug msg
86e3761 output/dnssim: https2 - bugfixes
4a52f47 output/dnssim: https2 - use more consistent code style for pointers
c8d853e output/dnssim: conn - fix potential memory leak
3e6038b output/dnssim: https2 - enable zero-ing out msgid
712634c output/dnssim: https2 - properly match dnsmsg to query from http request
5abe943 output/dnssim: https2 - free memory on teardown
39a9e9e output/dnssim: https2 - initial implementation
058aee2 output/dnssim: https2 - initialize and setup session
85eb4a3 output/dnssim: https2 - add libnghttp2 dependency
6712bd6 output/dnssim: https2 - add skeleton

Release 1.0.0

23 Jul 14:42
Compare
Choose a tag to compare

First release of dnsjit.

Packages are available at: https://dev.dns-oarc.net/packages/