Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nemesis for openSUSE:Factory checked in at 2021-07-21 19:06:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nemesis (Old) and /work/SRC/openSUSE:Factory/.nemesis.new.2632 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nemesis" Wed Jul 21 19:06:46 2021 rev:5 rq:907500 version:1.8 Changes: -------- --- /work/SRC/openSUSE:Factory/nemesis/nemesis.changes 2020-06-22 17:45:32.001775521 +0200 +++ /work/SRC/openSUSE:Factory/.nemesis.new.2632/nemesis.changes 2021-07-21 19:08:05.655470228 +0200 @@ -1,0 +2,16 @@ +Sat Jul 10 10:12:49 UTC 2021 - Martin Hauke <[email protected]> + +- Update to version 1.8 + Changes + * Add automatic IP multicast group to MAC multicast address + translation + * Improved usability for composing IGMPv3 reports: + + Default to 224.0.0.2 for IGMPv3 report type + + Add -n NUM to control number of group records + Fixes + * Fix IGMP v2 join example in README + * Fix logic for printing DNS protocol: TCP/UDP + * Fix #12: allow 0.0.0.0 as RIP address + * Fix #13: multiple definitions of variables + +------------------------------------------------------------------- Old: ---- nemesis-1.7.tar.gz New: ---- nemesis-1.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nemesis.spec ++++++ --- /var/tmp/diff_new_pack.p6RIsn/_old 2021-07-21 19:08:06.059470931 +0200 +++ /var/tmp/diff_new_pack.p6RIsn/_new 2021-07-21 19:08:06.063470937 +0200 @@ -1,8 +1,8 @@ # # spec file for package nemesis # -# Copyright (c) 2020 SUSE LLC -# Copyright (c) 2018, Martin Hauke <[email protected]> +# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2018-2021, Martin Hauke <[email protected]> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ Name: nemesis -Version: 1.7 +Version: 1.8 Release: 0 Summary: TCP/IP Packet Injection Suite License: BSD-4-Clause ++++++ nemesis-1.7.tar.gz -> nemesis-1.8.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/.github/workflows/ci.yml new/nemesis-1.8/.github/workflows/ci.yml --- old/nemesis-1.7/.github/workflows/ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/nemesis-1.8/.github/workflows/ci.yml 2021-07-06 22:04:23.000000000 +0200 @@ -0,0 +1,45 @@ +name: Bob the Builder + +on: + push: + branches: [master] +env: + # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners + MAKEFLAGS: -j2 + +jobs: + build: + # Verify we can build on latest Ubuntu with both gcc and clang + name: ${{ matrix.compiler }} + runs-on: ubuntu-latest + strategy: + matrix: + compiler: [gcc, clang] + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies + run: | + sudo apt-get install -y tree libnet-dev + - name: Configure & Build + run: | + ./autogen.sh + ./configure --prefix=/usr CC=${{ matrix.compiler }} + make V=1 -j5 + make install-strip DESTDIR=/tmp + tree /tmp/usr + debian: + # Verify Debian package building + runs-on: ubuntu-latest + container: debian:stable + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies + run: | + apt-get update + apt-get install -y build-essential autoconf automake libnet-dev \ + dpkg-dev debhelper devscripts + - name: Building Debian package + run: | + ./autogen.sh + ./configure + make package diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/.github/workflows/coverity.yml new/nemesis-1.8/.github/workflows/coverity.yml --- old/nemesis-1.7/.github/workflows/coverity.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/nemesis-1.8/.github/workflows/coverity.yml 2021-07-06 22:04:23.000000000 +0200 @@ -0,0 +1,53 @@ +name: Coverity Scan +on: + push: + branches: [dev] + +env: + PROJECT_NAME: nemesis + CONTACT_EMAIL: [email protected] + COVERITY_NAME: libnet-nemesis + COVERITY_PROJ: troglobit%2Fnemesis + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v2 + id: coverity-toolchain-cache + with: + path: cov-analysis-linux64 + key: ${{ runner.os }}-coverity + - name: Download Coverity Scan + if: steps.coverity-toolchain-cache.outputs.cache-hit != 'true' + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$TOKEN&project=${COVERITY_PROJ}" \ + -O cov-analysis-linux64.tar.gz + mkdir cov-analysis-linux64 + tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64 + - name: Install dependencies ... + run: | + sudo apt-get -y install tree libnet-dev + - name: Build + run: | + ./autogen.sh + ./configure + export PATH=`pwd`/cov-analysis-linux64/bin:$PATH + cov-build --dir cov-int make + - name: Submit result to Coverity Scan + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + tar czvf ${PROJECT_NAME}.tgz cov-int + curl \ + --form project=${COVERITY_NAME} \ + --form token=$TOKEN \ + --form email=${CONTACT_EMAIL} \ + --form file=@${PROJECT_NAME}.tgz \ + --form version=trunk \ + --form description="${PROJECT_NAME} $(git rev-parse HEAD)" \ + https://scan.coverity.com/builds?project=${COVERITY_PROJ} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/.github/workflows/release.yml new/nemesis-1.8/.github/workflows/release.yml --- old/nemesis-1.7/.github/workflows/release.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/nemesis-1.8/.github/workflows/release.yml 2021-07-06 22:04:23.000000000 +0200 @@ -0,0 +1,87 @@ +name: Release General + +on: + push: + tags: + - 'v*' + +jobs: + release: + name: Create GitHub release + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/') + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + release_id: ${{ steps.create_release.outputs.id }} + steps: + - uses: actions/checkout@v2 + - name: Extract ChangeLog entry ... + # Hack to extract latest entry for body_path below + run: | + awk '/-----*/{if (x == 1) exit; x=1;next}x' ChangeLog.md \ + |head -n -1 > release.md + cat release.md + - name: Create release ... + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Nemesis ${{ github.ref }} + body_path: release.md + draft: false + prerelease: false + tarball: + name: Build and upload release tarball + needs: release + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies ... + run: | + sudo apt-get install -y libnet-dev + - name: Creating Makefiles ... + run: | + ./autogen.sh + ./configure + - name: Build release ... + run: | + make distcheck + ls -lF ../ + mkdir -p artifacts/ + mv ../*.tar.* artifacts/ + - name: Upload release artifacts ... + uses: skx/[email protected] + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + releaseId: ${{ needs.release.outputs.release_id }} + args: artifacts/* + debian: + name: Build and upload Debian package + needs: release + runs-on: ubuntu-latest + container: debian:stable + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies + run: | + apt-get update + apt-get install -y build-essential autoconf automake libnet-dev \ + dpkg-dev debhelper devscripts + - name: Building Debian package + run: | + ./autogen.sh + ./configure + make package + mkdir -p artifacts/ + mv ../*deb ../*.build* ../*.changes artifacts/ + - name: Uploading Debian package + uses: skx/[email protected] + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + releaseId: ${{ needs.release.outputs.release_id }} + args: artifacts/* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/.travis.yml new/nemesis-1.8/.travis.yml --- old/nemesis-1.7/.travis.yml 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -# Travis CI integration -# Defaults to GNU GCC and autotools: ./configure && make && make test -language: c - -# We don't need to install packages, use dockerized build, quicker -sudo: false - -# Test build with both GCC and Clang (LLVM) -compiler: - - gcc - - clang - -env: - global: - # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created - # via the "travis encrypt" command using the project repo's public key - - secure: "H225aMJCZjKfzEZW+IUtQs6Ks3I+14nzHow35PakSG1IvPsuCbUvortrjtACED6cTRDesAIiSI+WK8OjpDsSMxwjBmVdGI43lGf/zf9fj8cTPOQbVOrn2CUUBTWkzB0STtU/qnhsBEw/TkpTb4+Y5lGBrN6oxfuAEowMpbikuyhLThZsL8Pk+fLQUjCwI3z3+ik3xpdThd9YQpn+yEmabrt4wYxt10rWzILqKTe+HtSnswEJcL2RB/F76z3bWwgePl+x6C6ZPOczV/XyT0NdKXRtMjhplMV5i9imQ7eou0lEUDtrlnynuwLHd3R2YKgzAMjCcCFL3KLlBM1wuJbpQ8CDOYo77gHZ7k2vV9sawOCd+myzWOqRpZEoobkRDmuVenquRWmGp6gSlb9JzQa5C9y2Cb9+8hZYtzpF/Wcwd9qgHxHVvT/dU48yA/Hk+lZHtnnD3dz33H35A84MWw8orhg92/2bJXZa5FIt9wIsi2A468cU9IfR3SrID67VMBgQgemWpgmESPLqMDVbv0JJxCS+RmRc8t73r8qzrJlZBDw/UStmNz0sseQgN2dwERXMLxvSvpLeht6KTpHQhLo5yjQ3VrHWBzV3DzE04VnhIdktx6OeUHDRoP6vTrYRmwGbDdiSNfitB/lwwk82VWNvKb4jkZzsoBYx7x8p25TfBW4=" - -before_install: - - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- - -addons: - apt: - packages: - - tree - - libnet1-dev - coverity_scan: - project: - name: "troglobit/nemesis" - description: "TCP/IP Packet Injection" - notification_email: [email protected] - build_command_prepend: "./autogen.sh && ./configure --prefix=/tmp" - build_command: "make -j5" - branch_pattern: dev - -# We don't store generated files (configure and Makefile) in GIT, -# so we must customize the default build script to run ./autogen.sh -script: - - ./autogen.sh - - ./configure --prefix=/tmp - - make V=1 -j5 - - make install-strip - - tree /tmp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/ChangeLog.md new/nemesis-1.8/ChangeLog.md --- old/nemesis-1.7/ChangeLog.md 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/ChangeLog.md 2021-07-06 22:04:23.000000000 +0200 @@ -8,6 +8,24 @@ - Versions <= v1.31, Mark Grimes <mailto:mark at stateful dot net> +[v1.8][] - 2021-07-06 +--------------------- + +Nemesis the Mover, found a new home in the libnet project. + +### Changes +- Add automatic IP multicast group to MAC multicast address translation +- Improved usability for composing IGMPv3 reports: + - Default to 224.0.0.2 for IGMPv3 report type + - Add `-n NUM` to control number of group records + +### Fixes +- Fix IGMP v2 join example in README +- Fix logic for printing DNS protocol: TCP/UDP, by Brett Kuskie +- Fix #12: allow 0.0.0.0 as RIP address +- Fix #13: multiple definitions of variables, by Brett Kuskie + + [v1.7][] - 2020-06-07 --------------------- @@ -303,10 +321,11 @@ - ARP, ICMP, OSPF (unfinished), TCP, UDP implemented -[UNRELEASED]: https://github.com/troglobit/nemesis/compare/v1.7...HEAD -[v1.7]: https://github.com/troglobit/nemesis/compare/v1.6...v1.7 -[v1.6]: https://github.com/troglobit/nemesis/compare/v1.5...v1.6 -[v1.5]: https://github.com/troglobit/nemesis/compare/v1.4...v1.5 +[UNRELEASED]: https://github.com/libnet/nemesis/compare/v1.8...HEAD +[v1.8]: https://github.com/libnet/nemesis/compare/v1.7...v1.8 +[v1.7]: https://github.com/libnet/nemesis/compare/v1.6...v1.7 +[v1.6]: https://github.com/libnet/nemesis/compare/v1.5...v1.6 +[v1.5]: https://github.com/libnet/nemesis/compare/v1.4...v1.5 [v1.4]: http://sf.net/nemesis/nemesis-1.4.tar.gz [v1.32]: http://ftp.twaren.net/BSD/OpenBSD/distfiles/nemesis-1.32.tar.gz [v1.31]: http://ftp.twaren.net/BSD/OpenBSD/distfiles/nemesis-1.31.tar.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/Makefile.am new/nemesis-1.8/Makefile.am --- old/nemesis-1.7/Makefile.am 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/Makefile.am 2021-07-06 22:04:23.000000000 +0200 @@ -7,17 +7,17 @@ package: @debuild -uc -us -B --lintian-opts --profile debian -i -I --show-overrides -## Generate MD5 checksum file -MD5 = md5sum -md5-dist: - @for file in $(DIST_ARCHIVES); do \ - $(MD5) $$file > ../$$file.md5; \ - mv $$file ../; \ +## Generate checksum files, works now but may b0rk "make check" when we add unit tests +distcheck-hook: + @for file in $(DIST_ARCHIVES); do \ + md5sum $$file > $(top_srcdir)/../$$file.md5; \ + sha256sum $$file > $(top_srcdir)/../$$file.sha256; \ + ln $$file $(top_srcdir)/../; \ done ## Check if tagged in git release-hook: - if [ ! `git tag | grep $(PACKAGE_VERSION)` ]; then \ + if [ ! `git tag v$(PACKAGE_VERSION) | grep v$(PACKAGE_VERSION)` ]; then \ echo; \ printf "\e[1m\e[41mCannot find release tag $(PACKAGE_VERSION)\e[0m\n"; \ printf "\e[1m\e[5mDo release anyway?\e[0m "; read yorn; \ @@ -33,14 +33,15 @@ echo; \ fi -# Target to run when building a release -release: distcheck release-hook md5-dist package +## Target to run when building a release manually +release: release-hook distcheck package @echo - @echo "Resulting release files:" - @echo "=================================================================" + @echo "Resulting release files in parent dir:" + @echo "==================================================================================================" @for file in $(DIST_ARCHIVES); do \ printf "%-32s Distribution tarball\n" $$file; \ - printf "%-32s " $$file.md5; cat ../$$file.md5 | cut -f1 -d' '; \ + printf "%-32s " $$file.md5; cat ../$$file.md5 | cut -f1 -d' '; \ + printf "%-32s " $$file.sha256; cat ../$$file.sha256 | cut -f1 -d' '; \ done @for file in `cd ..; ls nemesis_$(VERSION)* $(PACKAGE)-dbg*_$(VERSION)*`; do \ printf "%-32s Debian/Ubuntu package\n" $$file; \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/README.md new/nemesis-1.8/README.md --- old/nemesis-1.7/README.md 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/README.md 2021-07-06 22:04:23.000000000 +0200 @@ -1,6 +1,6 @@ N E M E S I S - Crafting & Injection ====================================== -[![License Badge][]][License] [![Travis Status][]][Travis] [![Coverity Status][]][Coverity Scan] <img align="right" src="docs/logo.png"> +[![License Badge][]][License] [![GitHub Status][]][GitHub] [![Coverity Status][]][Coverity Scan] <img align="right" src="docs/logo.png"> The Nemesis Project is designed to be a command line based, portable human IP stack for UNIX-like and Windows systems. The suite is broken @@ -8,7 +8,7 @@ packets from simple shell scripts. The latest release is always available from GitHub at -> https://github.com/troglobit/nemesis/releases +> https://github.com/libnet/nemesis/releases Key Features @@ -43,7 +43,7 @@ * IGMP v2 join for group 239.186.39.5 - sudo nemesis igmp -v -p 22 -S 192.168.1.20 -i 239.186.39.5 -D 239.186.39.5 + sudo nemesis igmp -v -p 22 -S 192.168.1.20 -g 239.186.39.5 -D 239.186.39.5 * IGMP v2 query, max resp. time 10 sec, with Router Alert IP option @@ -134,7 +134,7 @@ `autogen.sh` script. This requires `automake` and `autoconf` to be installed on your system. - git clone https://github.com/troglobit/nemesis.git + git clone https://github.com/libnet/nemesis.git cd nemesis/ ./autogen.sh ./configure && make @@ -156,11 +156,11 @@ [License]: https://en.wikipedia.org/wiki/BSD_licenses [License Badge]: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg -[GitHub]: https://github.com/troglobit/mini-snmpd +[GitHub]: https://github.com/libnet/nemesis [libnet]: https://sourceforge.net/projects/libnet-dev/ [libpcap]: http://www.tcpdump.org/ [buildsystem]: https://airs.com/ian/configure/ -[Travis]: https://travis-ci.org/troglobit/nemesis -[Travis Status]: https://travis-ci.org/troglobit/nemesis.png?branch=master +[GitHub]: https://github.com/libnet/nemesis/actions/workflows/ci.yml/ +[GitHub Status]: https://github.com/libnet/nemesis/actions/workflows/ci.yml/badge.svg [Coverity Scan]: https://scan.coverity.com/projects/15484 [Coverity Status]: https://scan.coverity.com/projects/15484/badge.svg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/configure.ac new/nemesis-1.8/configure.ac --- old/nemesis-1.7/configure.ac 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/configure.ac 2021-07-06 22:04:23.000000000 +0200 @@ -3,7 +3,7 @@ # Suggested reading: "GNU Autoconf, Automake and Libtool" New Riders Press AC_PREREQ(2.61) -AC_INIT(nemesis, 1.7, https://github.com/troglobit/nemesis/issues,, +AC_INIT(nemesis, 1.8, https://github.com/libnet/nemesis/issues,, http://troglobit.com/projects/nemesis/) AM_INIT_AUTOMAKE([1.11 foreign]) AM_SILENT_RULES([yes]) @@ -67,7 +67,7 @@ AC_HEADER_TIME AC_CHECK_HEADERS([unistd.h errno.h strings.h netdb.h limits.h libnet.h \ machine/endian.h sys/time.h sys/param.h arpa/inet.h netinet/in.h \ - net/ethernet.h]) + netinet/if_ether.h net/ethernet.h]) # Checks for library functions. AC_CHECK_FUNCS([gethostbyname gettimeofday inet_ntoa isascii memset \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/debian/changelog new/nemesis-1.8/debian/changelog --- old/nemesis-1.7/debian/changelog 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/debian/changelog 2021-07-06 22:04:23.000000000 +0200 @@ -1,3 +1,16 @@ +nemesis (1.8) stable; urgency=medium + + * igmp: automatic translation of IP multicast group to MAC dst address + * igmp: improved usability for composing IGMPv3 reports: 1) default to + 224.0.0.2 as destination group, 2) add `-n NUM` to control number of + group records (appended to report) + * Fix IGMPv2 join example in README + * Fix logic for printing DNS protocol + * Fix #12: allow 0.0.0.0 as RIP address + * Fix #13: multiple definitions of variables + + -- Joachim Wiberg <[email protected]> Tue, 06 Jul 2021 14:11:31 +0200 + nemesis (1.7) stable; urgency=medium * Fix #6: Skip sleep/delay when sending only one frame, i.e. default diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/debian/control new/nemesis-1.8/debian/control --- old/nemesis-1.7/debian/control 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/debian/control 2021-07-06 22:04:23.000000000 +0200 @@ -5,8 +5,8 @@ Build-Depends: debhelper (>= 10), libnet1-dev (>= 1.1.6) Standards-Version: 4.3.0 Homepage: http://troglobit.com/projects/nemesis/ -Vcs-Git: git://github.com/troglobit/nemesis.git -Vcs-Browser: http://github.com/troglobit/nemesis +Vcs-Git: git://github.com/libnet/nemesis.git +Vcs-Browser: http://github.com/libnet/nemesis Package: nemesis Architecture: any diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/debian/copyright new/nemesis-1.8/debian/copyright --- old/nemesis-1.7/debian/copyright 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/debian/copyright 2021-07-06 22:04:23.000000000 +0200 @@ -1,7 +1,7 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: nemesis Upstream-Contact: Joachim Nilsson <[email protected]> -Source: http://github.com/troglobit/nemesis +Source: http://github.com/libnet/nemesis Files: * Copyright: 1999-2001 Mark Grimes <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/debian/watch new/nemesis-1.8/debian/watch --- old/nemesis-1.7/debian/watch 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/debian/watch 2021-07-06 22:04:23.000000000 +0200 @@ -1,2 +1,2 @@ version=3 -https://github.com/troglobit/nemesis/releases/download/v(.*)/nemesis-(.*)\.tar\.gz +https://github.com/libnet/nemesis/releases/download/v(.*)/nemesis-(.*)\.tar\.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-arp.1 new/nemesis-1.8/man/nemesis-arp.1 --- old/nemesis-1.7/man/nemesis-arp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-arp.1 2021-07-06 22:04:23.000000000 +0200 @@ -103,4 +103,4 @@ .An Jeff Nathan Aq Mt [email protected] . .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-dhcp.1 new/nemesis-1.8/man/nemesis-dhcp.1 --- old/nemesis-1.7/man/nemesis-dhcp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-dhcp.1 2021-07-06 22:04:23.000000000 +0200 @@ -216,4 +216,4 @@ .An Joachim Nilsson Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-dns.1 new/nemesis-1.8/man/nemesis-dns.1 --- old/nemesis-1.7/man/nemesis-dns.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-dns.1 2021-07-06 22:04:23.000000000 +0200 @@ -263,4 +263,4 @@ An interface for users to create DNS packet payloads should be created. .Pp Please report bugs at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-ethernet.1 new/nemesis-1.8/man/nemesis-ethernet.1 --- old/nemesis-1.7/man/nemesis-ethernet.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-ethernet.1 2021-07-06 22:04:23.000000000 +0200 @@ -98,4 +98,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-icmp.1 new/nemesis-1.8/man/nemesis-icmp.1 --- old/nemesis-1.7/man/nemesis-icmp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-icmp.1 2021-07-06 22:04:23.000000000 +0200 @@ -260,4 +260,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-igmp.1 new/nemesis-1.8/man/nemesis-igmp.1 --- old/nemesis-1.7/man/nemesis-igmp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-igmp.1 2021-07-06 22:04:23.000000000 +0200 @@ -217,4 +217,4 @@ .An Joachim Nilsson Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-ip.1 new/nemesis-1.8/man/nemesis-ip.1 --- old/nemesis-1.7/man/nemesis-ip.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-ip.1 2021-07-06 22:04:23.000000000 +0200 @@ -284,4 +284,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-ospf.1 new/nemesis-1.8/man/nemesis-ospf.1 --- old/nemesis-1.7/man/nemesis-ospf.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-ospf.1 2021-07-06 22:04:23.000000000 +0200 @@ -284,4 +284,4 @@ .An Joachim Nilsson Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-rip.1 new/nemesis-1.8/man/nemesis-rip.1 --- old/nemesis-1.7/man/nemesis-rip.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-rip.1 2021-07-06 22:04:23.000000000 +0200 @@ -248,4 +248,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-tcp.1 new/nemesis-1.8/man/nemesis-tcp.1 --- old/nemesis-1.7/man/nemesis-tcp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-tcp.1 2021-07-06 22:04:23.000000000 +0200 @@ -235,4 +235,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis-udp.1 new/nemesis-1.8/man/nemesis-udp.1 --- old/nemesis-1.7/man/nemesis-udp.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis-udp.1 2021-07-06 22:04:23.000000000 +0200 @@ -182,4 +182,4 @@ .An Jeff Nathan Aq Mt [email protected] .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/man/nemesis.1 new/nemesis-1.8/man/nemesis.1 --- old/nemesis-1.7/man/nemesis.1 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/man/nemesis.1 2021-07-06 22:04:23.000000000 +0200 @@ -68,4 +68,4 @@ .An Joachim Nilsson Aq Mt [email protected] . .Sh BUGS Please report at -.Lk https://github.com/troglobit/nemesis/issues +.Lk https://github.com/libnet/nemesis/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-dns.c new/nemesis-1.8/src/nemesis-dns.c --- old/nemesis-1.7/src/nemesis-dns.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-dns.c 2021-07-06 22:04:23.000000000 +0200 @@ -34,6 +34,8 @@ static void dns_validatedata(void); static void dns_verbose(void); +int dns_state = 0; /* default to UDP */ + void nemesis_dns(int argc, char **argv) { const char *module = "DNS Packet Injection"; @@ -65,7 +67,7 @@ dns_verbose(); if (got_payload) { - if (state) { + if (dns_state) { #if defined(WIN32) if (builddatafromfile(DNSTCP_LINKBUFFSIZE, &pd, payloadfile, PAYLOADMODE) < 0) #else @@ -89,7 +91,7 @@ dns_exit(1); } - if (state && got_tcpoptions) { + if (dns_state && got_tcpoptions) { if (builddatafromfile(OPTIONSBUFFSIZE, &tcpod, tcpoptionsfile, OPTIONSMODE) < 0) dns_exit(1); } @@ -145,7 +147,7 @@ static void dns_validatedata(void) { - if (state && tcphdr.th_flags == 0) + if (dns_state && tcphdr.th_flags == 0) tcphdr.th_flags |= TH_SYN; } @@ -301,7 +303,7 @@ case 'k': /* use TCP */ iphdr.ip_tos = 0; iphdr.ip_p = IPPROTO_TCP; - state = 1; + dns_state = 1; break; case 'M': /* Ethernet destination address */ @@ -457,7 +459,7 @@ nemesis_printip(&iphdr); - if (state) + if (dns_state) nemesis_printtcp(&tcphdr); else nemesis_printudp(&udphdr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-dns.h new/nemesis-1.8/src/nemesis-dns.h --- old/nemesis-1.7/src/nemesis-dns.h 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-dns.h 2021-07-06 22:04:23.000000000 +0200 @@ -29,7 +29,7 @@ #include "nemesis.h" #include <libnet.h> -int state; /* default to UDP */ +extern int dns_state; /* default to UDP */ int builddns(ETHERhdr *, IPhdr *, TCPhdr *, UDPhdr *, DNShdr *, struct file *, struct file *, struct file *, libnet_t *); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-functions.c new/nemesis-1.8/src/nemesis-functions.c --- old/nemesis-1.7/src/nemesis-functions.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-functions.c 2021-07-06 22:04:23.000000000 +0200 @@ -58,6 +58,8 @@ int interval = 1000000; /* Time in usec between packets, default 1 sec */ int count = 1; /* Number of packets to send, default 1 pkt */ int got_link; +int got_payload; +int got_dhost; /* User supplied dest mac */ int got_ipoptions; int got_tcpoptions; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-icmp.c new/nemesis-1.8/src/nemesis-icmp.c --- old/nemesis-1.7/src/nemesis-icmp.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-icmp.c 2021-07-06 22:04:23.000000000 +0200 @@ -35,6 +35,9 @@ static void icmp_validatedata(void); static void icmp_verbose(void); +int icmp_mode; +int got_origoptions; + void nemesis_icmp(int argc, char **argv) { const char *module = "ICMP Packet Injection"; @@ -116,7 +119,7 @@ ipunreach.ip_ttl = 255; /* ICMP unreach IP TTL */ ipunreach.ip_p = 17; /* ICMP unreach IP protocol */ - mode = ICMP_ECHO; /* default to ICMP echo */ + icmp_mode = ICMP_ECHO; /* default to ICMP echo */ icmphdr.icmp_type = 0; /* ICMP type */ icmphdr.icmp_code = 0; /* ICMP code */ icmphdr.hun.echo.id = 0; /* ICMP ID */ @@ -142,12 +145,12 @@ icmp_exit(1); } - if (got_origoptions && !(mode == ICMP_UNREACH || mode == ICMP_REDIRECT || mode == ICMP_TIMXCEED)) { + if (got_origoptions && !(icmp_mode == ICMP_UNREACH || icmp_mode == ICMP_REDIRECT || icmp_mode == ICMP_TIMXCEED)) { fprintf(stderr, "ERROR: -l is only valid with ICMP redirect, unreach or time exceeded injection.\n"); icmp_exit(1); } - if (pd.file_len == 0 && (mode == ICMP_UNREACH || mode == ICMP_REDIRECT || mode == ICMP_TIMXCEED)) { + if (pd.file_len == 0 && (icmp_mode == ICMP_UNREACH || icmp_mode == ICMP_REDIRECT || icmp_mode == ICMP_TIMXCEED)) { udphdr.uh_sport = libnet_get_prand(PRu16); udphdr.uh_dport = libnet_get_prand(PRu16); udphdr.uh_ulen = htons(20); @@ -161,7 +164,7 @@ } /* Attempt to send valid packets if the user hasn't decided to craft an anomolous packet */ - switch (mode) { + switch (icmp_mode) { case ICMP_ECHO: /* send an echo request */ if (!got_type) icmphdr.icmp_type = ICMP_ECHO; @@ -445,32 +448,32 @@ } switch (cmd_mode) { case 'E': /* ICMP echo injection */ - mode = ICMP_ECHO; + icmp_mode = ICMP_ECHO; got_mode++; break; case 'M': /* ICMP mask injection */ - mode = ICMP_MASKREQ; + icmp_mode = ICMP_MASKREQ; got_mode++; break; case 'U': /* ICMP unreach injection */ - mode = ICMP_UNREACH; + icmp_mode = ICMP_UNREACH; got_mode++; break; case 'X': /* ICMP time exceeded injection */ - mode = ICMP_TIMXCEED; + icmp_mode = ICMP_TIMXCEED; got_mode++; break; case 'R': /* ICMP redirect injection */ - mode = ICMP_REDIRECT; + icmp_mode = ICMP_REDIRECT; got_mode++; break; case 'T': /* ICMP timestamp injection */ - mode = ICMP_TSTAMP; + icmp_mode = ICMP_TSTAMP; got_mode++; break; @@ -567,6 +570,6 @@ nemesis_printeth(ðerhdr); nemesis_printip(&iphdr); - nemesis_printicmp(&icmphdr, mode); + nemesis_printicmp(&icmphdr, icmp_mode); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-icmp.h new/nemesis-1.8/src/nemesis-icmp.h --- old/nemesis-1.7/src/nemesis-icmp.h 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-icmp.h 2021-07-06 22:04:23.000000000 +0200 @@ -39,8 +39,8 @@ #include "nemesis.h" #include <libnet.h> -int mode; /* ICMP injection mode */ -int got_origoptions; +extern int icmp_mode; /* ICMP injection mode */ +extern int got_origoptions; int buildicmp(ETHERhdr *, IPhdr *, ICMPhdr *, IPhdr *, struct file *, struct file *, struct file *, libnet_t *); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-igmp.c new/nemesis-1.8/src/nemesis-igmp.c --- old/nemesis-1.7/src/nemesis-igmp.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-igmp.c 2021-07-06 22:04:23.000000000 +0200 @@ -16,7 +16,8 @@ static IPhdr iphdr; static IGMPhdr igmphdr; static struct file pd, ipod; -static int got_group, got_type, got_code; +static int got_dst, got_group, got_type, got_code; +static uint16_t num_groups; static char *payloadfile = NULL; /* payload file name */ static char *ipoptionsfile = NULL; /* IP options file name */ static char *device = NULL; /* Ethernet device */ @@ -122,8 +123,13 @@ if (!got_code) igmphdr.igmp_code = 0; if (!got_group) { - inet_aton("224.0.0.1", &igmphdr.igmp_group); - inet_aton("224.0.0.1", &iphdr.ip_dst); + if (igmphdr.igmp_type == 0x22) { + if (!got_dst) + inet_aton("224.0.0.22", &iphdr.ip_dst); + + if (num_groups) + igmphdr.igmp_group.s_addr = htonl(num_groups); + } } } @@ -154,6 +160,7 @@ " 0x32: Multicast router termination\n" " -r <CODE> Max resp. code. v1: unused, v2: query response time\n" " -g <GROUP> Multicast group for join/leave, or group spec. query\n" + " -n <NUM> Number of groups in IGMPv3 report (instead of -g)\n" " -P <FILE> Raw IGMP payload file\n" "\n"); printf("IP options:\n" @@ -187,9 +194,9 @@ char *igmp_options; #if defined(WIN32) - igmp_options = "c:d:D:F:g:H:i:I:M:O:p:P:r:S:t:T:vZ?"; + igmp_options = "c:d:D:F:g:H:i:I:M:n:O:p:P:r:S:t:T:vZ?"; #else - igmp_options = "c:d:D:F:g:H:i:I:M:O:p:P:r:S:t:T:v?"; + igmp_options = "c:d:D:F:g:H:i:I:M:n:O:p:P:r:S:t:T:v?"; #endif while ((opt = getopt(argc, argv, igmp_options)) != -1) { switch (opt) { @@ -225,6 +232,7 @@ fprintf(stderr, "ERROR: Invalid destination IP address: \"%s\".\n", optarg); igmp_exit(1); } + got_dst = 1; break; case 'F': /* IP fragmentation options */ @@ -258,6 +266,11 @@ &addr_tmp[1], &addr_tmp[2], &addr_tmp[3], &addr_tmp[4], &addr_tmp[5]); for (i = 0; i < 6; i++) etherhdr.ether_dhost[i] = addr_tmp[i]; + got_dhost = 1; + break; + + case 'n': + num_groups = xgetint16(optarg); break; case 'O': /* IP options file */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-ospf.c new/nemesis-1.8/src/nemesis-ospf.c --- old/nemesis-1.7/src/nemesis-ospf.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-ospf.c 2021-07-06 22:04:23.000000000 +0200 @@ -43,6 +43,8 @@ static void ospf_validatedata(void); static void ospf_verbose(void); +int ospf_mode; /* OSPF injection mode */ + void nemesis_ospf(int argc, char **argv) { const char *module = "OSPF Packet Injection"; @@ -826,9 +828,9 @@ nemesis_printospf(&ospfhdr); - if (mode == 1) { - } else if (mode == 2) { - } else if (mode == 3) { + if (ospf_mode == 1) { + } else if (ospf_mode == 2) { + } else if (ospf_mode == 3) { } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-ospf.h new/nemesis-1.8/src/nemesis-ospf.h --- old/nemesis-1.7/src/nemesis-ospf.h 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-ospf.h 2021-07-06 22:04:23.000000000 +0200 @@ -43,7 +43,7 @@ extern NETLSAhdr netlsahdr; extern SUMLSAhdr sumlsahdr; -int mode; /* OSPF injection mode */ +extern int ospf_mode; /* OSPF injection mode */ int buildospf(ETHERhdr *, IPhdr *, struct file *, struct file *, libnet_t *, int); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-proto_dns.c new/nemesis-1.8/src/nemesis-proto_dns.c --- old/nemesis-1.7/src/nemesis-proto_dns.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-proto_dns.c 2021-07-06 22:04:23.000000000 +0200 @@ -30,7 +30,7 @@ dns_packetlen = link_offset + LIBNET_IPV4_H + pd->file_len + ipod->file_len; - if (state == 0) + if (dns_state == 0) dns_packetlen += LIBNET_UDP_H + LIBNET_UDP_DNSV4_H; else dns_packetlen += LIBNET_TCP_H + tcpod->file_len + LIBNET_TCP_DNSV4_H; @@ -44,7 +44,7 @@ printf("DEBUG: DNS payload size %zd.\n", pd->file_len); #endif - libnet_build_dnsv4(((state == 0) + libnet_build_dnsv4(((dns_state == 0) ? LIBNET_UDP_DNSV4_H : LIBNET_TCP_DNSV4_H) + pd->file_len, dns->id, @@ -52,7 +52,7 @@ dns->num_q, dns->num_answ_rr, dns->num_auth_rr, dns->num_addi_rr, pd->file_buf, pd->file_len, l, 0); - if (state == 0) { + if (dns_state == 0) { libnet_build_udp(udp->uh_sport, udp->uh_dport, LIBNET_UDP_H + LIBNET_UDP_DNSV4_H + pd->file_len, @@ -114,11 +114,11 @@ if (verbose) { if (got_link) { printf("Wrote %d byte DNS (%s) packet through linktype %s.\n", - n, ((state == 0) ? "UDP" : "TCP"), + n, ((dns_state == 0) ? "UDP" : "TCP"), nemesis_lookup_linktype(l->link_type)); } else { printf("Wrote %d byte DNS (%s) packet\n", - n, ((state == 1) ? "UDP" : "TCP")); + n, ((dns_state == 0) ? "UDP" : "TCP")); } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-proto_icmp.c new/nemesis-1.8/src/nemesis-proto_icmp.c --- old/nemesis-1.7/src/nemesis-proto_icmp.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-proto_icmp.c 2021-07-06 22:04:23.000000000 +0200 @@ -31,7 +31,7 @@ icmp_packetlen = link_offset + LIBNET_IPV4_H + pd->file_len + ipod->file_len; - switch (mode) { + switch (icmp_mode) { case ICMP_ECHO: icmp_packetlen += LIBNET_ICMPV4_ECHO_H; break; @@ -60,7 +60,7 @@ printf("DEBUG: ICMP payload size %zd.\n", pd->file_len); #endif - switch (mode) { + switch (icmp_mode) { case ICMP_ECHO: libnet_build_icmpv4_echo(icmp->icmp_type, icmp->icmp_code, @@ -123,7 +123,7 @@ break; } - if ((mode == ICMP_UNREACH || mode == ICMP_TIMXCEED || mode == ICMP_REDIRECT) && got_origoptions) { + if ((icmp_mode == ICMP_UNREACH || icmp_mode == ICMP_TIMXCEED || icmp_mode == ICMP_REDIRECT) && got_origoptions) { if (libnet_build_ipv4_options(origod->file_buf, origod->file_len, l, 0) == -1) fprintf(stderr, "ERROR: Unable to add original IP options, discarding them.\n"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-proto_igmp.c new/nemesis-1.8/src/nemesis-proto_igmp.c --- old/nemesis-1.7/src/nemesis-proto_igmp.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-proto_igmp.c 2021-07-06 22:04:23.000000000 +0200 @@ -6,6 +6,9 @@ * nemesis-proto_igmp.c (IGMP Packet Generator) */ +#include <arpa/inet.h> +#include <netinet/if_ether.h> + #include "nemesis-igmp.h" #include "nemesis.h" @@ -57,11 +60,19 @@ ip->ip_dst.s_addr, NULL, 0, l, 0); - if (got_link) + if (got_link) { + if (!got_dhost) { + char daddr[4]; + + inet_ntop(AF_INET, &ip->ip_dst, daddr, sizeof(daddr)); + ETHER_MAP_IP_MULTICAST(daddr, eth->ether_dhost); + } + libnet_build_ethernet(eth->ether_dhost, eth->ether_shost, ETHERTYPE_IP, NULL, 0, l, 0); + } n = nemesis_send_frame(l, &len); if (n != (int)len) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis-rip.c new/nemesis-1.8/src/nemesis-rip.c --- old/nemesis-1.7/src/nemesis-rip.c 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis-rip.c 2021-07-06 22:04:23.000000000 +0200 @@ -149,9 +149,6 @@ break; } } - - if (riphdr.rip_addr == 0) - riphdr.rip_addr = libnet_get_prand(PRu32); } static void rip_usage(char *arg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemesis-1.7/src/nemesis.h new/nemesis-1.8/src/nemesis.h --- old/nemesis-1.7/src/nemesis.h 2020-06-07 12:19:26.000000000 +0200 +++ new/nemesis-1.8/src/nemesis.h 2021-07-06 22:04:23.000000000 +0200 @@ -164,10 +164,11 @@ extern int verbose; extern int interval; extern int count; -int got_link; -int got_payload; -int got_ipoptions; -int got_tcpoptions; +extern int got_link; +extern int got_dhost; +extern int got_payload; +extern int got_ipoptions; +extern int got_tcpoptions; struct file { uint8_t *file_buf; /* pointer to file memory */
