Compare commits

...

22 commits

Author SHA1 Message Date
06a1392839 doc: update list of related projects
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-28 09:42:14 +01:00
4fead7bfcb fix: add version number for dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 14:57:06 +01:00
bb1bb329f3 fix: add missing dependency for debian package
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 14:47:11 +01:00
758d2e99a7 Merge tag 'v0.1.5' into develop
All checks were successful
continuous-integration/drone/push Build is passing
v0.1.5
2023-12-27 13:13:24 +01:00
6a3eb45ec1 Merge branch 'release/v0.1.5' 2023-12-27 13:13:19 +01:00
f35ab53a6e chore: fix RPM package naming + add license 2023-12-27 13:13:13 +01:00
8929f780ed ci: switch to debian for build
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 13:07:35 +01:00
465d5a96aa Merge tag 'v0.1.4' into develop
Some checks reported errors
continuous-integration/drone/push Build was killed
v0.1.4
2023-12-27 11:38:59 +01:00
571e4a48e7 Merge branch 'release/v0.1.4'
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone Build is passing
2023-12-27 11:38:54 +01:00
645b9e024c ci: fix publication 2023-12-27 11:38:48 +01:00
494d565b4e Merge tag 'v0.1.3' into develop
All checks were successful
continuous-integration/drone/push Build is passing
v0.1.3
2023-12-27 11:34:02 +01:00
09567fb868 Merge branch 'release/v0.1.3'
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is failing
2023-12-27 11:33:55 +01:00
8a989c3e39 ci: fix binary delivery 2023-12-27 11:33:49 +01:00
1bb28b5fd1 Merge tag 'v0.1.2' into develop
All checks were successful
continuous-integration/drone/push Build is passing
v0.1.2
2023-12-27 11:30:58 +01:00
a0790005d0 Merge branch 'release/v0.1.2'
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 11:30:53 +01:00
96f87c3ee9 ci: fix binary delivery
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 11:30:40 +01:00
c0f4753213 Merge tag 'v0.1.1' into develop
All checks were successful
continuous-integration/drone/push Build is passing
v0.1.1
2023-12-27 11:28:42 +01:00
3c603c0ada fix: change install type to man
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-27 11:27:57 +01:00
7341fceb55 fix: try compressing the manpage manually
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-27 11:14:41 +01:00
bc91da78c2 fix: try installing manpage without quotes
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-27 11:09:01 +01:00
9ccf4d2352 fix: make sure there are no hidden chars in CMakeLists.txt
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-27 10:55:21 +01:00
fa9fce9131 fix: add cmake root dir in manpage path
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-27 10:54:01 +01:00
3 changed files with 61 additions and 14 deletions

View file

