Merging upstream version 1.5.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-04-21 09:36:50 +02:00
parent a137dccb14
commit a673ab8183
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
419 changed files with 3061 additions and 1380 deletions

41
CHANGES
View file

@ -1,3 +1,44 @@
2025-04-16 Jerry Lundström
Release v1.5.0
This releases adds a new function to return a label quoted as described
in RFC 1035, adds support for link-type Linux cooked v2 and fixes
padding calculations for UDP, IPv4 and IPv6 packets.
New:
- `core.object.dns.label`: Add `torfc1035()`
- `core.object`: Add `linuxsll2` object
- `filter.layer`: Add support for DLT_LINUX_SLL2
- `filter.copy`: Add support for DLT_LINUX_SLL2
Fixes:
- Fix #250: handle endian in tests
- Fix #252
- `core.object.ip6`: Add `hlen` for total length of header with all extensions
- `filter.layer`:
- correct UDP padding calculation
- Fix padding calculation for IPv4 packet when options exists
- Fix padding calculation for IPv6 packets
- Store `hlen` for IPv6 packets
- Add test for padding
Other changes:
- Simplify and speedup pcap2tcpdns example
d03a184 DLT_LINUX_SLL2
1cd3836 torfc1035
8d8746f Fix IPv6 hlen
75b634b Padding
b8bfcf8 Simplify and speedup pcap2tcpdns example
e37bb92 Fix log name in examples/pcap2tcpdns.lua
80b7c34 UDP padding
9a28aee ipsplit endian
375e9e8 SPEC
c82c0ca RPM
74fbda2 COPR tweaks
3691bd8 RPM spec
2024-08-28 Jerry Lundström 2024-08-28 Jerry Lundström
Release 1.4.0 Release 1.4.0

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.

View file

@ -14,7 +14,7 @@
@SET_MAKE@ @SET_MAKE@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.
@ -288,6 +288,7 @@ EGREP = @EGREP@
ETAGS = @ETAGS@ ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
FILECMD = @FILECMD@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@

View file

