ampr-ripd 2.4

Routing daemon written in C similar to Hessu’s rip44d including optional resending of RIPv2 broadcasts for router injection.
You need to compile it for your system. Download the latest source code here (tgz file), make and enjoy.
Tested and found working on Intel/AMD 32bit and 64bit systems, Raspberry Pi and Mikrotik mipsbe OpenWRT metarouter.
For OpenWRT makefiles, follow this link (Tnx. Bill, M1BKF).

Change Log:
Version 1.0 (1.Aug.2013):
     – Initial release
Version 1.1 (1.Aug.2013):
     – Added routing table selection
     – Added setting of TCP window to 840
Version 1.2 (3.Aug.2013):
     – Added option to use a raw socket instead of multicast on incompatible systems
Version 1.3 (7.Aug.2013):
     – Minor bug fix, removed compiler warnings
Version 1.4 (8.Aug.2013):
     – Possible buffer overflow fixed
     – Delete of routes with metrics 15 fixed
Version 1.5 (10.Aug.2013):
     – fixed a stupid netmask calculation error (introduced in 1.4)
Version 1.6 (10.Oct.2013):
     – changed multicast setup algo to be interface specific (Tnx. Rob, PE1CHL)
Version 1.7 (8.Feb.2014):
     – added support for dynamic hostnames and ampr subnets in the ignore list
Version 1.8 (11.Feb.2014):
     – added option to set metric on routes
Version 1.9 (13.Feb.2014):
     – added option to adjust TCP window size on routes
     – console is now detaching on daemon startup
Version 1.10 (14.Feb.2014):
     – small fixes on option and signal processing (Tnx. Demetre, SV1UY)
     – use of daemon() instead of fork()
     – option -v without -d keeps console attached
Version 1.11 (17.Feb.2014):
     – Change netlink route handling to overwrite/delete only routes written by ampr-ripd
Version 1.12 (16.Nov.2014):
     – Added the option to run an external system command on route set/change (Tnx. Rob, PE1CHL for the idea)
Version 1.13 (20.Nov.2014):
     – Ignore subnets for which the gateway is inside their own subnet
     – Reconstruct RIP messages to be forwarded and send them about every 30 sec
     – Forwarded RIP messages do not use authentication
Version 1.14 (21.Sep.2016):
     – Password in included in the daemon. Only need to set it should it ever change (OK from Brian Kantor – Tnx.)
     – Added man page courtesy of Ana C. Custura and the DebianHams
Version 1.15 (21.Sep.2016):
     – Removed multicast access mode. Only raw sockets are used. Parameter ‘-r’ is ignored
Version 1.16 (3.Feb.2017):
     – Added support for BGP announced 44net endpoints
Version 1.16.1 (4.Feb.2017):
     – Added route cleanup on exit via CTRL-C in console mode.
     – No functional changes
Version 1.16.2 (5.Feb.2017):
     – Reconnect RIP forwarding interface after interface down (Tnx. Gus, I0OJJ).
     – No functional changes
Version 1.16.3 (19.Feb.2017):
     – Correction for host routes on big endian machines.
     – No functional changes
Version 2.0 (20.May.2017):
     – Brought option -r back to life.
     – Added -F and -E options for raw AMPR-RIP forwarding.
     – Added setting of route according to RIP data.
Version 2.1 (28.May.2017):
     – Fixed a segfault if using the -F option
     – Added the possibility to use interface names for the -g option
     – Interface used for raw RIP forwarding restarts on interface error
Version 2.1.1 (29.May.2017):
     – Fixed a tunnel interface detection error (cut instead of copy issue)
     – No functional changes
Version 2.2 (30.May.2017):
     – Added an option to send a “call home” string to my home gateway via UDP on port 59001
      This string will be experimentally used to create a dynamic map of the ampr system.
      Currently the string has to be in callsign@locator format
Version 2.3 (4.Jun.2017):
     – Force the use of the tunnel’s IP address as source IP for “call home”
Version 2.4 (15.Aug.2017):
     – Corrected a segfault in NL handling on some systems (Tnx. Steve, VK5ASF and Bent, OZ6BL)
     – Corrected a segfault on SIGHUP if call home is not set (Tnx. Steve, VK5ASF and Bent, OZ6BL)
     – Improved command line handling
     If you do not wish to participate in the mapping experiment, just do not set the -L option