goal is avoid the annoying requirement to put "port" and "interval" at every
single host.
-- Refactor to provide smaller and more flexible classes, improving code
- readability.
-
-- Merge the Host classes in only one.
-
-- Reuse the checksum from icmp packet in the TCP header.
-
-- Implement a MessagePayload::encode1() to hide such statements
- "Payload[13] | bit ? 0x08 : 0x0" and "Payload[13] & 0x04".
-
-- IPv6 support. Remember to change the addressv4 to address, so both can work at
- the same time.
-
-- Make it configurable if an IP should be reached by IPv4only or IPv6only or
- IPv6first, IPv4first.
-
-- QoS-Flags of the ping packets should be configurable.
-
-- Move the DNS Boost library to its own project repository and keep just a
- reference, like the libi2ncommon.
-
-- In boost-net-dns/network_array.hpp fix the type-punning to enforce better type
- checking. Also allows the optimization -O2 on GCC with strict-aliasing warning.
-
-- Make the log level configurable.
-
- Make the configuration file reloadable (see bpdyndns).
-- Unit Test with boost::test.
+In December 2014 / January 2015 did a lot of changes to ICMP pinger (IPv4) which were
+ not replicated in TCP pinger nor in ICMPv6 pinger. Should check if same changes
+ need to be applied there, too. In particular, the scheduling of reply receive
+ handlers in ICMP caused trouble, often encountered 'ghost' packages which were all
+ 0s because a handler for an old echo request was triggered without new data.
+
+Also, removed threads for each pingchecker, leaving only one thread with one
+ io_service for all pingers. Tested that a lot with ICMP v4 pinger, but no other.
-- Check performance with gprof
+If the system time is changed backwards, the pingchecker freezes, including its signal
+ handler (boost asio's deadline_timer seems to work with time points on a non-monotonic
+ clock). Change that! (apparently, boost asio 1.49 introduces a steady_timer, try that)