TODO changes
[pingcheck] / TODO
1 Wish List
2 =======================================
3
4 - Implement a factory method to create the Pingers objects. Something like:
5   smart_ptr<Pinger> pinger_ptr = PingerCreator::create(PingerCreator::Boost)
6
7 - Design a timer class on top of boost timer, but simpler.
8
9 - Include the i18n_noop in the strings, but this requires linking with the
10   libgettext.
11
12 - Use the I2n::Logger to log messages.
13
14 - Refactor the BoostPinger class, it is becoming a monster. Maybe split it in
15   two classes, receive and send.
16
17 - Unit Test with boost::test.
18
19 - TCP ping: Open connection to configurable port (HTTP, SMTP etc.).
20
21 - IPv6 support.
22
23 - Make it configurable if an IP should be reached by IPv4only or IPv6only or
24   IPv6first, IPv4first.
25
26 - QoS-Flags of the ping packets should be configurable.
27
28 - Execute a libt2n call if XX hosts are down instead of a script.
29
30 - Make the log level configurable.
31
32 - Make the configuration file reloadable (see bodyndns).
33
34
35 Known Bugs
36 =======================================
37
38 - Perform a better treatment of missing configuration items, actually the
39   application just crashes.
40
41 - If one of the "[host]" in the configuration file omit the "interval" entry,
42   the application uses the next "[host]"'s "interval" entry, instead of a 
43   default value. The problem is specific to the configuration read classes
44   that are not smart enough to verify which "[host]" have this entry and which
45   don't.
46   Example:
47      [host]
48      name=A
49      [host]
50      name=B
51      interval=1
52      [host]
53      name=C
54      interval=3
55   Thus, the tuples will be (A,1) , (B,3), (C,?), but A should have a default
56   value, instead of borrow B's value.
57
58 - The interval between each ping to the same host is 1 second later than in the
59   configuration file. For example, a ping configured to be performed each 5
60   seconds takes 6.
61
62 - The overhead when handling a link that is down causes delays with the next
63   pings. This happens if the ping interval is a value close to the ping timeout.
64   So the application wait this amount to ping the next host.
65   This bug has something to do with the blocking ping, because the ping method
66   returns only after a reply or timeout, thus increasing the interval to the
67   next schedule ping to the same host and to the other hosts.
68
69 - The sequence number is always 1. As the BoostPinger is created for just one
70   ping.