@ -137,7 +137,7 @@ See more examples in the [examples](https://github.com/DNS-OARC/dnsjit/tree/deve
## Copyright ## Copyright
Copyright (c) 2018-2024 OARC, Inc. Copyright (c) 2018-2025 OARC, Inc.
All rights reserved. All rights reserved.

72
aclocal.m4 vendored
View file

@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2) # serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
@ -108,7 +108,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS], AC_DEFUN([PKG_CHECK_EXISTS],
@ -296,6 +296,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR ])dnl PKG_CHECK_VAR
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------
dnl
dnl Prepare a "--with-" configure option using the lowercase
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
dnl PKG_CHECK_MODULES in a single macro.
AC_DEFUN([PKG_WITH_MODULES],
[
m4_pushdef([with_arg], m4_tolower([$1]))
m4_pushdef([description],
[m4_default([$5], [build with ]with_arg[ support])])
m4_pushdef([def_arg], [m4_default([$6], [auto])])
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
m4_case(def_arg,
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
[m4_pushdef([with_without],[--with-]with_arg)])
AC_ARG_WITH(with_arg,
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
[AS_TR_SH([with_]with_arg)=def_arg])
AS_CASE([$AS_TR_SH([with_]with_arg)],
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
[auto],[PKG_CHECK_MODULES([$1],[$2],
[m4_n([def_action_if_found]) $3],
[m4_n([def_action_if_not_found]) $4])])
m4_popdef([with_arg])
m4_popdef([description])
m4_popdef([def_arg])
])dnl PKG_WITH_MODULES
dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl -----------------------------------------------
dnl
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
dnl check._[VARIABLE-PREFIX] is exported as make variable.
AC_DEFUN([PKG_HAVE_WITH_MODULES],
[
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
AM_CONDITIONAL([HAVE_][$1],
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
])dnl PKG_HAVE_WITH_MODULES
dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------------------
dnl
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
dnl and preprocessor variable.
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
[
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES
# Copyright (C) 2002-2021 Free Software Foundation, Inc. # Copyright (C) 2002-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation

317
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for dnsjit 1.4.0. # Generated by GNU Autoconf 2.71 for dnsjit 1.5.0.
# #
# Report bugs to <admin@dns-oarc.net>. # Report bugs to <admin@dns-oarc.net>.
# #
@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='dnsjit' PACKAGE_NAME='dnsjit'
PACKAGE_TARNAME='dnsjit' PACKAGE_TARNAME='dnsjit'
PACKAGE_VERSION='1.4.0' PACKAGE_VERSION='1.5.0'
PACKAGE_STRING='dnsjit 1.4.0' PACKAGE_STRING='dnsjit 1.5.0'
PACKAGE_BUGREPORT='admin@dns-oarc.net' PACKAGE_BUGREPORT='admin@dns-oarc.net'
PACKAGE_URL='https://github.com/DNS-OARC/dnsjit/issues' PACKAGE_URL='https://github.com/DNS-OARC/dnsjit/issues'
@ -700,6 +700,7 @@ MANIFEST_TOOL
RANLIB RANLIB
DLLTOOL DLLTOOL
OBJDUMP OBJDUMP
FILECMD
LN_S LN_S
NM NM
ac_ct_DUMPBIN ac_ct_DUMPBIN
@ -1400,7 +1401,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures dnsjit 1.4.0 to adapt to many kinds of systems. \`configure' configures dnsjit 1.5.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1471,7 +1472,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of dnsjit 1.4.0:";; short | recursive ) echo "Configuration of dnsjit 1.5.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1618,7 +1619,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
dnsjit configure 1.4.0 dnsjit configure 1.5.0
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@ -2106,7 +2107,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by dnsjit $as_me 1.4.0, which was It was created by dnsjit $as_me 1.5.0, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -2866,7 +2867,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
printf "%s\n" "#define PACKAGE_MAJOR_VERSION 1" >>confdefs.h printf "%s\n" "#define PACKAGE_MAJOR_VERSION 1" >>confdefs.h
printf "%s\n" "#define PACKAGE_MINOR_VERSION 4" >>confdefs.h printf "%s\n" "#define PACKAGE_MINOR_VERSION 5" >>confdefs.h
printf "%s\n" "#define PACKAGE_PATCH_VERSION 0" >>confdefs.h printf "%s\n" "#define PACKAGE_PATCH_VERSION 0" >>confdefs.h
@ -3385,7 +3386,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='dnsjit' PACKAGE='dnsjit'
VERSION='1.4.0' VERSION='1.5.0'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -5012,8 +5013,8 @@ esac
macro_version='2.4.6' macro_version='2.4.7'
macro_revision='2.4.6' macro_revision='2.4.7'
@ -5566,13 +5567,13 @@ else
mingw*) lt_bad_file=conftest.nm/nofile ;; mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;; *) lt_bad_file=/dev/null ;;
esac esac
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*) *$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B" lt_cv_path_NM="$tmp_nm -B"
break 2 break 2
;; ;;
*) *)
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
*/dev/null*) */dev/null*)
lt_cv_path_NM="$tmp_nm -p" lt_cv_path_NM="$tmp_nm -p"
break 2 break 2
@ -5710,7 +5711,7 @@ esac
fi fi
fi fi
case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
*COFF*) *COFF*)
DUMPBIN="$DUMPBIN -symbols -headers" DUMPBIN="$DUMPBIN -symbols -headers"
;; ;;
@ -5814,7 +5815,7 @@ else $as_nop
lt_cv_sys_max_cmd_len=8192; lt_cv_sys_max_cmd_len=8192;
;; ;;
bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
# This has been around since 386BSD, at least. Likely further. # This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@ -5857,7 +5858,7 @@ else $as_nop
sysv5* | sco5v6* | sysv4.2uw2*) sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then if test -n "$kargmax"; then
lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
else else
lt_cv_sys_max_cmd_len=32768 lt_cv_sys_max_cmd_len=32768
fi fi
@ -6062,6 +6063,114 @@ esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
set dummy ${ac_tool_prefix}file; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_FILECMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$FILECMD"; then
ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_FILECMD="${ac_tool_prefix}file"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
FILECMD=$ac_cv_prog_FILECMD
if test -n "$FILECMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
printf "%s\n" "$FILECMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_FILECMD"; then
ac_ct_FILECMD=$FILECMD
# Extract the first word of "file", so it can be a program name with args.
set dummy file; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_FILECMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_FILECMD"; then
ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_FILECMD="file"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
if test -n "$ac_ct_FILECMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
printf "%s\n" "$ac_ct_FILECMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_FILECMD" = x; then
FILECMD=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
FILECMD=$ac_ct_FILECMD
fi
else
FILECMD="$ac_cv_prog_FILECMD"
fi
if test -n "$ac_tool_prefix"; then if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2 set dummy ${ac_tool_prefix}objdump; ac_word=$2
@ -6205,7 +6314,7 @@ beos*)
bsdi[45]*) bsdi[45]*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_cmd='$FILECMD -L'
lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_file_magic_test_file=/shlib/libc.so
;; ;;
@ -6239,14 +6348,14 @@ darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all lt_cv_deplibs_check_method=pass_all
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in case $host_cpu in
i*86 ) i*86 )
# Not sure whether the presence of OpenBSD here was a mistake. # Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up. # Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;; ;;
esac esac
@ -6260,7 +6369,7 @@ haiku*)
;; ;;
hpux10.20* | hpux11*) hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
case $host_cpu in case $host_cpu in
ia64*) ia64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
@ -6307,7 +6416,7 @@ netbsd* | netbsdelf*-gnu)
newos6*) newos6*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=/usr/lib/libnls.so lt_cv_file_magic_test_file=/usr/lib/libnls.so
;; ;;
@ -6680,13 +6789,29 @@ esac
fi fi
: ${AR=ar} : ${AR=ar}
: ${AR_FLAGS=cr}
# Use ARFLAGS variable as AR's operation code to sync the variable naming with
# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
# higher priority because thats what people were doing historically (setting
# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
# variable obsoleted/removed.
test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
lt_ar_flags=$AR_FLAGS
# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
@ -7103,7 +7228,7 @@ esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import. # Gets list of data symbols to import.
lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables. # Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@ -7121,20 +7246,20 @@ fi
# Transform an extracted symbol line into a proper C declaration. # Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently, # Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach. # so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n"\ lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
$lt_cdecl_hook\ $lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address # Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
$lt_c_name_hook\ $lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and # Transform an extracted symbol line into symbol name with lib prefix and
# symbol address. # symbol address.
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
$lt_c_name_lib_hook\ $lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@ -7158,7 +7283,7 @@ for ac_symprfx in "" "_"; do
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function, # Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable. # D for any global variable and I for any imported variable.
# Also find C++ and __fastcall symbols from MSVC++, # Also find C++ and __fastcall symbols from MSVC++ or ICC,
# which start with @ or ?. # which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\ lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\ " {last_section=section; section=\$ 3};"\
@ -7176,9 +7301,9 @@ for ac_symprfx in "" "_"; do
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx" " ' prfx=^$ac_symprfx"
else else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi fi
lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
# Check to see that the pipe works correctly. # Check to see that the pipe works correctly.
pipe_works=no pipe_works=no
@ -7378,7 +7503,7 @@ case $with_sysroot in #(
fi fi
;; #( ;; #(
/*) /*)
lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
;; #( ;; #(
no|'') no|'')
;; #( ;; #(
@ -7503,7 +7628,7 @@ ia64-*-hpux*)
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*ELF-32*) *ELF-32*)
HPUX_IA64_MODE=32 HPUX_IA64_MODE=32
;; ;;
@ -7524,7 +7649,7 @@ ia64-*-hpux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -melf32bsmip" LD="${LD-ld} -melf32bsmip"
;; ;;
@ -7536,7 +7661,7 @@ ia64-*-hpux*)
;; ;;
esac esac
else else
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -32" LD="${LD-ld} -32"
;; ;;
@ -7562,7 +7687,7 @@ mips64*-*linux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
emul=elf emul=elf
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
emul="${emul}32" emul="${emul}32"
;; ;;
@ -7570,7 +7695,7 @@ mips64*-*linux*)
emul="${emul}64" emul="${emul}64"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*MSB*) *MSB*)
emul="${emul}btsmip" emul="${emul}btsmip"
;; ;;
@ -7578,7 +7703,7 @@ mips64*-*linux*)
emul="${emul}ltsmip" emul="${emul}ltsmip"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*N32*) *N32*)
emul="${emul}n32" emul="${emul}n32"
;; ;;
@ -7602,14 +7727,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*32-bit*) *32-bit*)
case $host in case $host in
x86_64-*kfreebsd*-gnu) x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd" LD="${LD-ld} -m elf_i386_fbsd"
;; ;;
x86_64-*linux*) x86_64-*linux*)
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*x86-64*) *x86-64*)
LD="${LD-ld} -m elf32_x86_64" LD="${LD-ld} -m elf32_x86_64"
;; ;;
@ -7717,7 +7842,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*64-bit*) *64-bit*)
case $lt_cv_prog_gnu_ld in case $lt_cv_prog_gnu_ld in
yes*) yes*)
@ -8500,8 +8625,8 @@ int forced_loaded() { return 2;}
_LT_EOF _LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cr libconftest.a conftest.o" >&5 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
$AR cr libconftest.a conftest.o 2>&5 $AR $AR_FLAGS libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5 echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5 $RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF cat > conftest.c << _LT_EOF
@ -8528,16 +8653,11 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; }
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*) darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
darwin*) # darwin 5.x on darwin*)
# if running on 10.5 or later, the deployment target defaults case $MACOSX_DEPLOYMENT_TARGET,$host in
# to the OS version, if on x86, and 10.4, the deployment 10.[012],*|,*powerpc*-darwin[5-8]*)
# target defaults to 10.4. Don't you love it?
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
10.0,*86*-darwin8*|10.0,*-darwin[912]*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[012][,.]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10.*|11.*) *)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac esac
;; ;;
@ -8925,8 +9045,8 @@ esac
ofile=libtool ofile=libtool
can_build_shared=yes can_build_shared=yes
# All known linkers require a '.a' archive for static linking (except MSVC, # All known linkers require a '.a' archive for static linking (except MSVC and
# which needs '.lib'). # ICC, which need '.lib').
libext=a libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld with_gnu_ld=$lt_cv_prog_gnu_ld
@ -9444,7 +9564,7 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-qstaticlink' lt_prog_compiler_static='-qstaticlink'
;; ;;
*) *)
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker # Sun Fortran 8.3 passes all unrecognized flags to the linker
lt_prog_compiler_pic='-KPIC' lt_prog_compiler_pic='-KPIC'
@ -9867,15 +9987,15 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
case $host_os in case $host_os in
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
if test yes != "$GCC"; then if test yes != "$GCC"; then
with_gnu_ld=no with_gnu_ld=no
fi fi
;; ;;
interix*) interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
with_gnu_ld=yes with_gnu_ld=yes
;; ;;
openbsd* | bitrig*) openbsd* | bitrig*)
@ -9930,7 +10050,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
whole_archive_flag_spec= whole_archive_flag_spec=
fi fi
supports_anon_versioning=no supports_anon_versioning=no
case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;; *GNU\ gold*) supports_anon_versioning=yes ;;
*\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@ -10042,6 +10162,7 @@ _LT_EOF
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes enable_shared_with_static_runtimes=yes
file_list_spec='@'
;; ;;
interix[3-9]*) interix[3-9]*)
@ -10056,7 +10177,7 @@ _LT_EOF
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space. # time. Moving up from 0x10000000 also allows more sbrk(2) space.
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;; ;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@ -10099,7 +10220,7 @@ _LT_EOF
compiler_needs_object=yes compiler_needs_object=yes
;; ;;
esac esac
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ C*) # Sun C 5.9 *Sun\ C*) # Sun C 5.9
whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes compiler_needs_object=yes
@ -10111,13 +10232,14 @@ _LT_EOF
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi fi
case $cc_basename in case $cc_basename in
tcc*) tcc*)
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
export_dynamic_flag_spec='-rdynamic' export_dynamic_flag_spec='-rdynamic'
;; ;;
xlf* | bgf* | bgxlf* | mpixlf*) xlf* | bgf* | bgxlf* | mpixlf*)
@ -10127,7 +10249,7 @@ _LT_EOF
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi fi
@ -10259,7 +10381,7 @@ _LT_EOF
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else else
export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi fi
aix_use_runtimelinking=no aix_use_runtimelinking=no
@ -10530,12 +10652,12 @@ fi
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
# hardcode_libdir_flag_spec is actually meaningless, as there is # hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs. # no search path for DLLs.
case $cc_basename in case $cc_basename in
cl*) cl* | icl*)
# Native MSVC # Native MSVC or ICC
hardcode_libdir_flag_spec=' ' hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
always_export_symbols=yes always_export_symbols=yes
@ -10576,7 +10698,7 @@ fi
fi' fi'
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
hardcode_libdir_flag_spec=' ' hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files. # Tell ltmain to make .lib files, not .a files.
@ -10617,8 +10739,8 @@ fi
output_verbose_link_cmd=func_echo_all output_verbose_link_cmd=func_echo_all
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
else else
ld_shlibs=no ld_shlibs=no
@ -10652,7 +10774,7 @@ fi
;; ;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries. # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes hardcode_direct=yes
@ -10833,6 +10955,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
# Fabrice Bellard et al's Tiny C Compiler # Fabrice Bellard et al's Tiny C Compiler
ld_shlibs=yes ld_shlibs=yes
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
;; ;;
esac esac
;; ;;
@ -10904,6 +11027,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes enable_shared_with_static_runtimes=yes
file_list_spec='@'
;; ;;
osf3*) osf3*)
@ -11596,7 +11720,7 @@ cygwin* | mingw* | pw32* | cegcc*)
case $host_os in case $host_os in
cygwin*) cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib' # Cygwin DLLs use 'cyg' prefix rather than 'lib'
soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
;; ;;
@ -11606,14 +11730,14 @@ cygwin* | mingw* | pw32* | cegcc*)
;; ;;
pw32*) pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib' # pw32 DLLs use 'pw' prefix rather than 'lib'
library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;; ;;
esac esac
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
*,cl*) *,cl* | *,icl*)
# Native MSVC # Native MSVC or ICC
libname_spec='$name' libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib' library_names_spec='$libname.dll.lib'
@ -11632,7 +11756,7 @@ cygwin* | mingw* | pw32* | cegcc*)
done done
IFS=$lt_save_ifs IFS=$lt_save_ifs
# Convert to MSYS style. # Convert to MSYS style.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
;; ;;
cygwin*) cygwin*)
# Convert to unix form, then to dos form, then back to unix form # Convert to unix form, then to dos form, then back to unix form
@ -11669,7 +11793,7 @@ cygwin* | mingw* | pw32* | cegcc*)
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
@ -11702,7 +11826,7 @@ dgux*)
shlibpath_var=LD_LIBRARY_PATH shlibpath_var=LD_LIBRARY_PATH
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
# DragonFly does not have aout. When/if they implement a new # DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this. # versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then if test -x /usr/bin/objformat; then
@ -12867,19 +12991,29 @@ striplib=
old_striplib= old_striplib=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; } printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then if test -z "$STRIP"; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
test -z "$striplib" && striplib="$STRIP --strip-unneeded" printf "%s\n" "no" >&6; }
else
if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
old_striplib="$STRIP --strip-debug"
striplib="$STRIP --strip-unneeded"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
else else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in case $host_os in
darwin*) darwin*)
if test -n "$STRIP"; then # FIXME - insert some real tests, host_os isn't really good enough
striplib="$STRIP -x" striplib="$STRIP -x"
old_striplib="$STRIP -S" old_striplib="$STRIP -S"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
;;
freebsd*)
if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
old_striplib="$STRIP --strip-debug"
striplib="$STRIP --strip-unneeded"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
else else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
@ -12891,6 +13025,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
;; ;;
esac esac
fi
fi fi
@ -17171,7 +17306,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by dnsjit $as_me 1.4.0, which was This file was extended by dnsjit $as_me 1.5.0, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -17240,7 +17375,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
dnsjit config.status 1.4.0 dnsjit config.status 1.5.0
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
@ -17403,6 +17538,7 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
@ -17411,6 +17547,7 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
@ -17531,6 +17668,7 @@ LN_S \
lt_SP2NL \ lt_SP2NL \
lt_NL2SP \ lt_NL2SP \
reload_flag \ reload_flag \
FILECMD \
OBJDUMP \ OBJDUMP \
deplibs_check_method \ deplibs_check_method \
file_magic_cmd \ file_magic_cmd \
@ -17539,7 +17677,6 @@ want_nocaseglob \
DLLTOOL \ DLLTOOL \
sharedlib_from_linklib_cmd \ sharedlib_from_linklib_cmd \
AR \ AR \
AR_FLAGS \
archiver_list_spec \ archiver_list_spec \
STRIP \ STRIP \
RANLIB \ RANLIB \
@ -18484,6 +18621,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
# convert \$build files to toolchain format. # convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd to_tool_file_cmd=$lt_cv_to_tool_file_cmd
# A file(cmd) program that detects file types.
FILECMD=$lt_FILECMD
# An object symbol dumper. # An object symbol dumper.
OBJDUMP=$lt_OBJDUMP OBJDUMP=$lt_OBJDUMP
@ -18508,8 +18648,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
# The archiver. # The archiver.
AR=$lt_AR AR=$lt_AR
# Flags to create an archive (by configure).
lt_ar_flags=$lt_ar_flags
# Flags to create an archive. # Flags to create an archive.
AR_FLAGS=$lt_AR_FLAGS AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
# How to feed a file listing to the archiver. # How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec archiver_list_spec=$lt_archiver_list_spec
@ -18885,7 +19028,7 @@ ltmain=$ac_aux_dir/ltmain.sh
# if finds mixed CR/LF and LF-only lines. Since sed operates in # if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem # text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too? # is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \ $SED '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1) || (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" || mv -f "$cfgfile" "$ofile" ||

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.
@ -17,9 +17,9 @@
# along with dnsjit. If not, see <http://www.gnu.org/licenses/>. # along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.64) AC_PREREQ(2.64)
AC_INIT([dnsjit], [1.4.0], [admin@dns-oarc.net], [dnsjit], [https://github.com/DNS-OARC/dnsjit/issues]) AC_INIT([dnsjit], [1.5.0], [admin@dns-oarc.net], [dnsjit], [https://github.com/DNS-OARC/dnsjit/issues])
AC_DEFINE([PACKAGE_MAJOR_VERSION], [1], [Define to the major version of this package.]) AC_DEFINE([PACKAGE_MAJOR_VERSION], [1], [Define to the major version of this package.])
AC_DEFINE([PACKAGE_MINOR_VERSION], [4], [Define to the minor version of this package.]) AC_DEFINE([PACKAGE_MINOR_VERSION], [5], [Define to the minor version of this package.])
AC_DEFINE([PACKAGE_PATCH_VERSION], [0], [Define to the patch version of this package.]) AC_DEFINE([PACKAGE_PATCH_VERSION], [0], [Define to the patch version of this package.])
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
AC_CONFIG_SRCDIR([src/dnsjit.c]) AC_CONFIG_SRCDIR([src/dnsjit.c])

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.

View file

@ -14,7 +14,7 @@
@SET_MAKE@ @SET_MAKE@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.
@ -209,6 +209,7 @@ EGREP = @EGREP@
ETAGS = @ETAGS@ ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
FILECMD = @FILECMD@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@

View file

@ -3,18 +3,20 @@
-- Convert PCAP with IPv[46] & UDP payloads into TCP-stream binary format as -- Convert PCAP with IPv[46] & UDP payloads into TCP-stream binary format as
-- specified by RFC 1035 section "4.2.2. TCP usage". Each packet is preceded by -- specified by RFC 1035 section "4.2.2. TCP usage". Each packet is preceded by
-- 2-byte preambule which specifies length of the following DNS packet in -- 2-byte preambule which specifies length of the following DNS message in
-- network byte order, immediately followed by raw bytes of the packet. -- network byte order, immediately followed by raw bytes of the DNS message.
--
-- Outputs raw binary to stdout!
-- --
-- This script does not do any filtering or input sanitation. -- This script does not do any filtering or input sanitation.
-- Outputs raw binary to stdout! -- For filtering capabilities look at dnscap -o dump_format=tcpdns
local bit = require("bit") local bit = require("bit")
local ffi = require("ffi") local ffi = require("ffi")
local input = require("dnsjit.input.pcap").new() local input = require("dnsjit.input.pcap").new()
local layer = require("dnsjit.filter.layer").new() local layer = require("dnsjit.filter.layer").new()
local object = require("dnsjit.core.objects") local object = require("dnsjit.core.objects")
local log = require("dnsjit.core.log").new("extract-clients.lua") local log = require("dnsjit.core.log").new("pcap2tcpdns")
local getopt = require("dnsjit.lib.getopt").new({ local getopt = require("dnsjit.lib.getopt").new({
{ "r", "read", "-", "input file to read, use - for stdin", "?" }, { "r", "read", "-", "input file to read, use - for stdin", "?" },
}) })
@ -54,27 +56,23 @@ local produce, pctx = layer:produce()
-- set up output -- set up output
io.stdout:setvbuf("full") io.stdout:setvbuf("full")
local obj, obj_pcap_in, obj_ip, obj_udp, obj_pl local obj, obj_udp, obj_pl
local npacketsin = 0 local npacketsout = 0
local npacketsskip = 0
local UDP_ID = object.UDP
while true do while true do
obj = produce(pctx) obj = produce(pctx)
if obj == nil then break end if obj == nil then break end
npacketsin = npacketsin + 1
obj_ip = obj:cast_to(object.IP)
if obj_ip == nil then
obj_ip = obj:cast_to(object.IP6)
end
obj_udp = obj:cast_to(object.UDP)
obj_pl = obj:cast_to(object.PAYLOAD) obj_pl = obj:cast_to(object.PAYLOAD)
obj_pcap_in = obj:cast_to(object.PCAP) if obj_pl ~= nil and obj_pl.len <= 65535 and obj_pl:prev().obj_type == UDP_ID then
if obj_ip ~= nil and obj_udp ~= nil and obj_pl ~= nil and obj_pcap_in ~= nil then
-- UDP header length is 8 bytes and is included in the ulen field below.
-- RFC 1035 framing has just the DNS message size as two bytes (big-endian). -- RFC 1035 framing has just the DNS message size as two bytes (big-endian).
put_uint16_be(tmpbuf, 0, obj_udp.ulen - 8) put_uint16_be(tmpbuf, 0, obj_pl.len)
io.stdout:write(ffi.string(tmpbuf, 2)) io.stdout:write(ffi.string(tmpbuf, 2))
io.stdout:write(ffi.string(obj_pl.payload, obj_pl.len)) io.stdout:write(ffi.string(obj_pl.payload, obj_pl.len))
npacketsout = npacketsout + 1
else
npacketsskip = npacketsskip + 1
end end
end end
log:info(string.format("processed %d packets", npacketsin)) log:info(string.format("%d packets copied, %d skipped", npacketsout, npacketsskip))

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.
@ -48,16 +48,16 @@ dnsjit_LDADD = $(PTHREAD_LIBS) $(luajit_LIBS) $(liblz4_LIBS) $(libzstd_LIBS) \
$(libpcap_LIBS) $(gnutls_LIBS) $(liblzma_LIBS) $(libpcap_LIBS) $(gnutls_LIBS) $(liblzma_LIBS)
# C source and headers # C source and headers
dnsjit_SOURCES += core/channel.c core/compat.c core/file.c core/log.c core/object.c core/object/dns.c core/object/ether.c core/object/gre.c core/object/icmp6.c core/object/icmp.c core/object/ieee802.c core/object/ip6.c core/object/ip.c core/object/linuxsll.c core/object/loop.c core/object/null.c core/object/payload.c core/object/pcap.c core/object/tcp.c core/object/udp.c core/producer.c core/receiver.c core/thread.c filter/copy.c filter/ipsplit.c filter/layer.c filter/split.c filter/timing.c input/fpcap.c input/mmpcap.c input/pcap.c input/zmmpcap.c input/zpcap.c lib/base64url.c lib/clock.c lib/trie.c output/dnscli.c output/pcap.c output/respdiff.c output/tcpcli.c output/tlscli.c output/udpcli.c dnsjit_SOURCES += core/channel.c core/compat.c core/file.c core/log.c core/object.c core/object/dns.c core/object/ether.c core/object/gre.c core/object/icmp6.c core/object/icmp.c core/object/ieee802.c core/object/ip6.c core/object/ip.c core/object/linuxsll2.c core/object/linuxsll.c core/object/loop.c core/object/null.c core/object/payload.c core/object/pcap.c core/object/tcp.c core/object/udp.c core/producer.c core/receiver.c core/thread.c filter/copy.c filter/ipsplit.c filter/layer.c filter/split.c filter/timing.c input/fpcap.c input/mmpcap.c input/pcap.c input/zmmpcap.c input/zpcap.c lib/base64url.c lib/clock.c lib/trie.c output/dnscli.c output/pcap.c output/respdiff.c output/tcpcli.c output/tlscli.c output/udpcli.c
nobase_dnsjitinclude_HEADERS += core/assert.h core/channel.h core/compat.h core/file.h core/log.h core/object/dns.h core/object/ether.h core/object/gre.h core/object.h core/object/icmp6.h core/object/icmp.h core/object/ieee802.h core/object/ip6.h core/object/ip.h core/object/linuxsll.h core/object/loop.h core/object/null.h core/object/payload.h core/object/pcap.h core/object/tcp.h core/object/udp.h core/producer.h core/receiver.h core/thread.h core/timespec.h filter/copy.h filter/ipsplit.h filter/layer.h filter/split.h filter/timing.h input/fpcap.h input/mmpcap.h input/pcap.h input/zmmpcap.h input/zpcap.h lib/base64url.h lib/clock.h lib/trie.h output/dnscli.h output/pcap.h output/respdiff.h output/tcpcli.h output/tlscli.h output/udpcli.h nobase_dnsjitinclude_HEADERS += core/assert.h core/channel.h core/compat.h core/file.h core/log.h core/object/dns.h core/object/ether.h core/object/gre.h core/object.h core/object/icmp6.h core/object/icmp.h core/object/ieee802.h core/object/ip6.h core/object/ip.h core/object/linuxsll2.h core/object/linuxsll.h core/object/loop.h core/object/null.h core/object/payload.h core/object/pcap.h core/object/tcp.h core/object/udp.h core/producer.h core/receiver.h core/thread.h core/timespec.h filter/copy.h filter/ipsplit.h filter/layer.h filter/split.h filter/timing.h input/fpcap.h input/mmpcap.h input/pcap.h input/zmmpcap.h input/zpcap.h lib/base64url.h lib/clock.h lib/trie.h output/dnscli.h output/pcap.h output/respdiff.h output/tcpcli.h output/tlscli.h output/udpcli.h
# Lua headers # Lua headers
nobase_dnsjitinclude_HEADERS += core/channel.hh core/file.hh core/log.hh core/object/dns.hh core/object/ether.hh core/object/gre.hh core/object.hh core/object/icmp6.hh core/object/icmp.hh core/object/ieee802.hh core/object/ip6.hh core/object/ip.hh core/object/linuxsll.hh core/object/loop.hh core/object/null.hh core/object/payload.hh core/object/pcap.hh core/object/tcp.hh core/object/udp.hh core/producer.hh core/receiver.hh core/thread.hh core/timespec.hh filter/copy.hh filter/ipsplit.hh filter/layer.hh filter/split.hh filter/timing.hh input/fpcap.hh input/mmpcap.hh input/pcap.hh input/zmmpcap.hh input/zpcap.hh lib/base64url.hh lib/clock.hh lib/trie.hh output/dnscli.hh output/pcap.hh output/respdiff.hh output/tcpcli.hh output/tlscli.hh output/udpcli.hh nobase_dnsjitinclude_HEADERS += core/channel.hh core/file.hh core/log.hh core/object/dns.hh core/object/ether.hh core/object/gre.hh core/object.hh core/object/icmp6.hh core/object/icmp.hh core/object/ieee802.hh core/object/ip6.hh core/object/ip.hh core/object/linuxsll2.hh core/object/linuxsll.hh core/object/loop.hh core/object/null.hh core/object/payload.hh core/object/pcap.hh core/object/tcp.hh core/object/udp.hh core/producer.hh core/receiver.hh core/thread.hh core/timespec.hh filter/copy.hh filter/ipsplit.hh filter/layer.hh filter/split.hh filter/timing.hh input/fpcap.hh input/mmpcap.hh input/pcap.hh input/zmmpcap.hh input/zpcap.hh lib/base64url.hh lib/clock.hh lib/trie.hh output/dnscli.hh output/pcap.hh output/respdiff.hh output/tcpcli.hh output/tlscli.hh output/udpcli.hh
lua_hobjects += core/channel.luaho core/file.luaho core/log.luaho core/object/dns.luaho core/object/ether.luaho core/object/gre.luaho core/object/icmp6.luaho core/object/icmp.luaho core/object/ieee802.luaho core/object/ip6.luaho core/object/ip.luaho core/object/linuxsll.luaho core/object/loop.luaho core/object.luaho core/object/null.luaho core/object/payload.luaho core/object/pcap.luaho core/object/tcp.luaho core/object/udp.luaho core/producer.luaho core/receiver.luaho core/thread.luaho core/timespec.luaho filter/copy.luaho filter/ipsplit.luaho filter/layer.luaho filter/split.luaho filter/timing.luaho input/fpcap.luaho input/mmpcap.luaho input/pcap.luaho input/zmmpcap.luaho input/zpcap.luaho lib/base64url.luaho lib/clock.luaho lib/trie.luaho output/dnscli.luaho output/pcap.luaho output/respdiff.luaho output/tcpcli.luaho output/tlscli.luaho output/udpcli.luaho lua_hobjects += core/channel.luaho core/file.luaho core/log.luaho core/object/dns.luaho core/object/ether.luaho core/object/gre.luaho core/object/icmp6.luaho core/object/icmp.luaho core/object/ieee802.luaho core/object/ip6.luaho core/object/ip.luaho core/object/linuxsll2.luaho core/object/linuxsll.luaho core/object/loop.luaho core/object.luaho core/object/null.luaho core/object/payload.luaho core/object/pcap.luaho core/object/tcp.luaho core/object/udp.luaho core/producer.luaho core/receiver.luaho core/thread.luaho core/timespec.luaho filter/copy.luaho filter/ipsplit.luaho filter/layer.luaho filter/split.luaho filter/timing.luaho input/fpcap.luaho input/mmpcap.luaho input/pcap.luaho input/zmmpcap.luaho input/zpcap.luaho lib/base64url.luaho lib/clock.luaho lib/trie.luaho output/dnscli.luaho output/pcap.luaho output/respdiff.luaho output/tcpcli.luaho output/tlscli.luaho output/udpcli.luaho
# Lua sources # Lua sources
dist_dnsjit_SOURCES += core/channel.lua core/compat.lua core/file.lua core/loader.lua core/log.lua core/object/dns/label.lua core/object/dns.lua core/object/dns/q.lua core/object/dns/rr.lua core/object/ether.lua core/object/gre.lua core/object/icmp6.lua core/object/icmp.lua core/object/ieee802.lua core/object/ip6.lua core/object/ip.lua core/object/linuxsll.lua core/object/loop.lua core/object.lua core/object/null.lua core/object/payload.lua core/object/pcap.lua core/objects.lua core/object/tcp.lua core/object/udp.lua core/producer.lua core/receiver.lua core/thread.lua core/timespec.lua filter/copy.lua filter/ipsplit.lua filter/layer.lua filter/split.lua filter/timing.lua input/fpcap.lua input/mmpcap.lua input/pcap.lua input/zero.lua input/zmmpcap.lua input/zpcap.lua lib/base64url.lua lib/clock.lua lib/getopt.lua lib/ip.lua lib/parseconf.lua lib/trie/iter.lua lib/trie.lua lib/trie/node.lua output/dnscli.lua output/null.lua output/pcap.lua output/respdiff.lua output/tcpcli.lua output/tlscli.lua output/udpcli.lua dist_dnsjit_SOURCES += core/channel.lua core/compat.lua core/file.lua core/loader.lua core/log.lua core/object/dns/label.lua core/object/dns.lua core/object/dns/q.lua core/object/dns/rr.lua core/object/ether.lua core/object/gre.lua core/object/icmp6.lua core/object/icmp.lua core/object/ieee802.lua core/object/ip6.lua core/object/ip.lua core/object/linuxsll2.lua core/object/linuxsll.lua core/object/loop.lua core/object.lua core/object/null.lua core/object/payload.lua core/object/pcap.lua core/objects.lua core/object/tcp.lua core/object/udp.lua core/producer.lua core/receiver.lua core/thread.lua core/timespec.lua filter/copy.lua filter/ipsplit.lua filter/layer.lua filter/split.lua filter/timing.lua input/fpcap.lua input/mmpcap.lua input/pcap.lua input/zero.lua input/zmmpcap.lua input/zpcap.lua lib/base64url.lua lib/clock.lua lib/getopt.lua lib/ip.lua lib/parseconf.lua lib/trie/iter.lua lib/trie.lua lib/trie/node.lua output/dnscli.lua output/null.lua output/pcap.lua output/respdiff.lua output/tcpcli.lua output/tlscli.lua output/udpcli.lua
lua_objects += core/channel.luao core/compat.luao core/file.luao core/loader.luao core/log.luao core/object/dns/label.luao core/object/dns.luao core/object/dns/q.luao core/object/dns/rr.luao core/object/ether.luao core/object/gre.luao core/object/icmp6.luao core/object/icmp.luao core/object/ieee802.luao core/object/ip6.luao core/object/ip.luao core/object/linuxsll.luao core/object/loop.luao core/object.luao core/object/null.luao core/object/payload.luao core/object/pcap.luao core/objects.luao core/object/tcp.luao core/object/udp.luao core/producer.luao core/receiver.luao core/thread.luao core/timespec.luao filter/copy.luao filter/ipsplit.luao filter/layer.luao filter/split.luao filter/timing.luao input/fpcap.luao input/mmpcap.luao input/pcap.luao input/zero.luao input/zmmpcap.luao input/zpcap.luao lib/base64url.luao lib/clock.luao lib/getopt.luao lib/ip.luao lib/parseconf.luao lib/trie/iter.luao lib/trie.luao lib/trie/node.luao output/dnscli.luao output/null.luao output/pcap.luao output/respdiff.luao output/tcpcli.luao output/tlscli.luao output/udpcli.luao lua_objects += core/channel.luao core/compat.luao core/file.luao core/loader.luao core/log.luao core/object/dns/label.luao core/object/dns.luao core/object/dns/q.luao core/object/dns/rr.luao core/object/ether.luao core/object/gre.luao core/object/icmp6.luao core/object/icmp.luao core/object/ieee802.luao core/object/ip6.luao core/object/ip.luao core/object/linuxsll2.luao core/object/linuxsll.luao core/object/loop.luao core/object.luao core/object/null.luao core/object/payload.luao core/object/pcap.luao core/objects.luao core/object/tcp.luao core/object/udp.luao core/producer.luao core/receiver.luao core/thread.luao core/timespec.luao filter/copy.luao filter/ipsplit.luao filter/layer.luao filter/split.luao filter/timing.luao input/fpcap.luao input/mmpcap.luao input/pcap.luao input/zero.luao input/zmmpcap.luao input/zpcap.luao lib/base64url.luao lib/clock.luao lib/getopt.luao lib/ip.luao lib/parseconf.luao lib/trie/iter.luao lib/trie.luao lib/trie/node.luao output/dnscli.luao output/null.luao output/pcap.luao output/respdiff.luao output/tcpcli.luao output/tlscli.luao output/udpcli.luao
dnsjit_LDFLAGS = -Wl,-E dnsjit_LDFLAGS = -Wl,-E
dnsjit_LDADD += $(lua_hobjects) $(lua_objects) dnsjit_LDADD += $(lua_hobjects) $(lua_objects)
@ -67,7 +67,7 @@ man1_MANS = dnsjit.1
CLEANFILES += $(man1_MANS) CLEANFILES += $(man1_MANS)
man3_MANS = dnsjit.core.3 dnsjit.lib.3 dnsjit.input.3 dnsjit.filter.3 dnsjit.output.3 man3_MANS = dnsjit.core.3 dnsjit.lib.3 dnsjit.input.3 dnsjit.filter.3 dnsjit.output.3
man3_MANS += dnsjit.core.channel.3 dnsjit.core.compat.3 dnsjit.core.file.3 dnsjit.core.loader.3 dnsjit.core.log.3 dnsjit.core.object.3 dnsjit.core.object.dns.3 dnsjit.core.object.dns.label.3 dnsjit.core.object.dns.q.3 dnsjit.core.object.dns.rr.3 dnsjit.core.object.ether.3 dnsjit.core.object.gre.3 dnsjit.core.object.icmp.3 dnsjit.core.object.icmp6.3 dnsjit.core.object.ieee802.3 dnsjit.core.object.ip.3 dnsjit.core.object.ip6.3 dnsjit.core.object.linuxsll.3 dnsjit.core.object.loop.3 dnsjit.core.object.null.3 dnsjit.core.object.payload.3 dnsjit.core.object.pcap.3 dnsjit.core.objects.3 dnsjit.core.object.tcp.3 dnsjit.core.object.udp.3 dnsjit.core.producer.3 dnsjit.core.receiver.3 dnsjit.core.thread.3 dnsjit.core.timespec.3 dnsjit.filter.copy.3 dnsjit.filter.ipsplit.3 dnsjit.filter.layer.3 dnsjit.filter.split.3 dnsjit.filter.timing.3 dnsjit.input.fpcap.3 dnsjit.input.mmpcap.3 dnsjit.input.pcap.3 dnsjit.input.zero.3 dnsjit.input.zmmpcap.3 dnsjit.input.zpcap.3 dnsjit.lib.base64url.3 dnsjit.lib.clock.3 dnsjit.lib.getopt.3 dnsjit.lib.ip.3 dnsjit.lib.parseconf.3 dnsjit.lib.trie.3 dnsjit.lib.trie.iter.3 dnsjit.lib.trie.node.3 dnsjit.output.dnscli.3 dnsjit.output.null.3 dnsjit.output.pcap.3 dnsjit.output.respdiff.3 dnsjit.output.tcpcli.3 dnsjit.output.tlscli.3 dnsjit.output.udpcli.3 man3_MANS += dnsjit.core.channel.3 dnsjit.core.compat.3 dnsjit.core.file.3 dnsjit.core.loader.3 dnsjit.core.log.3 dnsjit.core.object.3 dnsjit.core.object.dns.3 dnsjit.core.object.dns.label.3 dnsjit.core.object.dns.q.3 dnsjit.core.object.dns.rr.3 dnsjit.core.object.ether.3 dnsjit.core.object.gre.3 dnsjit.core.object.icmp.3 dnsjit.core.object.icmp6.3 dnsjit.core.object.ieee802.3 dnsjit.core.object.ip.3 dnsjit.core.object.ip6.3 dnsjit.core.object.linuxsll2.3 dnsjit.core.object.linuxsll.3 dnsjit.core.object.loop.3 dnsjit.core.object.null.3 dnsjit.core.object.payload.3 dnsjit.core.object.pcap.3 dnsjit.core.objects.3 dnsjit.core.object.tcp.3 dnsjit.core.object.udp.3 dnsjit.core.producer.3 dnsjit.core.receiver.3 dnsjit.core.thread.3 dnsjit.core.timespec.3 dnsjit.filter.copy.3 dnsjit.filter.ipsplit.3 dnsjit.filter.layer.3 dnsjit.filter.split.3 dnsjit.filter.timing.3 dnsjit.input.fpcap.3 dnsjit.input.mmpcap.3 dnsjit.input.pcap.3 dnsjit.input.zero.3 dnsjit.input.zmmpcap.3 dnsjit.input.zpcap.3 dnsjit.lib.base64url.3 dnsjit.lib.clock.3 dnsjit.lib.getopt.3 dnsjit.lib.ip.3 dnsjit.lib.parseconf.3 dnsjit.lib.trie.3 dnsjit.lib.trie.iter.3 dnsjit.lib.trie.node.3 dnsjit.output.dnscli.3 dnsjit.output.null.3 dnsjit.output.pcap.3 dnsjit.output.respdiff.3 dnsjit.output.tcpcli.3 dnsjit.output.tlscli.3 dnsjit.output.udpcli.3
CLEANFILES += *.3in $(man3_MANS) CLEANFILES += *.3in $(man3_MANS)
.lua.luao: .lua.luao:
@ -175,6 +175,9 @@ dnsjit.core.object.ip6.3in: core/object/ip6.lua gen-manpage.lua
dnsjit.core.object.ip.3in: core/object/ip.lua gen-manpage.lua dnsjit.core.object.ip.3in: core/object/ip.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/ip.lua" > "$@" $(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/ip.lua" > "$@"
dnsjit.core.object.linuxsll2.3in: core/object/linuxsll2.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll2.lua" > "$@"
dnsjit.core.object.linuxsll.3in: core/object/linuxsll.lua gen-manpage.lua dnsjit.core.object.linuxsll.3in: core/object/linuxsll.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll.lua" > "$@" $(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll.lua" > "$@"

View file

@ -14,7 +14,7 @@
@SET_MAKE@ @SET_MAKE@
# Copyright (c) 2018-2024 OARC, Inc. # Copyright (c) 2018-2025 OARC, Inc.
# All rights reserved. # All rights reserved.
# #
# This file is part of dnsjit. # This file is part of dnsjit.
@ -141,20 +141,21 @@ am_dnsjit_OBJECTS = dnsjit.$(OBJEXT) globals.$(OBJEXT) \
core/object/gre.$(OBJEXT) core/object/icmp6.$(OBJEXT) \ core/object/gre.$(OBJEXT) core/object/icmp6.$(OBJEXT) \
core/object/icmp.$(OBJEXT) core/object/ieee802.$(OBJEXT) \ core/object/icmp.$(OBJEXT) core/object/ieee802.$(OBJEXT) \
core/object/ip6.$(OBJEXT) core/object/ip.$(OBJEXT) \ core/object/ip6.$(OBJEXT) core/object/ip.$(OBJEXT) \
core/object/linuxsll.$(OBJEXT) core/object/loop.$(OBJEXT) \ core/object/linuxsll2.$(OBJEXT) core/object/linuxsll.$(OBJEXT) \
core/object/null.$(OBJEXT) core/object/payload.$(OBJEXT) \ core/object/loop.$(OBJEXT) core/object/null.$(OBJEXT) \
core/object/pcap.$(OBJEXT) core/object/tcp.$(OBJEXT) \ core/object/payload.$(OBJEXT) core/object/pcap.$(OBJEXT) \
core/object/udp.$(OBJEXT) core/producer.$(OBJEXT) \ core/object/tcp.$(OBJEXT) core/object/udp.$(OBJEXT) \
core/receiver.$(OBJEXT) core/thread.$(OBJEXT) \ core/producer.$(OBJEXT) core/receiver.$(OBJEXT) \
filter/copy.$(OBJEXT) filter/ipsplit.$(OBJEXT) \ core/thread.$(OBJEXT) filter/copy.$(OBJEXT) \
filter/layer.$(OBJEXT) filter/split.$(OBJEXT) \ filter/ipsplit.$(OBJEXT) filter/layer.$(OBJEXT) \
filter/timing.$(OBJEXT) input/fpcap.$(OBJEXT) \ filter/split.$(OBJEXT) filter/timing.$(OBJEXT) \
input/mmpcap.$(OBJEXT) input/pcap.$(OBJEXT) \ input/fpcap.$(OBJEXT) input/mmpcap.$(OBJEXT) \
input/zmmpcap.$(OBJEXT) input/zpcap.$(OBJEXT) \ input/pcap.$(OBJEXT) input/zmmpcap.$(OBJEXT) \
lib/base64url.$(OBJEXT) lib/clock.$(OBJEXT) lib/trie.$(OBJEXT) \ input/zpcap.$(OBJEXT) lib/base64url.$(OBJEXT) \
output/dnscli.$(OBJEXT) output/pcap.$(OBJEXT) \ lib/clock.$(OBJEXT) lib/trie.$(OBJEXT) output/dnscli.$(OBJEXT) \
output/respdiff.$(OBJEXT) output/tcpcli.$(OBJEXT) \ output/pcap.$(OBJEXT) output/respdiff.$(OBJEXT) \
output/tlscli.$(OBJEXT) output/udpcli.$(OBJEXT) output/tcpcli.$(OBJEXT) output/tlscli.$(OBJEXT) \
output/udpcli.$(OBJEXT)
dist_dnsjit_OBJECTS = dist_dnsjit_OBJECTS =
dnsjit_OBJECTS = $(am_dnsjit_OBJECTS) $(dist_dnsjit_OBJECTS) dnsjit_OBJECTS = $(am_dnsjit_OBJECTS) $(dist_dnsjit_OBJECTS)
am__DEPENDENCIES_1 = am__DEPENDENCIES_1 =
@ -194,6 +195,7 @@ am__depfiles_remade = ./$(DEPDIR)/dnsjit.Po ./$(DEPDIR)/globals.Po \
core/object/$(DEPDIR)/icmp6.Po \ core/object/$(DEPDIR)/icmp6.Po \
core/object/$(DEPDIR)/ieee802.Po core/object/$(DEPDIR)/ip.Po \ core/object/$(DEPDIR)/ieee802.Po core/object/$(DEPDIR)/ip.Po \
core/object/$(DEPDIR)/ip6.Po core/object/$(DEPDIR)/linuxsll.Po \ core/object/$(DEPDIR)/ip6.Po core/object/$(DEPDIR)/linuxsll.Po \
core/object/$(DEPDIR)/linuxsll2.Po \
core/object/$(DEPDIR)/loop.Po core/object/$(DEPDIR)/null.Po \ core/object/$(DEPDIR)/loop.Po core/object/$(DEPDIR)/null.Po \
core/object/$(DEPDIR)/payload.Po core/object/$(DEPDIR)/pcap.Po \ core/object/$(DEPDIR)/payload.Po core/object/$(DEPDIR)/pcap.Po \
core/object/$(DEPDIR)/tcp.Po core/object/$(DEPDIR)/udp.Po \ core/object/$(DEPDIR)/tcp.Po core/object/$(DEPDIR)/udp.Po \
@ -358,6 +360,7 @@ EGREP = @EGREP@
ETAGS = @ETAGS@ ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
FILECMD = @FILECMD@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
@ -495,15 +498,16 @@ dnsjit_SOURCES = dnsjit.c globals.c core/channel.c core/compat.c \
core/file.c core/log.c core/object.c core/object/dns.c \ core/file.c core/log.c core/object.c core/object/dns.c \
core/object/ether.c core/object/gre.c core/object/icmp6.c \ core/object/ether.c core/object/gre.c core/object/icmp6.c \
core/object/icmp.c core/object/ieee802.c core/object/ip6.c \ core/object/icmp.c core/object/ieee802.c core/object/ip6.c \
core/object/ip.c core/object/linuxsll.c core/object/loop.c \ core/object/ip.c core/object/linuxsll2.c \
core/object/null.c core/object/payload.c core/object/pcap.c \ core/object/linuxsll.c core/object/loop.c core/object/null.c \
core/object/tcp.c core/object/udp.c core/producer.c \ core/object/payload.c core/object/pcap.c core/object/tcp.c \
core/receiver.c core/thread.c filter/copy.c filter/ipsplit.c \ core/object/udp.c core/producer.c core/receiver.c \
filter/layer.c filter/split.c filter/timing.c input/fpcap.c \ core/thread.c filter/copy.c filter/ipsplit.c filter/layer.c \
input/mmpcap.c input/pcap.c input/zmmpcap.c input/zpcap.c \ filter/split.c filter/timing.c input/fpcap.c input/mmpcap.c \
lib/base64url.c lib/clock.c lib/trie.c output/dnscli.c \ input/pcap.c input/zmmpcap.c input/zpcap.c lib/base64url.c \
output/pcap.c output/respdiff.c output/tcpcli.c \ lib/clock.c lib/trie.c output/dnscli.c output/pcap.c \
output/tlscli.c output/udpcli.c output/respdiff.c output/tcpcli.c output/tlscli.c \
output/udpcli.c
# Lua sources # Lua sources
dist_dnsjit_SOURCES = core.lua lib.lua input.lua filter.lua output.lua \ dist_dnsjit_SOURCES = core.lua lib.lua input.lua filter.lua output.lua \
@ -513,19 +517,20 @@ dist_dnsjit_SOURCES = core.lua lib.lua input.lua filter.lua output.lua \
core/object/ether.lua core/object/gre.lua \ core/object/ether.lua core/object/gre.lua \
core/object/icmp6.lua core/object/icmp.lua \ core/object/icmp6.lua core/object/icmp.lua \
core/object/ieee802.lua core/object/ip6.lua core/object/ip.lua \ core/object/ieee802.lua core/object/ip6.lua core/object/ip.lua \
core/object/linuxsll.lua core/object/loop.lua core/object.lua \ core/object/linuxsll2.lua core/object/linuxsll.lua \
core/object/null.lua core/object/payload.lua \ core/object/loop.lua core/object.lua core/object/null.lua \
core/object/pcap.lua core/objects.lua core/object/tcp.lua \ core/object/payload.lua core/object/pcap.lua core/objects.lua \
core/object/udp.lua core/producer.lua core/receiver.lua \ core/object/tcp.lua core/object/udp.lua core/producer.lua \
core/thread.lua core/timespec.lua filter/copy.lua \ core/receiver.lua core/thread.lua core/timespec.lua \
filter/ipsplit.lua filter/layer.lua filter/split.lua \ filter/copy.lua filter/ipsplit.lua filter/layer.lua \
filter/timing.lua input/fpcap.lua input/mmpcap.lua \ filter/split.lua filter/timing.lua input/fpcap.lua \
input/pcap.lua input/zero.lua input/zmmpcap.lua \ input/mmpcap.lua input/pcap.lua input/zero.lua \
input/zpcap.lua lib/base64url.lua lib/clock.lua lib/getopt.lua \ input/zmmpcap.lua input/zpcap.lua lib/base64url.lua \
lib/ip.lua lib/parseconf.lua lib/trie/iter.lua lib/trie.lua \ lib/clock.lua lib/getopt.lua lib/ip.lua lib/parseconf.lua \
lib/trie/node.lua output/dnscli.lua output/null.lua \ lib/trie/iter.lua lib/trie.lua lib/trie/node.lua \
output/pcap.lua output/respdiff.lua output/tcpcli.lua \ output/dnscli.lua output/null.lua output/pcap.lua \
output/tlscli.lua output/udpcli.lua output/respdiff.lua output/tcpcli.lua output/tlscli.lua \
output/udpcli.lua
dnsjitincludedir = $(includedir)/dnsjit dnsjitincludedir = $(includedir)/dnsjit
# Lua headers # Lua headers
@ -534,45 +539,46 @@ nobase_dnsjitinclude_HEADERS = globals.h version.h core/assert.h \
core/object/dns.h core/object/ether.h core/object/gre.h \ core/object/dns.h core/object/ether.h core/object/gre.h \
core/object.h core/object/icmp6.h core/object/icmp.h \ core/object.h core/object/icmp6.h core/object/icmp.h \
core/object/ieee802.h core/object/ip6.h core/object/ip.h \ core/object/ieee802.h core/object/ip6.h core/object/ip.h \
core/object/linuxsll.h core/object/loop.h core/object/null.h \ core/object/linuxsll2.h core/object/linuxsll.h \
core/object/payload.h core/object/pcap.h core/object/tcp.h \ core/object/loop.h core/object/null.h core/object/payload.h \
core/object/udp.h core/producer.h core/receiver.h \ core/object/pcap.h core/object/tcp.h core/object/udp.h \
core/thread.h core/timespec.h filter/copy.h filter/ipsplit.h \ core/producer.h core/receiver.h core/thread.h core/timespec.h \
filter/layer.h filter/split.h filter/timing.h input/fpcap.h \ filter/copy.h filter/ipsplit.h filter/layer.h filter/split.h \
input/mmpcap.h input/pcap.h input/zmmpcap.h input/zpcap.h \ filter/timing.h input/fpcap.h input/mmpcap.h input/pcap.h \
lib/base64url.h lib/clock.h lib/trie.h output/dnscli.h \ input/zmmpcap.h input/zpcap.h lib/base64url.h lib/clock.h \
output/pcap.h output/respdiff.h output/tcpcli.h \ lib/trie.h output/dnscli.h output/pcap.h output/respdiff.h \
output/tlscli.h output/udpcli.h core/channel.hh core/file.hh \ output/tcpcli.h output/tlscli.h output/udpcli.h \
core/log.hh core/object/dns.hh core/object/ether.hh \ core/channel.hh core/file.hh core/log.hh core/object/dns.hh \
core/object/gre.hh core/object.hh core/object/icmp6.hh \ core/object/ether.hh core/object/gre.hh core/object.hh \
core/object/icmp.hh core/object/ieee802.hh core/object/ip6.hh \ core/object/icmp6.hh core/object/icmp.hh \
core/object/ip.hh core/object/linuxsll.hh core/object/loop.hh \ core/object/ieee802.hh core/object/ip6.hh core/object/ip.hh \
core/object/null.hh core/object/payload.hh core/object/pcap.hh \ core/object/linuxsll2.hh core/object/linuxsll.hh \
core/object/tcp.hh core/object/udp.hh core/producer.hh \ core/object/loop.hh core/object/null.hh core/object/payload.hh \
core/receiver.hh core/thread.hh core/timespec.hh \ core/object/pcap.hh core/object/tcp.hh core/object/udp.hh \
filter/copy.hh filter/ipsplit.hh filter/layer.hh \ core/producer.hh core/receiver.hh core/thread.hh \
filter/split.hh filter/timing.hh input/fpcap.hh \ core/timespec.hh filter/copy.hh filter/ipsplit.hh \
input/mmpcap.hh input/pcap.hh input/zmmpcap.hh input/zpcap.hh \ filter/layer.hh filter/split.hh filter/timing.hh \
lib/base64url.hh lib/clock.hh lib/trie.hh output/dnscli.hh \ input/fpcap.hh input/mmpcap.hh input/pcap.hh input/zmmpcap.hh \
output/pcap.hh output/respdiff.hh output/tcpcli.hh \ input/zpcap.hh lib/base64url.hh lib/clock.hh lib/trie.hh \
output/tlscli.hh output/udpcli.hh output/dnscli.hh output/pcap.hh output/respdiff.hh \
output/tcpcli.hh output/tlscli.hh output/udpcli.hh
lua_hobjects = core/compat.luaho core/channel.luaho core/file.luaho \ lua_hobjects = core/compat.luaho core/channel.luaho core/file.luaho \
core/log.luaho core/object/dns.luaho core/object/ether.luaho \ core/log.luaho core/object/dns.luaho core/object/ether.luaho \
core/object/gre.luaho core/object/icmp6.luaho \ core/object/gre.luaho core/object/icmp6.luaho \
core/object/icmp.luaho core/object/ieee802.luaho \ core/object/icmp.luaho core/object/ieee802.luaho \
core/object/ip6.luaho core/object/ip.luaho \ core/object/ip6.luaho core/object/ip.luaho \
core/object/linuxsll.luaho core/object/loop.luaho \ core/object/linuxsll2.luaho core/object/linuxsll.luaho \
core/object.luaho core/object/null.luaho \ core/object/loop.luaho core/object.luaho \
core/object/payload.luaho core/object/pcap.luaho \ core/object/null.luaho core/object/payload.luaho \
core/object/tcp.luaho core/object/udp.luaho \ core/object/pcap.luaho core/object/tcp.luaho \
core/producer.luaho core/receiver.luaho core/thread.luaho \ core/object/udp.luaho core/producer.luaho core/receiver.luaho \
core/timespec.luaho filter/copy.luaho filter/ipsplit.luaho \ core/thread.luaho core/timespec.luaho filter/copy.luaho \
filter/layer.luaho filter/split.luaho filter/timing.luaho \ filter/ipsplit.luaho filter/layer.luaho filter/split.luaho \
input/fpcap.luaho input/mmpcap.luaho input/pcap.luaho \ filter/timing.luaho input/fpcap.luaho input/mmpcap.luaho \
input/zmmpcap.luaho input/zpcap.luaho lib/base64url.luaho \ input/pcap.luaho input/zmmpcap.luaho input/zpcap.luaho \
lib/clock.luaho lib/trie.luaho output/dnscli.luaho \ lib/base64url.luaho lib/clock.luaho lib/trie.luaho \
output/pcap.luaho output/respdiff.luaho output/tcpcli.luaho \ output/dnscli.luaho output/pcap.luaho output/respdiff.luaho \
output/tlscli.luaho output/udpcli.luaho output/tcpcli.luaho output/tlscli.luaho output/udpcli.luaho
lua_objects = core.luao lib.luao input.luao filter.luao output.luao \ lua_objects = core.luao lib.luao input.luao filter.luao output.luao \
core/channel.luao core/compat.luao core/file.luao \ core/channel.luao core/compat.luao core/file.luao \
core/loader.luao core/log.luao core/object/dns/label.luao \ core/loader.luao core/log.luao core/object/dns/label.luao \
@ -581,8 +587,8 @@ lua_objects = core.luao lib.luao input.luao filter.luao output.luao \
core/object/gre.luao core/object/icmp6.luao \ core/object/gre.luao core/object/icmp6.luao \
core/object/icmp.luao core/object/ieee802.luao \ core/object/icmp.luao core/object/ieee802.luao \
core/object/ip6.luao core/object/ip.luao \ core/object/ip6.luao core/object/ip.luao \
core/object/linuxsll.luao core/object/loop.luao \ core/object/linuxsll2.luao core/object/linuxsll.luao \
core/object.luao core/object/null.luao \ core/object/loop.luao core/object.luao core/object/null.luao \
core/object/payload.luao core/object/pcap.luao \ core/object/payload.luao core/object/pcap.luao \
core/objects.luao core/object/tcp.luao core/object/udp.luao \ core/objects.luao core/object/tcp.luao core/object/udp.luao \
core/producer.luao core/receiver.luao core/thread.luao \ core/producer.luao core/receiver.luao core/thread.luao \
@ -609,24 +615,24 @@ man3_MANS = dnsjit.core.3 dnsjit.lib.3 dnsjit.input.3 dnsjit.filter.3 \
dnsjit.core.object.gre.3 dnsjit.core.object.icmp.3 \ dnsjit.core.object.gre.3 dnsjit.core.object.icmp.3 \
dnsjit.core.object.icmp6.3 dnsjit.core.object.ieee802.3 \ dnsjit.core.object.icmp6.3 dnsjit.core.object.ieee802.3 \
dnsjit.core.object.ip.3 dnsjit.core.object.ip6.3 \ dnsjit.core.object.ip.3 dnsjit.core.object.ip6.3 \
dnsjit.core.object.linuxsll.3 dnsjit.core.object.loop.3 \ dnsjit.core.object.linuxsll2.3 dnsjit.core.object.linuxsll.3 \
dnsjit.core.object.null.3 dnsjit.core.object.payload.3 \ dnsjit.core.object.loop.3 dnsjit.core.object.null.3 \
dnsjit.core.object.pcap.3 dnsjit.core.objects.3 \ dnsjit.core.object.payload.3 dnsjit.core.object.pcap.3 \
dnsjit.core.object.tcp.3 dnsjit.core.object.udp.3 \ dnsjit.core.objects.3 dnsjit.core.object.tcp.3 \
dnsjit.core.producer.3 dnsjit.core.receiver.3 \ dnsjit.core.object.udp.3 dnsjit.core.producer.3 \
dnsjit.core.thread.3 dnsjit.core.timespec.3 \ dnsjit.core.receiver.3 dnsjit.core.thread.3 \
dnsjit.filter.copy.3 dnsjit.filter.ipsplit.3 \ dnsjit.core.timespec.3 dnsjit.filter.copy.3 \
dnsjit.filter.layer.3 dnsjit.filter.split.3 \ dnsjit.filter.ipsplit.3 dnsjit.filter.layer.3 \
dnsjit.filter.timing.3 dnsjit.input.fpcap.3 \ dnsjit.filter.split.3 dnsjit.filter.timing.3 \
dnsjit.input.mmpcap.3 dnsjit.input.pcap.3 dnsjit.input.zero.3 \ dnsjit.input.fpcap.3 dnsjit.input.mmpcap.3 dnsjit.input.pcap.3 \
dnsjit.input.zmmpcap.3 dnsjit.input.zpcap.3 \ dnsjit.input.zero.3 dnsjit.input.zmmpcap.3 \
dnsjit.lib.base64url.3 dnsjit.lib.clock.3 dnsjit.lib.getopt.3 \ dnsjit.input.zpcap.3 dnsjit.lib.base64url.3 dnsjit.lib.clock.3 \
dnsjit.lib.ip.3 dnsjit.lib.parseconf.3 dnsjit.lib.trie.3 \ dnsjit.lib.getopt.3 dnsjit.lib.ip.3 dnsjit.lib.parseconf.3 \
dnsjit.lib.trie.iter.3 dnsjit.lib.trie.node.3 \ dnsjit.lib.trie.3 dnsjit.lib.trie.iter.3 \
dnsjit.output.dnscli.3 dnsjit.output.null.3 \ dnsjit.lib.trie.node.3 dnsjit.output.dnscli.3 \
dnsjit.output.pcap.3 dnsjit.output.respdiff.3 \ dnsjit.output.null.3 dnsjit.output.pcap.3 \
dnsjit.output.tcpcli.3 dnsjit.output.tlscli.3 \ dnsjit.output.respdiff.3 dnsjit.output.tcpcli.3 \
dnsjit.output.udpcli.3 dnsjit.output.tlscli.3 dnsjit.output.udpcli.3
all: $(BUILT_SOURCES) config.h all: $(BUILT_SOURCES) config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive $(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -763,6 +769,8 @@ core/object/ip6.$(OBJEXT): core/object/$(am__dirstamp) \
core/object/$(DEPDIR)/$(am__dirstamp) core/object/$(DEPDIR)/$(am__dirstamp)
core/object/ip.$(OBJEXT): core/object/$(am__dirstamp) \ core/object/ip.$(OBJEXT): core/object/$(am__dirstamp) \
core/object/$(DEPDIR)/$(am__dirstamp) core/object/$(DEPDIR)/$(am__dirstamp)
core/object/linuxsll2.$(OBJEXT): core/object/$(am__dirstamp) \
core/object/$(DEPDIR)/$(am__dirstamp)
core/object/linuxsll.$(OBJEXT): core/object/$(am__dirstamp) \ core/object/linuxsll.$(OBJEXT): core/object/$(am__dirstamp) \
core/object/$(DEPDIR)/$(am__dirstamp) core/object/$(DEPDIR)/$(am__dirstamp)
core/object/loop.$(OBJEXT): core/object/$(am__dirstamp) \ core/object/loop.$(OBJEXT): core/object/$(am__dirstamp) \
@ -879,6 +887,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/ip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/ip.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/ip6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/ip6.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/linuxsll.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/linuxsll.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/linuxsll2.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/loop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/loop.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/null.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/null.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/payload.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@core/object/$(DEPDIR)/payload.Po@am__quote@ # am--include-marker
@ -1285,6 +1294,7 @@ distclean: distclean-recursive
-rm -f core/object/$(DEPDIR)/ip.Po -rm -f core/object/$(DEPDIR)/ip.Po
-rm -f core/object/$(DEPDIR)/ip6.Po -rm -f core/object/$(DEPDIR)/ip6.Po
-rm -f core/object/$(DEPDIR)/linuxsll.Po -rm -f core/object/$(DEPDIR)/linuxsll.Po
-rm -f core/object/$(DEPDIR)/linuxsll2.Po
-rm -f core/object/$(DEPDIR)/loop.Po -rm -f core/object/$(DEPDIR)/loop.Po
-rm -f core/object/$(DEPDIR)/null.Po -rm -f core/object/$(DEPDIR)/null.Po
-rm -f core/object/$(DEPDIR)/payload.Po -rm -f core/object/$(DEPDIR)/payload.Po
@ -1378,6 +1388,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f core/object/$(DEPDIR)/ip.Po -rm -f core/object/$(DEPDIR)/ip.Po
-rm -f core/object/$(DEPDIR)/ip6.Po -rm -f core/object/$(DEPDIR)/ip6.Po
-rm -f core/object/$(DEPDIR)/linuxsll.Po -rm -f core/object/$(DEPDIR)/linuxsll.Po
-rm -f core/object/$(DEPDIR)/linuxsll2.Po
-rm -f core/object/$(DEPDIR)/loop.Po -rm -f core/object/$(DEPDIR)/loop.Po
-rm -f core/object/$(DEPDIR)/null.Po -rm -f core/object/$(DEPDIR)/null.Po
-rm -f core/object/$(DEPDIR)/payload.Po -rm -f core/object/$(DEPDIR)/payload.Po
@ -1551,6 +1562,9 @@ dnsjit.core.object.ip6.3in: core/object/ip6.lua gen-manpage.lua
dnsjit.core.object.ip.3in: core/object/ip.lua gen-manpage.lua dnsjit.core.object.ip.3in: core/object/ip.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/ip.lua" > "$@" $(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/ip.lua" > "$@"
dnsjit.core.object.linuxsll2.3in: core/object/linuxsll2.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll2.lua" > "$@"
dnsjit.core.object.linuxsll.3in: core/object/linuxsll.lua gen-manpage.lua dnsjit.core.object.linuxsll.3in: core/object/linuxsll.lua gen-manpage.lua
$(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll.lua" > "$@" $(LUAJIT) "$(srcdir)/gen-manpage.lua" "$(srcdir)/core/object/linuxsll.lua" > "$@"

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -27,6 +27,7 @@
#include "core/object/null.h" #include "core/object/null.h"
#include "core/object/loop.h" #include "core/object/loop.h"
#include "core/object/linuxsll.h" #include "core/object/linuxsll.h"
#include "core/object/linuxsll2.h"
#include "core/object/ieee802.h" #include "core/object/ieee802.h"
#include "core/object/gre.h" #include "core/object/gre.h"
#include "core/object/ip.h" #include "core/object/ip.h"
@ -57,6 +58,8 @@ core_object_t* core_object_copy(const core_object_t* self)
return (core_object_t*)core_object_ieee802_copy((core_object_ieee802_t*)self); return (core_object_t*)core_object_ieee802_copy((core_object_ieee802_t*)self);
case CORE_OBJECT_GRE: case CORE_OBJECT_GRE:
return (core_object_t*)core_object_gre_copy((core_object_gre_t*)self); return (core_object_t*)core_object_gre_copy((core_object_gre_t*)self);
case CORE_OBJECT_LINUXSLL2:
return (core_object_t*)core_object_linuxsll2_copy((core_object_linuxsll2_t*)self);
case CORE_OBJECT_IP: case CORE_OBJECT_IP:
return (core_object_t*)core_object_ip_copy((core_object_ip_t*)self); return (core_object_t*)core_object_ip_copy((core_object_ip_t*)self);
case CORE_OBJECT_IP6: case CORE_OBJECT_IP6:
@ -105,6 +108,9 @@ void core_object_free(core_object_t* self)
case CORE_OBJECT_GRE: case CORE_OBJECT_GRE:
core_object_gre_free((core_object_gre_t*)self); core_object_gre_free((core_object_gre_t*)self);
break; break;
case CORE_OBJECT_LINUXSLL2:
core_object_linuxsll2_free((core_object_linuxsll2_t*)self);
break;
case CORE_OBJECT_IP: case CORE_OBJECT_IP:
core_object_ip_free((core_object_ip_t*)self); core_object_ip_free((core_object_ip_t*)self);
break; break;

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -30,6 +30,7 @@
#define CORE_OBJECT_LINUXSLL 13 #define CORE_OBJECT_LINUXSLL 13
#define CORE_OBJECT_IEEE802 14 #define CORE_OBJECT_IEEE802 14
#define CORE_OBJECT_GRE 15 #define CORE_OBJECT_GRE 15
#define CORE_OBJECT_LINUXSLL2 16
/* protocol objects */ /* protocol objects */
#define CORE_OBJECT_IP 20 #define CORE_OBJECT_IP 20
#define CORE_OBJECT_IP6 21 #define CORE_OBJECT_IP6 21

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.
@ -41,6 +41,7 @@ require("dnsjit.core.object.ether_h")
require("dnsjit.core.object.null_h") require("dnsjit.core.object.null_h")
require("dnsjit.core.object.loop_h") require("dnsjit.core.object.loop_h")
require("dnsjit.core.object.linuxsll_h") require("dnsjit.core.object.linuxsll_h")
require("dnsjit.core.object.linuxsll2_h")
require("dnsjit.core.object.ieee802_h") require("dnsjit.core.object.ieee802_h")
require("dnsjit.core.object.gre_h") require("dnsjit.core.object.gre_h")
require("dnsjit.core.object.ip_h") require("dnsjit.core.object.ip_h")
@ -65,6 +66,7 @@ local Object = {
LINUXSLL = 13, LINUXSLL = 13,
IEEE802 = 14, IEEE802 = 14,
GRE = 15, GRE = 15,
LINUXSLL2 = 16,
IP = 20, IP = 20,
IP6 = 21, IP6 = 21,
ICMP = 22, ICMP = 22,
@ -83,6 +85,7 @@ _type[Object.LOOP] = "loop"
_type[Object.LINUXSLL] = "linuxsll" _type[Object.LINUXSLL] = "linuxsll"
_type[Object.IEEE802] = "ieee802" _type[Object.IEEE802] = "ieee802"
_type[Object.GRE] = "gre" _type[Object.GRE] = "gre"
_type[Object.LINUXSLL2] = "linuxsll2"
_type[Object.IP] = "ip" _type[Object.IP] = "ip"
_type[Object.IP6] = "ip6" _type[Object.IP6] = "ip6"
_type[Object.ICMP] = "icmp" _type[Object.ICMP] = "icmp"
@ -112,6 +115,7 @@ _cast[Object.LOOP] = "core_object_loop_t*"
_cast[Object.LINUXSLL] = "core_object_linuxsll_t*" _cast[Object.LINUXSLL] = "core_object_linuxsll_t*"
_cast[Object.IEEE802] = "core_object_ieee802_t*" _cast[Object.IEEE802] = "core_object_ieee802_t*"
_cast[Object.GRE] = "core_object_gre_t*" _cast[Object.GRE] = "core_object_gre_t*"
_cast[Object.LINUXSLL2] = "core_object_linuxsll2_t*"
_cast[Object.IP] = "core_object_ip_t*" _cast[Object.IP] = "core_object_ip_t*"
_cast[Object.IP6] = "core_object_ip6_t*" _cast[Object.IP6] = "core_object_ip6_t*"
_cast[Object.ICMP] = "core_object_icmp_t*" _cast[Object.ICMP] = "core_object_icmp_t*"
@ -164,6 +168,7 @@ core_object_t = ffi.metatype(t_name, { __index = Object })
-- dnsjit.core.object.null (3), -- dnsjit.core.object.null (3),
-- dnsjit.core.object.loop (3), -- dnsjit.core.object.loop (3),
-- dnsjit.core.object.linuxsll (3), -- dnsjit.core.object.linuxsll (3),
-- dnsjit.core.object.linuxsll2 (3),
-- dnsjit.core.object.ieee802 (3), -- dnsjit.core.object.ieee802 (3),
-- dnsjit.core.object.gre (3), -- dnsjit.core.object.gre (3),
-- dnsjit.core.object.ip (3), -- dnsjit.core.object.ip (3),

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -51,6 +51,7 @@
#define bswap_64(x) bswap64(x) #define bswap_64(x) bswap64(x)
#endif #endif
#endif #endif
#include <ctype.h>
#define _ERR_MALFORMED -2 #define _ERR_MALFORMED -2
#define _ERR_NEEDLABELS -3 #define _ERR_NEEDLABELS -3
@ -475,3 +476,32 @@ int core_object_dns_parse_rr(core_object_dns_t* self, core_object_dns_rr_t* rr,
// TODO: error here on malformed/truncated? could be quite spammy // TODO: error here on malformed/truncated? could be quite spammy
return _ERR_MALFORMED; return _ERR_MALFORMED;
} }
const char* core_object_dns_torfc1035(const char* str, size_t len)
{
mlassert(str, "str is nil");
static char res[512];
size_t i, j = 0;
for (i = 0; i < len; i++) {
if (j + 4 >= sizeof(res) - 1) {
return 0;
}
if (isalnum(str[i]) || str[i] == '-' || str[i] == '_') {
res[j++] = str[i];
} else if (isprint(str[i])) {
res[j++] = '\\';
res[j++] = str[i];
} else {
res[j++] = '\\';
res[j++] = '0' + (((unsigned char)str[i] >> 6) & 0x07);
res[j++] = '0' + (((unsigned char)str[i] >> 3) & 0x07);
res[j++] = '0' + ((unsigned char)str[i] & 0x07);
}
}
res[j] = 0;
return res;
}

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -117,3 +117,5 @@ void core_object_dns_reset(core_object_dns_t* self);
int core_object_dns_parse_header(core_object_dns_t* self); int core_object_dns_parse_header(core_object_dns_t* self);
int core_object_dns_parse_q(core_object_dns_t* self, core_object_dns_q_t* q, core_object_dns_label_t* label, size_t labels); int core_object_dns_parse_q(core_object_dns_t* self, core_object_dns_q_t* q, core_object_dns_label_t* label, size_t labels);
int core_object_dns_parse_rr(core_object_dns_t* self, core_object_dns_rr_t* rr, core_object_dns_label_t* label, size_t labels); int core_object_dns_parse_rr(core_object_dns_t* self, core_object_dns_rr_t* rr, core_object_dns_label_t* label, size_t labels);
const char* core_object_dns_torfc1035(const char* str, size_t len);

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.
@ -67,8 +67,16 @@ function Label.new(size)
end end
-- Returns labels as a string and an offset to the next label. -- Returns labels as a string and an offset to the next label.
-- The string may be nil if the first label was an offset. -- Takes argument
-- The offset may be nil if the last label was an extension bits or end marker. -- .IR labels ,
-- an array of labels returned by any of the parse functions, and
-- .IR num_labels ,
-- number of labels in the array.
-- Optional
-- .I offset_labels
-- can be used to skip labels at the start.
-- The return string may be nil if the first label was an offset.
-- The return offset may be nil if the last label was an extension bits or end marker.
function Label.tostring(dns, labels, num_labels, offset_labels) function Label.tostring(dns, labels, num_labels, offset_labels)
if offset_labels == nil then if offset_labels == nil then
offset_labels = 0 offset_labels = 0
@ -91,9 +99,50 @@ function Label.tostring(dns, labels, num_labels, offset_labels)
return dn, nil return dn, nil
end end
-- Returns a RFC1035 domain name of the labels and an offset to the next label.
-- Takes argument
-- .IR labels ,
-- an array of labels returned by any of the parse functions, and
-- .IR num_labels ,
-- number of labels in the array.
-- Optional
-- .I offset_labels
-- can be used to skip labels at the start.
-- The return string may be nil if the first label was an offset.
-- The return offset may be nil if the last label was an extension bits or end marker.
function Label.torfc1035(dns, labels, num_labels, offset_labels)
if offset_labels == nil then
offset_labels = 0
end
local dn
for n = 1, tonumber(num_labels) do
local label = labels[n - 1 + offset_labels]
if label.have_dn == 1 then
if dn == nil then
dn = ""
end
dn = dn .. ffi.string(ffi.C.core_object_dns_torfc1035(dns.payload + label.offset + 1, label.length)) .. "."
elseif label.have_offset == 1 then
return dn, label.offset
else
return dn, nil
end
end
return dn, nil
end
-- Returns labels as a string which also includes a textual notation of the -- Returns labels as a string which also includes a textual notation of the
-- offset in the form of -- offset in the form of
-- .IR "<offset>label" . -- .IR "<offset>label" .
-- Takes argument
-- .IR labels ,
-- an array of labels returned by any of the parse functions, and
-- .IR num_labels ,
-- number of labels in the array.
-- Optional
-- .I offset_labels
-- can be used to skip labels at the start.
function Label.tooffstr(dns, labels, num_labels, offset_labels) function Label.tooffstr(dns, labels, num_labels, offset_labels)
if offset_labels == nil then if offset_labels == nil then
offset_labels = 0 offset_labels = 0

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -37,6 +37,7 @@
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \
0, 0, 0, 0, \ 0, 0, 0, 0, \
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \
0, \
} }
#endif #endif

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.
@ -36,6 +36,8 @@ typedef struct core_object_ip6 {
uint16_t frag_offlg; uint16_t frag_offlg;
uint16_t frag_ident; uint16_t frag_ident;
uint8_t rtdst[16]; uint8_t rtdst[16];
uint16_t hlen;
} core_object_ip6_t; } core_object_ip6_t;
core_object_ip6_t* core_object_ip6_copy(const core_object_ip6_t* self); core_object_ip6_t* core_object_ip6_copy(const core_object_ip6_t* self);

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.
@ -58,6 +58,9 @@
-- rtdst -- rtdst
-- Destination address found in the routing extension header. -- Destination address found in the routing extension header.
-- .TP -- .TP
-- hlen
-- The length of extension headers, in bytes.
-- .TP
-- payload -- payload
-- A pointer to the payload. -- A pointer to the payload.
-- .TP -- .TP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -0,0 +1,45 @@
/*
* Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved.
*
* This file is part of dnsjit.
*
* dnsjit is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* dnsjit is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include "core/object/linuxsll2.h"
#include "core/assert.h"
#include <stdlib.h>
#include <string.h>
core_object_linuxsll2_t* core_object_linuxsll2_copy(const core_object_linuxsll2_t* self)
{
core_object_linuxsll2_t* copy;
glassert_self();
glfatal_oom(copy = malloc(sizeof(core_object_linuxsll2_t)));
memcpy(copy, self, sizeof(core_object_linuxsll2_t));
copy->obj_prev = 0;
return copy;
}
void core_object_linuxsll2_free(core_object_linuxsll2_t* self)
{
glassert_self();
free(self);
}

View file

@ -0,0 +1,38 @@
/*
* Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved.
*
* This file is part of dnsjit.
*
* dnsjit is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* dnsjit is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
*/
#include <dnsjit/core/object.h>
#include <dnsjit/core/timespec.h>
#ifndef __dnsjit_core_object_linuxsll2_h
#define __dnsjit_core_object_linuxsll2_h
#include <stddef.h>
#include <dnsjit/core/object/linuxsll2.hh>
#define CORE_OBJECT_LINUXSLL2_INIT(prev) \
{ \
CORE_OBJECT_INIT(CORE_OBJECT_LINUXSLL2, prev) \
, \
0, 0, 0, 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } \
}
#endif

View file

@ -0,0 +1,37 @@
/*
* Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved.
*
* This file is part of dnsjit.
*
* dnsjit is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* dnsjit is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
*/
// lua:require("dnsjit.core.object_h")
typedef struct core_object_linuxsll2 {
const core_object_t* obj_prev;
int32_t obj_type;
uint16_t protocol_type;
uint16_t reserved;
uint32_t interface_index;
uint16_t arphrd_type;
uint8_t packet_type;
uint8_t link_layer_address_length;
uint8_t link_layer_address[8];
} core_object_linuxsll2_t;
core_object_linuxsll2_t* core_object_linuxsll2_copy(const core_object_linuxsll2_t* self);
void core_object_linuxsll2_free(core_object_linuxsll2_t* self);

View file

@ -0,0 +1,90 @@
-- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved.
--
-- This file is part of dnsjit.
--
-- dnsjit is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- dnsjit is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
-- dnsjit.core.object.linuxsll2
-- Linux cooked-mode v2 capture (SLL2) part of a packet
--
-- The SLL2 part of a packet that usually can be found in the object chain
-- after parsing with, for example, Layer filter.
-- .SS Attributes
-- .TP
-- protocol_type
-- The protocol type.
-- .TP
-- reserved
-- Reserved (MBZ).
-- .TP
-- interface_index
-- The interface index, on the machine on which the capture is done, of the interface on which the packet was sent or received.
-- .TP
-- arphrd_type
-- The link-layer device type.
-- .TP
-- packet_type
-- The packet type.
-- .TP
-- link_layer_address_length
-- The length of the link-layer address.
-- .TP
-- link_layer_address
-- The link-layer address.
module(...,package.seeall)
require("dnsjit.core.object.linuxsll2_h")
local ffi = require("ffi")
local C = ffi.C
local t_name = "core_object_linuxsll2_t"
local core_object_linuxsll2_t
local Linuxsll2 = {}
-- Return the textual type of the object.
function Linuxsll2:type()
return "linuxsll2"
end
-- Return the previous object.
function Linuxsll2:prev()
return self.obj_prev
end
-- Cast the object to the underlining object module and return it.
function Linuxsll2:cast()
return self
end
-- Cast the object to the generic object module and return it.
function Linuxsll2:uncast()
return ffi.cast("core_object_t*", self)
end
-- Make a copy of the object and return it.
function Linuxsll2:copy()
return C.core_object_linuxsll2_copy(self)
end
-- Free the object, should only be used on copies or otherwise allocated.
function Linuxsll2:free()
C.core_object_linuxsll2_free(self)
end
core_object_linuxsll2_t = ffi.metatype(t_name, { __index = Linuxsll2 })
-- dnsjit.core.object (3).
-- dnsjit.filter.layer (3)
return Linuxsll2

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,4 +1,4 @@
-- Copyright (c) 2018-2024 OARC, Inc. -- Copyright (c) 2018-2025 OARC, Inc.
-- All rights reserved. -- All rights reserved.
-- --
-- This file is part of dnsjit. -- This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2024 OARC, Inc. * Copyright (c) 2018-2025 OARC, Inc.
* All rights reserved. * All rights reserved.
* *
* This file is part of dnsjit. * This file is part of dnsjit.

Some files were not shown because too many files have changed in this diff Show more