Skip to content

Commit

Permalink
dns/dnsjit: New port: Engine for capturing, parsing and replaying DNS
Browse files Browse the repository at this point in the history
dnsjit is a combination of parts taken from dsc, dnscap, drool, and
put together around Lua to create a script-based engine for easy
capturing, parsing and statistics gathering of DNS messages while
also providing facilities for replaying DNS traffic.

WWW: https://github.com/DNS-OARC/dnsjit

Originally submitted by pi, updated by Leo Vandewoestijne and I made
some minor fixes on top of Leo's patch

PR:		235461
Approved by:	arrowd (mentor)
Differential Revision:	https://reviews.freebsd.org/D32268
  • Loading branch information
opsec authored and Daniel Engberg committed Oct 4, 2021
1 parent ce92526 commit bfcb458
Show file tree
Hide file tree
Showing 5 changed files with 212 additions and 0 deletions.
1 change: 1 addition & 0 deletions dns/Makefile
Expand Up @@ -44,6 +44,7 @@
SUBDIR += dnsforwarder
SUBDIR += dnshistory
SUBDIR += dnsjava
SUBDIR += dnsjit
SUBDIR += dnsmasq
SUBDIR += dnsmasq-devel
SUBDIR += dnsmax-perl
Expand Down
35 changes: 35 additions & 0 deletions dns/dnsjit/Makefile
@@ -0,0 +1,35 @@
PORTNAME= dnsjit
DISTVERSIONPREFIX= v
DISTVERSION= 1.2.1
CATEGORIES= dns net

PATCH_SITES= https://github.com/DNS-OARC/dnsjit/commit/
PATCHFILES= 3cdd801153373a316027920e5c650f111777fab4.patch:-p1

MAINTAINER= freebsd@dns.company
COMMENT= Engine for capturing, parsing and replaying DNS

LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE

LIB_DEPENDS= libck.so:devel/concurrencykit \
libgnutls.so:security/gnutls \
liblmdb.so:databases/lmdb \
libluajit-5.1.so:lang/luajit-openresty \
liblz4.so:archivers/liblz4 \
libpcap.so:net/libpcap \
libzstd.so:archivers/zstd

USES= autoreconf libtool pkgconfig
USE_GITHUB= yes
GH_ACCOUNT= DNS-OARC

GNU_CONFIGURE= yes

OPTIONS_DEFINE= EXAMPLES