@ -5,16 +5,16 @@ name: default
steps: steps:
- name: build - name: build
image: alpine:latest image: debian:12
environment: environment:
PACKAGE_BASENAME: igmpgen_linux_amd64 PACKAGE_BASENAME: igmpgen_linux_amd64
commands: commands:
- apk update - apt-get update
- apk add cmake gcc g++ libnet libnet-dev debian-devscripts rpm make - apt-get install -y cmake gcc g++ libnet1 libnet-dev rpm make
- make build - make build
- make package - make package
- mkdir -p /_cache/bin /_cache/packages - mkdir -p /_cache/bin /_cache/packages
- cp -r _build/igmpgen /_cache/bin/$PACKAGE_BASENAME # - cp -r _build/igmpgen /_cache/bin/$PACKAGE_BASENAME
- cp -r _build/igmpgen*.deb /_cache/packages/ - cp -r _build/igmpgen*.deb /_cache/packages/
- cp -r _build/igmpgen*.rpm /_cache/packages/ - cp -r _build/igmpgen*.rpm /_cache/packages/
- cp -r _build/igmpgen*.tar.gz /_cache/packages/ - cp -r _build/igmpgen*.tar.gz /_cache/packages/
@ -44,9 +44,12 @@ steps:
- apk add --update --no-cache curl jq - apk add --update --no-cache curl jq
- env |grep DRONE - env |grep DRONE
- | - |
for package_path in /_cache/packages/* ; do \
package_name="$(basename "$package_path")" ; \
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \ curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
--upload-file "/_cache/bin/$PACKAGE_BASENAME" \ --upload-file "$package_path" \
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME" "$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME" ; \
done
- | - |
set -x set -x
curl -X POST \ curl -X POST \
@ -67,12 +70,12 @@ steps:
- | - |
set -x set -x
for package_path in /_cache/packages/* ; do \ for package_path in /_cache/packages/* ; do \
package_name="$(basename "$package_path")" package_name="$(basename "$package_path")" ; \
curl -X POST \ curl -X POST \
-H "Authorization: token $RELEASE_UPLOAD_TOKEN" \ -H "Authorization: token $RELEASE_UPLOAD_TOKEN" \
-H "accept: application/json" \ -H "accept: application/json" \
-H "Content-Type: multipart/form-data" \ -H "Content-Type: multipart/form-data" \
-F "attachment=@$package_name" \ -F "attachment=@$package_path" \
"$RELEASES_URL/$TAG_ID/assets?name=$package_name" ; \ "$RELEASES_URL/$TAG_ID/assets?name=$package_name" ; \
done done

View file

@ -34,7 +34,19 @@ target_link_libraries(igmpgen ${LIBNET_LIBRARY})
install(TARGETS igmpgen DESTINATION bin) install(TARGETS igmpgen DESTINATION bin)
# Install the man page # Install the man page
install(FILES misc/igmpgen.man.1 DESTINATION share/man/man1 RENAME igmpgen.1) include(GNUInstallDirs)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/misc/)
file(
ARCHIVE_CREATE
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/misc/igmpgen.1.gz
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/misc/igmpgen.man.1
FORMAT raw
COMPRESSION GZip
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/misc/igmpgen.1.gz
TYPE MAN
)
# Include CPack for packaging # Include CPack for packaging
include(InstallRequiredSystemLibraries) include(InstallRequiredSystemLibraries)
@ -43,6 +55,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR "${igmpgen_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${igmpgen_VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_MINOR "${igmpgen_VERSION_MINOR}")
# CPack RPM specific settings # CPack RPM specific settings
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
set(CPACK_RPM_PACKAGE_LICENSE "MIT") set(CPACK_RPM_PACKAGE_LICENSE "MIT")
set(CPACK_RPM_PACKAGE_SUMMARY "IGMP Packet Generator") set(CPACK_RPM_PACKAGE_SUMMARY "IGMP Packet Generator")
set(CPACK_RPM_PACKAGE_NAME "igmpgen") set(CPACK_RPM_PACKAGE_NAME "igmpgen")
@ -52,15 +65,19 @@ set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
set(CPACK_RPM_PACKAGE_GROUP "Network") set(CPACK_RPM_PACKAGE_GROUP "Network")
set(CPACK_RPM_PACKAGE_VENDOR "Your Company/Organization") set(CPACK_RPM_PACKAGE_VENDOR "Your Company/Organization")
set(CPACK_RPM_PACKAGE_DESCRIPTION "A tool for generating IGMP packets.") set(CPACK_RPM_PACKAGE_DESCRIPTION "A tool for generating IGMP packets.")
set(CPACK_RPM_PACKAGE_LICENSE "LGPL-3.0-or-later")
set(CPACK_RPM_PACKAGE_LICENSE "libnet (>= 1.3-1)")
# CPack DEB specific settings # CPack DEB specific settings
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Your Name <your-email@example.com>") set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Glenn Y. Rolland <glenux@glenux.net>")
set(CPACK_DEBIAN_PACKAGE_NAME "igmpgen") set(CPACK_DEBIAN_PACKAGE_NAME "igmpgen")
set(CPACK_DEBIAN_PACKAGE_VERSION "${igmpgen_VERSION}") set(CPACK_DEBIAN_PACKAGE_VERSION "${igmpgen_VERSION}")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_SECTION "net") set(CPACK_DEBIAN_PACKAGE_SECTION "net")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "A tool for generating IGMP packets.") set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "A tool for generating IGMP packets.")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libnet1 (>= 1.1.6)")
set(CPACK_GENERATOR "TGZ;RPM;DEB") set(CPACK_GENERATOR "TGZ;RPM;DEB")
include(CPack) include(CPack)

View file

@ -7,7 +7,9 @@
## Overview ## Overview
The IGMP Packet Generator (`igmpgen`) is a specialized tool designed for The IGMP Packet Generator (`igmpgen`) is a specialized tool designed for
generating various types of Internet Group Management Protocol (IGMP) packets. generating various types of [Internet Group Management Protocol
(IGMP)](https://en.wikipedia.org/wiki/Internet_Group_Management_Protocol)
packets.
This tool is particularly useful for network administrators, developers, and This tool is particularly useful for network administrators, developers, and
researchers involved in testing and analyzing multicast network protocols. researchers involved in testing and analyzing multicast network protocols.
@ -114,6 +116,31 @@ This project is licensed under the LGPL 3.0-or-later.
## Related projects ## Related projects
* [IGMPproxy (Official Version)](https://github.com/pali/igmpproxy): The official version of the IGMPproxy tool. * [IGMPproxy (Official Version)](https://github.com/pali/igmpproxy): The
* [IGMPproxy with IGMPv3 & FreeBSD support](https://github.com/ViToni/igmpproxy/): A version of IGMPproxy with added support for IGMPv3 and FreeBSD. official version of the IGMPproxy tool.
* [IGMPproxy with IGMPv3 & FreeBSD
support](https://github.com/ViToni/igmpproxy/): A version of IGMPproxy with
added support for IGMPv3 and FreeBSD.
* [pierf packet generator and analyzer](https://pierf.sourceforge.net/): A
packet injection tool.
* [Send IGMP](https://sendigmp.com/#examples): A simple command-line tool to
send IGMP packets
* [Ostatino](https://github.com/pstavirs/ostinato): Traffic generator for
network engineers.
* [individuwill/mcast](https://github.com/individuwill/mcast)
* [troglobit/mcjoin](https://github.com/troglobit/mcjoin)
* [troglobit/mrdisc](https://github.com/troglobit/mrdisc)
* [troglobit/mrouted](https://github.com/troglobit/mrouted)
* [scapy](https://scapy.net/)
* <https://itecnote.com/tecnote/python-send-igmp-packets-with-scapy/>
* <https://gist.github.com/sdir/6e44c14f6fd29149689b2f9fe37ba6b9>
* <https://github.com/Abaco-Systems/WinPcap-igmp-join>
## References
* https://www.ietf.org/proceedings/50/I-D/idmr-snoop-00.txt
* https://www.rfc-editor.org/rfc/rfc4541
* [Wikipedia: IGMP Snooping](https://en.wikipedia.org/wiki/IGMP_snooping)
* [Wikipedia: Multicast Listener Discovery](https://en.wikipedia.org/wiki/Multicast_Listener_Discovery)