Skip to content

Releases: troglobit/smcroute

SMCRoute v2.4.2

09 Sep 10:31
Compare
Choose a tag to compare

Minor fixes for upcoming Debian release.

Changes

  • Add wrapper script smcroute for use with old style startup scripts
  • Add symlinks to man pages for smcrouted.8 and smcroutectl.8
  • Update SysV init script, daemon now called smcrouted

Fixes

  • Fix #96: A .conf line may be missing final newline, this is fine
  • Spellcheck smcroute.conf example
  • Fix Lintian warning (Debian) for unbreakable line in man page

SMCRoute v2.4.1

16 Jun 11:43
Compare
Choose a tag to compare

Minor fix release.

Changes

  • Update and spell check documentation and example .conf file

Fixes

  • Fix #91: Allow re-configuration of unprivileged smcrouted.
    Courtesy of Marcel Patzlaff

SMCRoute v2.4.0

11 Feb 13:05
Compare
Choose a tag to compare

Changes

  • Interface wildcard support, Linux iptables like syntax, eth+ matches eth0, eth1, eth32. It can be used where an interface name is used: phyint, mroute, mgroup, and even on the command line to smcroutectl. Contributed by Martin Buck
  • Disable IPv4 mrdisc (RFC4286) by default, enable per phyint in the .conf file instead. When not started with smcrouted -N mrdisc would otherwise be enabled on all interfaces found at startup
  • Minor doc updates, e.g. clarify need for root or CAP_NET_ADMIN including some minor man page fixes

Fixes

  • Fix #75: Not possible to remove (*,G) routes using smcroutectl
  • Fix #76: When removing a kernel route, also remove from internal lists otherwise route is shown in smcroutectl show. Conversely, adding a route to internal list shall only be done after successful kernel add
  • Fix #77: Counter overflow due to wrong type used in smcroutectl show
  • Fix #78: Document interface wildcard feature
  • Fix #80: smcroutectl argument parser fixes by Pawel Rozlach
  • Fix #84: Check return value of sigaction()
  • Fix #85: Signal handling is async-signal-unsafe
  • Fix #86: Document how to use iptables on Linux to modify TTL
  • Fix #87: Possible buffer overrun in ipc_receive()
  • Fix #89: Adding similar (S,G) route should replace existing one if inbound interface differs

SMCRoute v2.3.1

13 Jun 21:06
Compare
Choose a tag to compare

Bug fix release courtesy of the Westermo WeOS automated testing framework.
Many thanks to Johan Askerin at Westermo for working on integrating SMCRoute v2.3 into WeOS v4.22!

Changes

  • Add utimensat() replacement for systems that don't have it
  • Ignore error messages from send() on interface link down

Fixes

  • Fix build error(s) on FreeBSD 9/9.3-RELEASE
  • Fix possible invalid interface name reference in new mrdisc support
  • Fix log macro bug in the .conf parser
  • Fix buggy interface and VIF re-initialization on SIGHUP

SMCRoute v2.3

28 May 20:34
Compare
Choose a tag to compare

Separation of daemon and client, with many new features in the client.

Changes

  • Support for GROUP/LEN for IPv4 (*,G) routes
  • Support for IPv4 mrdisc, RFC4286
  • Support for multiple routing tables on Linux, -t ID
  • ssmgroup code folded into general code, now with optional source
  • Separation of daemon and client into smcrouted and smcroutectl
    • Complete new client user interface, smcroutectl
    • Support for disabling IPC and client, --disable-client
    • Support for disabling .conf file support, --disable-config
  • Show multicast routes and joined groups in client, including stats: smcroutectl show [groups|routes]
  • Support for -d SEC startup delay in smcrouted
  • Unknown (*,G) multicast now blocked by default
  • Flush timer, -c SEC, for (*,G) routes now enabled by default, 60 sec
  • Build ID removed from configure script
  • Massive code cleanup, refactor and separation into stand-alone modules
  • Default system paths are no longer taken from /usr/include/paths.h, instead the settings from configure --prefix are used
  • Use of libcap for privilige separation is now auto-detected

Fixes

  • Allow use of loopback interface for multicast routes
  • Fix IPv4-only build, by Martin Buck @gromit1811
  • Fix IPv4 network interface address identification, by Martin Buck @gromit1811
  • Support unlimited number of network interfaces, by Martin Buck @gromit1811

SMCRoute v2.2.2

02 Feb 23:00
Compare
Choose a tag to compare

Changes

  • New client command, -F, for immediately flushing dynamically learned
    (*,G) routes from the cache.

Fixes

  • Fix issue #51: New cache flush timeout option causes endless
    select() loop. Reported by Ramon Fried, @mellowcandle

SMCRoute v2.2.1

09 Jan 16:26
Compare
Choose a tag to compare

