pingcheck
10 years agochanged how dns deals with cnames and recursion: remember cnames and implement recurs...
Christian Herdtweck [Thu, 16 Apr 2015 16:08:32 +0000]
changed how dns deals with cnames and recursion: remember cnames and implement recursive lookup here using DnsResolvers that are not saved in DnsMaster.

Experiments with own name server and recursive cnames showed that TTLs are not always the minimum.
This way we have better control about resulting TTLs
and debugging is easier since DNS caching is avoided.

Also create unique id for each dns message and check reply
and in main warn if using debug option max_exceptions.

10 years agostarted experimenting with DnsResolver; does send stuff but has not received anything yet
Christian Herdtweck [Fri, 10 Apr 2015 16:34:30 +0000]
started experimenting with DnsResolver; does send stuff but has not received anything yet

10 years agomoved new dns code from temp dir to dns subdir; changed serialization; added destruct...
Christian Herdtweck [Fri, 10 Apr 2015 15:30:21 +0000]
moved new dns code from temp dir to dns subdir; changed serialization; added destructors; added boost libs --> can link now!

10 years agomoved new dns code from temp dir into proper dns dir
Christian Herdtweck [Fri, 10 Apr 2015 12:27:03 +0000]
moved new dns code from temp dir into proper dns dir

10 years agodeleted old DNS resolver and its factory
Christian Herdtweck [Fri, 10 Apr 2015 12:23:45 +0000]
deleted old DNS resolver and its factory

10 years agoadjusted rest of pingchecker to use new dns in very trivial fasion; compiles but...
Christian Herdtweck [Fri, 10 Apr 2015 12:22:03 +0000]
adjusted rest of pingchecker to use new dns in very trivial fasion; compiles but need to re-design async calls in scheduler

10 years agoadded dns cache file option
Christian Herdtweck [Fri, 10 Apr 2015 10:35:50 +0000]
added dns cache file option

10 years agoadded missing functions and config vars used by pingscheduler/pingrotate
Christian Herdtweck [Fri, 10 Apr 2015 10:26:41 +0000]
added missing functions and config vars used by pingscheduler/pingrotate

* functions have_up_to_date_ips and get_resolved_ip_count to resolvers
* limitation to only IPv4/v6 to DnsResolver
* --> DnsMaster remembers resolvers by pair(host name, ip version)
* DnsMaster holds global config vars NameServer, ResolvedIpTtlThreshold and MaxAddressResolutionAttempts
  and provides public getters for them

10 years agoimplemented serialization, is compiling
Christian Herdtweck [Thu, 9 Apr 2015 13:16:59 +0000]
implemented serialization, is compiling

