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.
-Furthermore, moved the parsing of incoming ICMP packages into central class
- because every ICMP socket receives incoming data for all request from same
- process, so each pinger had to parse all reply packages of requests from
- other pingers, discarding most of them immediately after parsing. A central
- IcmpPackageDistributor was created, which is constructed or updated in
- static IcmpPinger::create functions. It handles all incoming ICMP traffic.
+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)