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(&etherhdr);
 
                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 */

Reply via email to