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

View file

@ -34,7 +34,19 @@ target_link_libraries(igmpgen ${LIBNET_LIBRARY})
install(TARGETS igmpgen DESTINATION bin)
# 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(InstallRequiredSystemLibraries)
@ -43,6 +55,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR "${igmpgen_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${igmpgen_VERSION_MINOR}")
# CPack RPM specific settings
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
set(CPACK_RPM_PACKAGE_LICENSE "MIT")
set(CPACK_RPM_PACKAGE_SUMMARY "IGMP Packet Generator")
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_VENDOR "Your Company/Organization")
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
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_VERSION "${igmpgen_VERSION}")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
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")
include(CPack)

View file

@ -7,7 +7,9 @@
## Overview
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
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
* [IGMPproxy (Official Version)](https://github.com/pali/igmpproxy): The 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.
* [IGMPproxy (Official Version)](https://github.com/pali/igmpproxy): The
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)