Name:           dnsmeter
Version:        1.0.2
Release:        1%{?dist}
Summary:        DNS performance and infrastructure testing
Group:          Productivity/Networking/DNS/Utilities

License:        GPL-3.0
URL:            https://www.dns-oarc.net/tools/dnsmeter
# Source needs to be generated by dist-tools/create-source-packages, see
# https://github.com/jelu/dist-tools
Source0:        https://github.com/DNS-OARC/dnsmeter/archive/v%{version}.tar.gz?/%{name}_%{version}.orig.tar.gz

BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  gcc-c++
BuildRequires:  bind-devel
BuildRequires:  openssl-devel
%if 0%{?suse_version} || 0%{?sle_version}
BuildRequires:  libbz2-devel
%else
BuildRequires:  bzip2-devel
%endif
BuildRequires:  libidn2-devel
BuildRequires:  zlib-devel
BuildRequires:  libpcap-devel
BuildRequires:  pcre-devel
BuildRequires:  gettext-devel

%description
DNSMeter is a tool for testing performance of nameserver and/or
infrastructure around it.
It generates dns queries and sends them via UDP to a target nameserver
and counts the answers.

Features:
- payload can be given as text file or pcap file
- can automatically run different load steps, which can be given as
  list or ranges
- results per load step can be stored in CSV file
- sender address can be spoofed from a given network or from pcap file,
  if payload is a pcap file
- answers are counted, even if source address is spoofed, if answers get
  routed back to the load generator
- roundtrip-times are measured (average, min, mix)
- amount of DNSSEC queries can be given as percentage of total traffic
- optimized for high amount of packets. On an Intel(R) Xeon(R) CPU E5-2430
  v2 @ 2.50GHz it can generate more than 900.000 packets per second


%prep
%setup -q -n %{name}_%{version}


%build
sh autogen.sh
%configure
make %{?_smp_mflags}


%check
#make test
true


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root)
%{_bindir}/dnsmeter
%{_datadir}/doc/*
%{_mandir}/man1/*


%changelog
* Wed Jun 02 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 1.0.2-1
- Release 1.0.2
  * This release fixes an issue with source port being static when only
    using `-q` to generate traffic from one host/IP. The source port is
    now randomized for every DNS query.
  * Other changes is mainly about build system, packages and fixed issues
    detected by code analysis tools.
  * Commits:
    05000cc Typo, random source port
    6a71707 Coverage
    1c724ce SonarCloud
    0776d20 Badges
    c274884 LGTM
    5a12c61 COPR
    f77efed Build dependency
    a359b66 iconv
* Mon Oct 07 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 1.0.1-1
- Release 1.0.1
  * This release fixes a few minor bugs and a dependency issue which made
    `dnsmeter` throw an exception when using the `-r` option.
  * Bugfixes:
    - Use existing `rtt_avg`, was showing total RTT divided by number of threads
    - Fix an issue which missed the first 8 bytes of a text payload
  * Commits:
    72197b5 PCAP detect
    665be2d RTT average
    3fe7b66 pplib dependencies, RTT average
    e565d42 Funding
    1a1ea40 README
* Mon Sep 23 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 1.0.0-1
- Release 1.0.0
* Wed Sep 18 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 0.9.0-1
- First package release