post-install-EXAMPLES-on:
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/examples/*.lua ${STAGEDIR}${EXAMPLESDIR}

.include <bsd.port.mk>
5 changes: 5 additions & 0 deletions dns/dnsjit/distinfo
@@ -0,0 +1,5 @@
TIMESTAMP = 1631872554
SHA256 (DNS-OARC-dnsjit-v1.2.1_GH0.tar.gz) = ecac17974d104c17d1df775c2b548109ad7e53d05fbc2acd823fa43fce330d51
SIZE (DNS-OARC-dnsjit-v1.2.1_GH0.tar.gz) = 187114
SHA256 (3cdd801153373a316027920e5c650f111777fab4.patch) = dfebe484d81e35c13f87b060eba4878cee88c0edd00a6caa57573f897e5f9a9b
SIZE (3cdd801153373a316027920e5c650f111777fab4.patch) = 1009
13 changes: 13 additions & 0 deletions dns/dnsjit/pkg-descr
@@ -0,0 +1,13 @@
dnsjit is a combination of parts taken from dsc, dnscap, drool, and
put together around Lua to create a script-based engine for easy
capturing, parsing and statistics gathering of DNS messages while
also providing facilities for replaying DNS traffic.

One of the core functionality that dnsjit brings is to tie together
C and Lua modules through a receiver/receive interface. This allows
creation of custom chains of functionality to meet various requirements.
Another core functionality is the ability to parse and process DNS
messages even if the messages are non-compliant with the DNS
standards.

WWW: https://www.dns-oarc.net/tools/dnsjit
158 changes: 158 additions & 0 deletions dns/dnsjit/pkg-plist
@@ -0,0 +1,158 @@
bin/dnsjit
include/dnsjit/core/assert.h
include/dnsjit/core/channel.h
include/dnsjit/core/channel.hh
include/dnsjit/core/compat.h
include/dnsjit/core/file.h
include/dnsjit/core/file.hh
include/dnsjit/core/log.h
include/dnsjit/core/log.hh
include/dnsjit/core/object.h
include/dnsjit/core/object.hh
include/dnsjit/core/object/dns.h
include/dnsjit/core/object/dns.hh
include/dnsjit/core/object/ether.h
include/dnsjit/core/object/ether.hh
include/dnsjit/core/object/gre.h
include/dnsjit/core/object/gre.hh
include/dnsjit/core/object/icmp.h
include/dnsjit/core/object/icmp.hh
include/dnsjit/core/object/icmp6.h
include/dnsjit/core/object/icmp6.hh
include/dnsjit/core/object/ieee802.h
include/dnsjit/core/object/ieee802.hh
include/dnsjit/core/object/ip.h
include/dnsjit/core/object/ip.hh
include/dnsjit/core/object/ip6.h
include/dnsjit/core/object/ip6.hh
include/dnsjit/core/object/linuxsll.h
include/dnsjit/core/object/linuxsll.hh
include/dnsjit/core/object/loop.h
include/dnsjit/core/object/loop.hh
include/dnsjit/core/object/null.h
include/dnsjit/core/object/null.hh
include/dnsjit/core/object/payload.h
include/dnsjit/core/object/payload.hh
include/dnsjit/core/object/pcap.h
include/dnsjit/core/object/pcap.hh
include/dnsjit/core/object/tcp.h
include/dnsjit/core/object/tcp.hh
include/dnsjit/core/object/udp.h
include/dnsjit/core/object/udp.hh
include/dnsjit/core/producer.h
include/dnsjit/core/producer.hh
include/dnsjit/core/receiver.h
include/dnsjit/core/receiver.hh
include/dnsjit/core/thread.h
include/dnsjit/core/thread.hh
include/dnsjit/core/timespec.h
include/dnsjit/core/timespec.hh
include/dnsjit/filter/copy.h
include/dnsjit/filter/copy.hh
include/dnsjit/filter/ipsplit.h
include/dnsjit/filter/ipsplit.hh
include/dnsjit/filter/layer.h
include/dnsjit/filter/layer.hh
include/dnsjit/filter/split.h
include/dnsjit/filter/split.hh
include/dnsjit/filter/timing.h
include/dnsjit/filter/timing.hh
include/dnsjit/globals.h
include/dnsjit/input/fpcap.h
include/dnsjit/input/fpcap.hh
include/dnsjit/input/mmpcap.h
include/dnsjit/input/mmpcap.hh
include/dnsjit/input/pcap.h
include/dnsjit/input/pcap.hh
include/dnsjit/input/zpcap.h
include/dnsjit/input/zpcap.hh
include/dnsjit/lib/base64url.h
include/dnsjit/lib/base64url.hh
include/dnsjit/lib/clock.h
include/dnsjit/lib/clock.hh
include/dnsjit/lib/trie.h
include/dnsjit/lib/trie.hh
include/dnsjit/output/dnscli.h
include/dnsjit/output/dnscli.hh
include/dnsjit/output/pcap.h
include/dnsjit/output/pcap.hh
include/dnsjit/output/respdiff.h
include/dnsjit/output/respdiff.hh
include/dnsjit/output/tcpcli.h
include/dnsjit/output/tcpcli.hh
include/dnsjit/output/tlscli.h
include/dnsjit/output/tlscli.hh
include/dnsjit/output/udpcli.h
include/dnsjit/output/udpcli.hh
include/dnsjit/version.h
man/man1/dnsjit.1.gz
man/man3/dnsjit.core.3.gz
man/man3/dnsjit.core.channel.3.gz
man/man3/dnsjit.core.compat.3.gz
man/man3/dnsjit.core.file.3.gz
man/man3/dnsjit.core.loader.3.gz
man/man3/dnsjit.core.log.3.gz
man/man3/dnsjit.core.object.3.gz
man/man3/dnsjit.core.object.dns.3.gz
man/man3/dnsjit.core.object.dns.label.3.gz
man/man3/dnsjit.core.object.dns.q.3.gz
man/man3/dnsjit.core.object.dns.rr.3.gz
man/man3/dnsjit.core.object.ether.3.gz
man/man3/dnsjit.core.object.gre.3.gz
man/man3/dnsjit.core.object.icmp.3.gz
man/man3/dnsjit.core.object.icmp6.3.gz
man/man3/dnsjit.core.object.ieee802.3.gz
man/man3/dnsjit.core.object.ip.3.gz
man/man3/dnsjit.core.object.ip6.3.gz
man/man3/dnsjit.core.object.linuxsll.3.gz
man/man3/dnsjit.core.object.loop.3.gz
man/man3/dnsjit.core.object.null.3.gz
man/man3/dnsjit.core.object.payload.3.gz
man/man3/dnsjit.core.object.pcap.3.gz
man/man3/dnsjit.core.object.tcp.3.gz
man/man3/dnsjit.core.object.udp.3.gz
man/man3/dnsjit.core.objects.3.gz
man/man3/dnsjit.core.producer.3.gz
man/man3/dnsjit.core.receiver.3.gz
man/man3/dnsjit.core.thread.3.gz
man/man3/dnsjit.core.timespec.3.gz
man/man3/dnsjit.filter.3.gz
man/man3/dnsjit.filter.copy.3.gz
man/man3/dnsjit.filter.ipsplit.3.gz
man/man3/dnsjit.filter.layer.3.gz
man/man3/dnsjit.filter.split.3.gz
man/man3/dnsjit.filter.timing.3.gz
man/man3/dnsjit.input.3.gz
man/man3/dnsjit.input.fpcap.3.gz
man/man3/dnsjit.input.mmpcap.3.gz
man/man3/dnsjit.input.pcap.3.gz
man/man3/dnsjit.input.zero.3.gz
man/man3/dnsjit.input.zpcap.3.gz
man/man3/dnsjit.lib.3.gz
man/man3/dnsjit.lib.base64url.3.gz
man/man3/dnsjit.lib.clock.3.gz
man/man3/dnsjit.lib.getopt.3.gz
man/man3/dnsjit.lib.ip.3.gz
man/man3/dnsjit.lib.parseconf.3.gz
man/man3/dnsjit.lib.trie.3.gz
man/man3/dnsjit.lib.trie.iter.3.gz
man/man3/dnsjit.lib.trie.node.3.gz
man/man3/dnsjit.output.3.gz
man/man3/dnsjit.output.dnscli.3.gz
man/man3/dnsjit.output.null.3.gz
man/man3/dnsjit.output.pcap.3.gz
man/man3/dnsjit.output.respdiff.3.gz
man/man3/dnsjit.output.tcpcli.3.gz
man/man3/dnsjit.output.tlscli.3.gz
man/man3/dnsjit.output.udpcli.3.gz
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/capture.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/count-pkts-per-ip.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dumpdns-qr.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dumpdns.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dumpdns2pcap.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/filter_rcode.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/qr-multi-pcap-state.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/readme.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/replay.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/replay_multicli.lua
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/respdiff.lua

0 comments on commit bfcb458

Please sign in to comment.