Skip to content

Releases: dennypage/dpinger

Ability to set alarm hold over time

24 Jan 07:12
Compare
Choose a tag to compare

The release add an option (-H) to explicitly set the hold over time before clearing an alarm. The default value is 10x of the alert interval, which matches the prior behavior.

Log signal number on exit

28 Feb 18:12
Compare
Choose a tag to compare

This release adds logging of the signal number on exit.

Faster initial status, improved pid file support, and improved parameter checking

04 Oct 05:19
Compare
Choose a tag to compare

Send the first echo request at startup

At startup, dpinger is not able to report a valid status until it has received an echo reply or the loss interval on the first echo request has expired. Dpinger reports this indeterminate status as "0 0 0"

Previously, dpinger would wait a full send interval before sending the first echo request, which meant that the status would be indeterminate until the send interval plus the round trip time (or loss time if packets are lost). With this change, dpinger will send the first echo request without delay. In the absence of dataloss, this results in dpinger being able to determine status in one round trip time.

Enhanced pid file support

Previously, while dpinger would create a pid file, it would not check to see if the pid file already existed and was in use by another process. With this change, dpinger will not start if the pid file is owned by another running process. This prevents accidental overwriting of the pid file, report file, and report socket.

Reject negative numbers in parameters

Previously, dpinger would not detect negative numbers in parameters, usually resulting in very large values. Dpinger now detects, and rejects, negative numbers in parameters. The affected parameters include all time intervals, loss percentage, and data length.

Use accept4()

Previously, dpinger used accept() on the unix socket followed by a separate call to fcntl() to set the close on exec flag. If an alert was triggered in the narrow window between between accept() and fcntl(), the executed command would inherit the file descriptor of the socket connection. The reason dpinger previously used the accept()/fcntl() approach was to support legacy systems that did not yet offer accept4().

Now that these legacy systems have been retired from support, dpinger uses accept4(), which allows the close on exec flag to be set as part of the accept. This prevents the alert process from inheriting the open file descriptor regardless of when the alert is triggered.

The legacy accept()/fcntl() code can be re-enabled by defining DISABLE_ACCEPT4 during the build. If you encounter a currently supported platform where this is necessary, please add a comment to issue #30. If no one comments, the legacy code will be completely removed in a future release.

Optional priority receive scheduling and default parameter changes

04 Mar 04:18
Compare
Choose a tag to compare

Allow optional priority scheduling for the receive thread. Priority scheduling reduces processing delays for inbound echo reply packets, providing tighter timing on low latency connections and reducing the possibility of buffer overflows for inbound packets.

This release changes the default parameters as follows:

  • Time Period from 30 seconds to 60 seconds
  • Send Interval from 250 milliseconds to 500 milliseconds
  • Loss Interval from 5x the Send Interval (1.125 seconds) to 4x the Send Interval (2 seconds)

The revised default values use less network bandwidth and fit better with various monitoring systems.

Parameter checking has been enhanced to ensure that there is at least one "resolved" request/reply probe at all times. It is now required that the Time Period be greater than 2x the Send Interval plus the Loss Interval. This prevents a rare issue with long Send or Loss Intervals in which no probes were available to report on, resulting in both latency and loss being reported as 0.

Defect correction for 32 bit systems

28 Feb 05:31
Compare
Choose a tag to compare

This release fixes an integer overflow affecting the standard deviation calculation on 32 bit systems.

Defect correction for 32 bit systems

28 Feb 03:37
Compare
Choose a tag to compare

This release fixes an integer overflow affecting the standard deviation calculation on 32 bit systems.

Defect correction

26 Feb 04:18
Compare
Choose a tag to compare

This release fixes a race condition seen on ultra low latency (~100us) links.

Add sample RRD scripts

18 Feb 04:30
Compare
Choose a tag to compare

Add sample scripts to create, update, and generate graphs with RRD.

Portability cleanup

02 Feb 15:44
Compare
Choose a tag to compare

Add simple Makefile for Linux.
Address issues with build for FreeBSD ports.

Add an option to specify ICMP data length

31 Jan 05:36
Compare
Choose a tag to compare
v1.5

Add -d option to allow setting data payload length