Update pingcheck to work with cmake 3.28
[pingcheck] / TODO
diff --git a/TODO b/TODO
index 5cc25de..af647b4 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,42 +1,21 @@
-Wish List
-=======================================
-- TCP ping: Open connection to configurable port (HTTP, SMTP etc.).
+- Validate configuration input errors, adding validation for input values, with
+  more descriptive messages if the user enters wrong values.
 
-- IPv6 support. Remember to change the addressv4 to address, so both can work at
-  the same time.
+- Allows input error handling for values which are not strictly required. The
+  goal is avoid the annoying requirement to put "port" and "interval" at every
+  single host.
 
-- Make it configurable if an IP should be reached by IPv4only or IPv6only or
-  IPv6first, IPv4first.
+- Make the configuration file reloadable (see bpdyndns).
 
-- QoS-Flags of the ping packets should be configurable.
+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.
 
-- Implement a factory method to create the Pingers objects. Something like:
-  smart_ptr<Pinger> pinger_ptr = PingerCreator::create(PingerCreator::Boost)
+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.
 
-- Refactor the BoostPinger class, it is becoming a monster. Maybe split it in
-  two classes, receive and send.
-
-- Unit Test with boost::test.
-
-- Execute a libt2n call if XX hosts are down instead of a script.
-
-- Make the configuration file reloadable (see bodyndns).
-
-TODO
-=======================================
-Guilherme:
-- fix config parser:
-
-- The interval between each ping to the same host is 1 second later than in the
-  configuration file. For example, a ping configured to be performed each 5
-  seconds takes 6.
-
-Tom:
-- Make the log level configurable.
-
-- 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.
-
-Known Bugs
-=======================================
-No bugs :)
+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)