10 years agodone except for saving/loading cache; not being used yet but does compile (except...
Christian Herdtweck [Thu, 9 Apr 2015 12:01:33 +0000]
done except for saving/loading cache; not being used yet but does compile (except for linker error caused by old dns system still in CMakeLists.txt)

10 years agocontinuing with dns rewrite; today realized that cache is better as own class and...
Christian Herdtweck [Wed, 8 Apr 2015 16:54:25 +0000]
continuing with dns rewrite; today realized that cache is better as own class and ResolverBase gets more powerfull

10 years agoadded first half-ready versions of new DNS files in temp directory dns_neww to avoid...
Christian Herdtweck [Wed, 1 Apr 2015 16:33:36 +0000]
added first half-ready versions of new DNS files in temp directory dns_neww to avoid overwriting of old reference code

10 years agorenamed expired_resolved_ip to have_up_to_date_ip because that makes clearer what...
Christian Herdtweck [Wed, 1 Apr 2015 08:31:22 +0000]
renamed expired_resolved_ip to have_up_to_date_ip because that makes clearer what it is used for

10 years agore-designed DNS plan because with first approach all class variables would be maps...
Christian Herdtweck [Wed, 1 Apr 2015 07:58:33 +0000]
re-designed DNS plan because with first approach all class variables would be maps: hostname --> actual_var

10 years agodo actually rotate protocols in PingRotate
Christian Herdtweck [Wed, 1 Apr 2015 08:32:05 +0000]
do actually rotate protocols in PingRotate

10 years agomoved try-catch around icmp packet parsing from IcmpPacketDistributor to IcmpPacketFa...
Christian Herdtweck [Wed, 1 Apr 2015 07:47:50 +0000]
moved try-catch around icmp packet parsing from IcmpPacketDistributor to IcmpPacketFactory so can dump when exception is thrown

10 years agochanged start of pings to time when io_service.run() is called (and not earlier)
Christian Herdtweck [Wed, 25 Mar 2015 13:11:32 +0000]
changed start of pings to time when io_service.run() is called (and not earlier)

10 years agomade PingRotate actually rotate through protocols, and not just stick with last protocol
Christian Herdtweck [Wed, 25 Mar 2015 13:09:24 +0000]
made PingRotate actually rotate through protocols, and not just stick with last protocol

10 years agoupdated revision (version now 0.3.2) and fixed creation of version string
Christian Herdtweck [Fri, 20 Mar 2015 11:07:16 +0000]
updated revision (version now 0.3.2) and fixed creation of version string

10 years agoupdate Readme, TODO and example pingcheck.conf
Christian Herdtweck [Fri, 20 Mar 2015 11:02:01 +0000]
update Readme, TODO and example pingcheck.conf

10 years agofixed trouble in unittests: when I changed/added options I forgot to adjust correspon...
Christian Herdtweck [Fri, 20 Mar 2015 10:12:15 +0000]
fixed trouble in unittests: when I changed/added options I forgot to adjust corresponding unittests

10 years agofixed same bug as for DestinationUnreachable in TimeExceeded messages: accept reply...
Christian Herdtweck [Fri, 20 Mar 2015 08:38:19 +0000]
fixed same bug as for DestinationUnreachable in TimeExceeded messages: accept reply from mid-way

altered unit test accordingly
removed unnecessary implementations of match_xy functions that also just return false

10 years agofixed bug in match_destination_unreachable: message does not have to come from origin...
Christian Herdtweck [Thu, 19 Mar 2015 17:30:00 +0000]
fixed bug in match_destination_unreachable: message does not have to come from original destination

that means we have to interpret the ip header within the icmp data, which is done by converting
IcmpData::raw_data to a stream which is fed to IpvXHeader.read
Also means that address to test for has to be forwarded to IcmpDestinationUnreachableData
and cannot be simply tested in IcmpData already --> change function prototype in all IcmpData classes

10 years agoadded more tests, fixed trouble with position of test data relative to build dir
Christian Herdtweck [Thu, 19 Mar 2015 17:26:17 +0000]
added more tests, fixed trouble with position of test data relative to build dir

10 years agocan now interpret pcaps from tcpdump; created own pcap.h and pcap.cpp because is...
Christian Herdtweck [Thu, 19 Mar 2015 17:25:18 +0000]
can now interpret pcaps from tcpdump; created own pcap.h and pcap.cpp because is needed in 3 places now:

* icmp/icmppacketfactory
* tools/feed_packet_data
* tests/test_icmppacket

pcaps from tcpdump have network_type = 1, so include a interface struct in packet data before actual data.
Our own dumps were network_type=101 and did not include that interface info

10 years agoadded more testing pcap data
Christian Herdtweck [Thu, 19 Mar 2015 17:16:05 +0000]
added more testing pcap data

10 years agocreated data directory in test directory for pcap files for IcmpPacket tests
Christian Herdtweck [Thu, 19 Mar 2015 09:13:11 +0000]
created data directory in test directory for pcap files for IcmpPacket tests

10 years agoadded revision to version string (0.3 --> 0.3.1) to more easily see if testing the...
Christian Herdtweck [Thu, 19 Mar 2015 09:06:36 +0000]
added revision to version string (0.3 --> 0.3.1) to more easily see if testing the correct version (e.g. if patching tarballs)

also added build date to output of pingcheck --version

10 years agoadded more getter to IcmpPacket so can test more
Christian Herdtweck [Wed, 18 Mar 2015 18:06:32 +0000]
added more getter to IcmpPacket so can test more

10 years agoadded new unittest for IcmpPacket
Christian Herdtweck [Wed, 18 Mar 2015 18:05:48 +0000]
added new unittest for IcmpPacket

10 years agofixed bugs that caused DestinationUnreachable / TimeExceeded messages to NEVER match...
Christian Herdtweck [Wed, 18 Mar 2015 15:01:32 +0000]
fixed bugs that caused DestinationUnreachable / TimeExceeded messages to NEVER match anything

also added function to get ttl of original request IP packet but unfortunately that always returns 1 if time exceeded :-(
Also improved error reporting in ICMP packet parsing process

10 years agoadded option to print raw message data in text form for debugging
Christian Herdtweck [Wed, 18 Mar 2015 14:57:22 +0000]
added option to print raw message data in text form for debugging

10 years agoadded code to parse ICMP type TimeExceeded
Christian Herdtweck [Wed, 18 Mar 2015 10:46:13 +0000]
added code to parse ICMP type TimeExceeded

* format is identical to DestinationUnreachable and other ICMP replies
  --> created a common half-abstract base class IcmpData_PingFailReply
* added a match_time_exceeded to IcmpPacket which is called by IcmpPinger

10 years agoin case of unknown ICMP reply type, consume data instead of returning failure in...
Christian Herdtweck [Wed, 18 Mar 2015 10:45:07 +0000]
in case of unknown ICMP reply type, consume data instead of returning failure in IcmpPacket::read

10 years agoadded ip source and destination address to IpHeader::to_string
Christian Herdtweck [Wed, 18 Mar 2015 10:38:22 +0000]
added ip source and destination address to IpHeader::to_string

10 years agoincreased version to 0.3 since have now new ICMP packet structure and
Christian Herdtweck [Fri, 13 Mar 2015 14:18:52 +0000]
increased version to 0.3 since have now new ICMP packet structure and
packet feeder tool and will create new tar from this

10 years agoadded a simple text output (to_string) for DestinationUnreachable ICMP data
Christian Herdtweck [Fri, 13 Mar 2015 14:15:17 +0000]
added a simple text output (to_string) for DestinationUnreachable ICMP data

10 years agoadded a count of good/bad packets to feed_packet_data tool
Christian Herdtweck [Fri, 13 Mar 2015 14:13:03 +0000]
added a count of good/bad packets to feed_packet_data tool

10 years agoadded rule to create feed_packet tool to CMakeLists.txt
Christian Herdtweck [Fri, 13 Mar 2015 13:32:15 +0000]
added rule to create feed_packet tool to CMakeLists.txt

10 years agocheck if file is really open after opening; changed return codes and log levels
Christian Herdtweck [Thu, 5 Mar 2015 10:15:38 +0000]
check if file is really open after opening; changed return codes and log levels

10 years agogot the tool feed_packet_data to compile and run and do reasonable stuff
Christian Herdtweck [Wed, 4 Mar 2015 16:29:07 +0000]
got the tool feed_packet_data to compile and run and do reasonable stuff

10 years agoadded a dump_option to IcmpPacketFactory creation function; better error message...
Christian Herdtweck [Wed, 4 Mar 2015 16:28:20 +0000]
added a dump_option to IcmpPacketFactory creation function; better error message if temp file creation fails

10 years agostarted creating a utility program in new folder tools that feeds packet data directl...
Christian Herdtweck [Fri, 27 Feb 2015 17:06:37 +0000]
started creating a utility program in new folder tools that feeds packet data directly into ICMP/TCP factories

10 years agomoved remaining implementations in ipv6header.h to cpp; avoid conversion warnings
Christian Herdtweck [Fri, 13 Mar 2015 10:49:26 +0000]
moved remaining implementations in ipv6header.h to cpp; avoid conversion warnings

10 years agogive credit to Christopher Kohlhoff (boost asio) and Guilherme Ferreira
Christian Herdtweck [Fri, 13 Mar 2015 09:09:36 +0000]
give credit to Christopher Kohlhoff (boost asio) and Guilherme Ferreira

10 years agoconsequently moved all implementation from h to cpp files
Christian Herdtweck [Fri, 13 Mar 2015 09:02:19 +0000]
consequently moved all implementation from h to cpp files

10 years agofixed bug in reading of checksum (which was found using the unittests -- great thing!)
Christian Herdtweck [Thu, 12 Mar 2015 17:02:30 +0000]
fixed bug in reading of checksum (which was found using the unittests -- great thing!)

10 years agoupdated icmp unittests
Christian Herdtweck [Thu, 12 Mar 2015 16:44:45 +0000]
updated icmp unittests

10 years agomoved some implementations from h to cpp files because of linker trouble
Christian Herdtweck [Thu, 12 Mar 2015 16:44:08 +0000]
moved some implementations from h to cpp files because of linker trouble

10 years agonow working again: creating echo requests and parsing replies
Christian Herdtweck [Thu, 12 Mar 2015 14:51:58 +0000]
now working again: creating echo requests and parsing replies

also:
* created a to_string method for easier output
* in constructors of IP headers set version right away
* compare that version to the one received in IcmpPacket::read

10 years agore-ordered class for IcmpPacket
Christian Herdtweck [Thu, 12 Mar 2015 10:04:43 +0000]
re-ordered class for IcmpPacket

old: IcmpPacket has and IpvXHeader, an IcmpvXHeader which varies according to ICMP message type and also contains part of Icmp message data, and an IcmpData which is a string;
new: IcmpPacket has an IpHeader, an IcmpHeader which represents only the common first 4 byte of ICMP v4/v6, and IcmpData which is either a IcmpEchoData for echo request/reply or a IcmpDestinationUnreachableData

tried to abstract away as much as possible (for a lay programmer like me) the difference between v4 and v6

This code now compiles, need to see whether it does anything usefull

Tests not compiled/run yet

10 years agoadded encode_string to MessagePayload; removed checksum and icmpchecksum since functi...
Christian Herdtweck [Thu, 12 Mar 2015 09:55:24 +0000]
added encode_string to MessagePayload; removed checksum and icmpchecksum since functionality moved into MessagePayload, IcmpHeader and IcmpData

10 years agocreated abstract base class IpHeader of Ipv4Header and Ipv6Header
Christian Herdtweck [Thu, 12 Mar 2015 09:53:22 +0000]
created abstract base class IpHeader of Ipv4Header and Ipv6Header

10 years agoadded debug option enforcing dump of ICMP packets even if not broken
Christian Herdtweck [Thu, 26 Feb 2015 15:48:08 +0000]
added debug option enforcing dump of ICMP packets even if not broken

10 years agofixed bug: dumping packets leaked char array (dump file name) on heap
Christian Herdtweck [Wed, 25 Feb 2015 15:00:21 +0000]
fixed bug: dumping packets leaked char array (dump file name) on heap

10 years agodumping now into a .pcap file with nicer filename, so can analyze with wireshark
Christian Herdtweck [Wed, 25 Feb 2015 14:34:16 +0000]
dumping now into a .pcap file with nicer filename, so can analyze with wireshark

10 years agodumping package data works
Christian Herdtweck [Wed, 25 Feb 2015 12:54:08 +0000]
dumping package data works

10 years agostarted copying icmp data before parsing it and dumping it into temp files if parsing...
Christian Herdtweck [Fri, 20 Feb 2015 17:36:50 +0000]
started copying icmp data before parsing it and dumping it into temp files if parsing fails

does compile but causes problems in data parsing

10 years agomake check for end of loop in icmppacketdistributor more understandable (|= --> =)
Christian Herdtweck [Thu, 19 Feb 2015 08:32:44 +0000]
make check for end of loop in icmppacketdistributor more understandable (|= --> =)

10 years agoCheck weak_ptr before using it
Thomas Jarosch [Wed, 11 Feb 2015 16:55:28 +0000]
Check weak_ptr before using it

10 years agoNo need for intermediate weak_ptr
Thomas Jarosch [Wed, 11 Feb 2015 16:48:16 +0000]
No need for intermediate weak_ptr

10 years agoUse const reference for smart_ptr in BOOST_FOREACH
Thomas Jarosch [Wed, 11 Feb 2015 16:47:08 +0000]
Use const reference for smart_ptr in BOOST_FOREACH

10 years agoMove graph documentation to doc/
Thomas Jarosch [Wed, 11 Feb 2015 16:23:45 +0000]
Move graph documentation to doc/

10 years agofix bug that caused crash for broken packets; change order of vars to avoid compiler...
Christian Herdtweck [Wed, 11 Feb 2015 15:59:22 +0000]
fix bug that caused crash for broken packets; change order of vars to avoid compiler warnings; minor change in debug output

10 years agoupdated TODO
Christian Herdtweck [Wed, 11 Feb 2015 14:13:08 +0000]
updated TODO

10 years agoremoved another debugging test and corrected one debuggin output
Christian Herdtweck [Wed, 11 Feb 2015 13:58:37 +0000]
removed another debugging test and corrected one debuggin output

10 years agocreated a graph to show how IcmpPinger, IcmpPacketDistributor and other important...
Christian Herdtweck [Thu, 5 Feb 2015 16:28:21 +0000]
created a graph to show how IcmpPinger, IcmpPacketDistributor and other important classes interact

created using yEd 3.12.2

10 years agogive up trying to define IcmpPacketDistributor in own files, just use icmppinger...
Christian Herdtweck [Thu, 5 Feb 2015 16:17:54 +0000]
give up trying to define IcmpPacketDistributor in own files, just use icmppinger.h / .cpp for it

The two classes depend on each other, so none compiles without the other
  if they are defined in separate files. In the same file, the compiler
  manages.

10 years agogot packetdistributor to work, but compiles/links only with packetdistributor inside...
Christian Herdtweck [Thu, 5 Feb 2015 15:22:14 +0000]
got packetdistributor to work, but compiles/links only with packetdistributor inside icmppinger.h/cpp

10 years agolimit line length of new files to 80 characters
Christian Herdtweck [Wed, 4 Feb 2015 11:02:11 +0000]
limit line length of new files to 80 characters

10 years agouse new file name (icmppaKetdistributor --> icmppacCKetdistributor) in includes and...
Christian Herdtweck [Wed, 4 Feb 2015 11:01:43 +0000]
use new file name (icmppaKetdistributor --> icmppacCKetdistributor) in includes and macros

10 years agoalso rename file in CMakeLists.txt
Christian Herdtweck [Mon, 26 Jan 2015 16:37:38 +0000]
also rename file in CMakeLists.txt

10 years agorename IcmpPaketDistributor files to IcmpPacketDistributor (k --> ck)
Christian Herdtweck [Mon, 26 Jan 2015 16:34:11 +0000]
rename IcmpPaketDistributor files to IcmpPacketDistributor (k --> ck)

10 years agostart removing socket use from IcmpPinger to only have IcmpPacketDistributor deal...
Christian Herdtweck [Mon, 26 Jan 2015 16:32:01 +0000]
start removing socket use from IcmpPinger to only have IcmpPacketDistributor deal with raw data

10 years agoclean up IcmpPaketDistributors after stopping pingers
Christian Herdtweck [Mon, 26 Jan 2015 14:20:26 +0000]
clean up IcmpPaketDistributors after stopping pingers

10 years agoPinger holds weak_ptr to self, Pingers created through static create functions; IcmpP...
Christian Herdtweck [Mon, 26 Jan 2015 14:17:32 +0000]
Pinger holds weak_ptr to self, Pingers created through static create functions; IcmpPinger::create registers with IcmpPaketDistributor

10 years agostarted to implement an icmp paket distributor; compiles and works at first, but...
Christian Herdtweck [Fri, 23 Jan 2015 17:07:37 +0000]
started to implement an icmp paket distributor; compiles and works at first, but gives segmentation fault at exit

10 years agoadded a test for pingcheck version to avoid trouble with IP parsing in 'older' pingch...
Christian Herdtweck [Thu, 22 Jan 2015 17:17:13 +0000]
added a test for pingcheck version to avoid trouble with IP parsing in 'older' pingcheckers

10 years agoanother amendment to signal handler: make signaled_flags_XY volatile sig_atomic_t...
Christian Herdtweck [Thu, 22 Jan 2015 16:43:36 +0000]
another amendment to signal handler: make signaled_flags_XY volatile sig_atomic_t (I was ignorant)

10 years agoadded saving of history and results and function to load and print stats about them
Christian Herdtweck [Thu, 22 Jan 2015 16:21:24 +0000]
added saving of history and results and function to load and print stats about them

10 years agoadded a little failsave test into tester; simplified logging of exceptions; recognize...
Christian Herdtweck [Thu, 22 Jan 2015 16:20:39 +0000]
added a little failsave test into tester; simplified logging of exceptions; recognize unexpected online states and warn; removed pre-logging Tester._print

10 years agohad forgotten to reset default pingcheck binary from testing to production
Christian Herdtweck [Thu, 22 Jan 2015 16:15:00 +0000]
had forgotten to reset default pingcheck binary from testing to production

10 years agoamendment to last commit: only makes sense if use different flags per signal type
Christian Herdtweck [Thu, 22 Jan 2015 14:27:57 +0000]
amendment to last commit: only makes sense if use different flags per signal type

10 years agoremoved logging from signal handler; create one handler per signal type
Christian Herdtweck [Thu, 22 Jan 2015 14:09:46 +0000]
removed logging from signal handler; create one handler per signal type

10 years agochanged return type of get_configuration in main: return configuration and bool flag
Christian Herdtweck [Thu, 22 Jan 2015 14:03:19 +0000]
changed return type of get_configuration in main: return configuration and bool flag

this way, always get a valid configuration object with default values and some values set
  even if parsing other options failed. Important for --version where usually fail to read
  config file but do not need it anyway

10 years agochanged treatment of --version arg; remember to print it in Configuration like -...
Christian Herdtweck [Thu, 22 Jan 2015 14:00:12 +0000]
changed treatment of --version arg; remember to print it in Configuration like --daemon option

10 years agocorrected type of TTL: is now uint32_t everywhere (except for uint8_t in Payload...
Christian Herdtweck [Thu, 22 Jan 2015 13:58:43 +0000]
corrected type of TTL: is now uint32_t everywhere (except for uint8_t in Payload data)

10 years agoremoved Readme.code because was neither up to date nor informative; updated TODO
Christian Herdtweck [Thu, 22 Jan 2015 09:12:47 +0000]
removed Readme.code because was neither up to date nor informative; updated TODO

10 years agoraised version number from 0.1 to 0.2
Christian Herdtweck [Thu, 22 Jan 2015 08:33:26 +0000]
raised version number from 0.1 to 0.2

10 years agoremember pings based on host, not IP; correct logging logic in main loop
Christian Herdtweck [Wed, 21 Jan 2015 17:04:06 +0000]
remember pings based on host, not IP; correct logging logic in main loop

for host-ip binding, needed to slightly change output from dnsresolver

10 years agotreat output as "left-over" only after terminatin process; limit number of lines
Christian Herdtweck [Wed, 21 Jan 2015 12:52:36 +0000]
treat output as "left-over" only after terminatin process; limit number of lines

10 years agoremoved assert that does not make sense and is often violated
Christian Herdtweck [Wed, 21 Jan 2015 12:51:16 +0000]
removed assert that does not make sense and is often violated

(IPs are not updated very often, so can easily happen that an IP's TTL was reached.
 It is easier to ignore these cases than to avoid them, IPs will with next test be updated.)

10 years agohad forgotten to disable testing setting in pingcheck main: limited the max number...
Christian Herdtweck [Wed, 21 Jan 2015 10:56:05 +0000]
had forgotten to disable testing setting in pingcheck main: limited the max number of exceptions ignore

10 years agodone with long_term_test.py
Christian Herdtweck [Wed, 21 Jan 2015 10:43:35 +0000]
done with long_term_test.py

* set timeout for ping reply -- very important variable!
* try to get more output when pingcheck process is stopped/dying
* added and commented out sigchld / child signal handler
* different logic how state changes are set
* use ConndState
* lots of other changes...

10 years agoimproved tell-connd state representation
Christian Herdtweck [Wed, 21 Jan 2015 10:37:48 +0000]
improved tell-connd state representation

* use constants for online states and subsystems
* add function to output complete state
* deal with exceptions from running binary

10 years agoRaised importance of log output in signal handler: info for most, notice for term...
Christian Herdtweck [Wed, 21 Jan 2015 10:33:29 +0000]
Raised importance of log output in signal handler: info for most, notice for term/kill

10 years agouse logging for all output, improve understanding of connd, improved process terminat...
Christian Herdtweck [Fri, 16 Jan 2015 17:01:13 +0000]
use logging for all output, improve understanding of connd, improved process termination, simplify code

10 years agosome minor doc change I had overlooked
Christian Herdtweck [Fri, 16 Jan 2015 08:58:09 +0000]
some minor doc change I had overlooked

10 years agoadded a test python script that goes online/offline and checks if pingers pinged...
Christian Herdtweck [Thu, 15 Jan 2015 17:37:20 +0000]
added a test python script that goes online/offline and checks if pingers pinged enough

10 years agorenamed IcmpPinger::handle_ping_done to handle_timeout; handle error_codes from timer...
Christian Herdtweck [Mon, 12 Jan 2015 15:54:44 +0000]
renamed IcmpPinger::handle_ping_done to handle_timeout; handle error_codes from timer async_wait