Fixes

  • Portability, replace use of non-std __progname with small function
  • Issue #49: systemd .service file missing -d to start daemon

SMCRoute v2.2.0

03 Dec 09:28
Compare
Choose a tag to compare

Changes

  • Support for dropping root privileges after opening the multicast
    routing socket and creating the PID file
  • Support for Source Specific Multicast group subscription (only IPv4)
  • Support for systemd, service file included and installed by default

Fixes

  • Remove GNUisms to be able to build and run on Alpine Linux (musl libc)
  • Add OpenBSD queue.h for systems that do not have any *BSD sys/queue.h
  • Coding style cleanup and minor refactor

SMCRoute v2.1.1

19 Aug 09:03
Compare
Choose a tag to compare

Changes

  • When SIGHUP is received SMCRoute now touches its PID file as an
    acknowledgement. This is used by some process supervision daemons,
    like Finit, on system
    configuration changes to detect when a daemon is done. The mtime is
    set using the utimensat() function to ensure nanosecond resolution.

Fixes

  • Fix issue #38: Minor memory leak at exit. The Valgrind tool warns
    that all memory is not freed when smcroute exits. On most modern
    UNIX systems, on platforms with MMU, this is not a problem, but on
    older systems, or uClinux, memory is not freed at program exit.
  • Fix issue #39: Removing wildcard route at runtime does not work if no
    kernel routes have been set.
  • Fix issue #44: IPv6 disabled by default, despite what configure says
    in its help text. Enabling it disables it ... fixed by enablig IPv6
    by default.

SMCRoute v2.1.0

17 Feb 21:16
Compare
Choose a tag to compare

Maybe most menacing massively majestic multicast managing monster

Changes

  • Allow more interfaces to be used for multicast routing, in particular on Linux, where interfaces without an IP address can now be used! Making it possible to run SMCRoute on DHCP/PPP interfaces, issue #13

  • Add support for TTL scoping on interfaces, very useful for filtering multicast without a firewall: phyint IFNAME ttl-threshold TTL

  • On Linux a socket filter now filters out ALL traffic on the helper sockets where SMCRoute does IGMP/MLD join/leave on multicast groups. This should eliminate the extra overhad required to, not only route streams, but also send a copy of each packet to SMCRoute.

  • Add support for limiting the amount of multicast interfaces (VIFs) SMCRoute creates at startup. Two options are now available, by default all multicast capable interfaces are given a VIF and the user can selectively disable them one by one. However, if the -N command line option is given SMCRoute does not enable any VIFs by default, the user must then selectively enable interface one by one. The syntax in the config file is:

    phyint IFNAME <enable|disable>
    

    Use enable per interface with -N option, or disable by default.

  • Make build ID optional. SMCRoute has always had the build date hard coded in the binary. This change makes this optional, and defaults to disabled, to facilitate reproducible builds. For more info, see https://wiki.debian.org/ReproducibleBuilds, by @bombadil

  • Remove generated files from GIT. Files generated by GNU autotools are now only part of the distribution archive, not the GIT repository. Use ./autogen.sh to create the required files when using GIT

  • Updated man page and example smcroute.conf with limitations on the amount of mgroup rules

  • Add support for executing an external script on config reload and when installing a multicast route. Issue #14

    smcroute -e /path/to/cmd
    

    The script is called when SMCRoute has started up, or has received SIGHUP and just reloaded the configuration file, and when a new source-less rule have been installed. See the documentation for more information on set environment variables etc. Issue #14

  • Add --disable-ipv6 option to configure script. Disables IPv6 support in SMCRoute even though the kernel may support it

  • Replaced -D option with -L LVL to alter log level, issue #24

  • The smcroute daemon now behaves more like a regular UNIX daemon. It defaults to using syslog when running in the background and stderr when running in the foreground. A new option -s can be used to enable syslog when running in the foreground, issue #25

  • The smcroute client no longer use syslog, only stderr, issue #25

  • When starting the smcroute daemon it is no longer possible to also send client commands on the same command line.

  • Remove the (unmaintained) in-tree mcsender tool. Both ping(8) and iperf(1) can be used in its stead. The omping(8) tool is another tool, engineered specifically for testing multicast. Issue #30

Fixes

  • Fix issue #10: smcroute client loops forever on command if no smcroute daemon is running
  • Install binaries to /usr/sbin rather than /usr/bin, regression introduced in v2.0.0. Fixed by Micha Lenk, @bombadil
  • Cleanup fix for no-MMU systems. Multicast groups were not properly cleaned up in the atexit() handler -- only affects no-MMU systems
  • Do not force automake v1.11, only require at least v.11
  • SMCRoute operates fine without a config file, so use a less obtrusive warning message for missing /etc/smcroute.conf