Christian Herdtweck [Wed, 21 May 2014 13:20:02 +0000]
updated Readme: added option ratio-random-hosts, mentioned range format in ping-interval, corrected description interface behavior
Christian Herdtweck [Wed, 21 May 2014 13:03:28 +0000]
changed initial log level from Info to Notice to avoid printing of complete config into syslog
Christian Herdtweck [Wed, 21 May 2014 12:27:06 +0000]
changed format for interval specification in pingcheck.conf from "a...b" to "a..b"
Christian Herdtweck [Wed, 21 May 2014 10:06:04 +0000]
changed escaping of shell args in status notifier command: escape each arg separately instead of the whole argument string at once
Christian Herdtweck [Wed, 14 May 2014 08:32:10 +0000]
added two more options to pingchecker: use random interval per host in given range, use random subset of hosts
Christian Herdtweck [Mon, 12 May 2014 10:02:54 +0000]
added doxygen text ofr new variable FirstDelay in PingcheckScheduler constructor
Christian Herdtweck [Mon, 12 May 2014 09:59:12 +0000]
converted a few more BOOST_FOREACH to const reference versions in main
Christian Herdtweck [Mon, 12 May 2014 09:51:31 +0000]
added yEd graph with most important calls
Thomas Jarosch [Mon, 12 May 2014 09:44:11 +0000]
Use const reference BOOST_FOREACH version
Christian Herdtweck [Thu, 8 May 2014 14:32:58 +0000]
introduced delays between starts of pingers, so they are evenly distributed in time right away
Christian Herdtweck [Thu, 8 May 2014 12:51:37 +0000]
if DNS request at start of ping fails, re-schedule further requests; originally failed at once and never tried again
Christian Herdtweck [Fri, 25 Apr 2014 09:22:38 +0000]
add try-catch to dns resolving of name server to get more precise error
Christian Herdtweck [Fri, 25 Apr 2014 07:42:12 +0000]
fixed a bug in status notification (first status was sent always)
Guilherme Maciel Ferreira [Mon, 26 Nov 2012 17:32:42 +0000]
Documentation: explains how to setuid the pingcheck to allow it to be ran by an unprivileged user.
Guilherme Maciel Ferreira [Tue, 3 Jul 2012 01:57:48 +0000]
Test: added testcase for log-output configuration option.
Guilherme Maciel Ferreira [Tue, 3 Jul 2012 01:53:47 +0000]
Feature: allow to choose among two log destinations, console or syslog.
Guilherme Maciel Ferreira [Mon, 2 Jul 2012 00:54:02 +0000]
Fix: standardized the logfunc header inclusion.
Guilherme Maciel Ferreira [Mon, 2 Jul 2012 00:49:20 +0000]
Fix: added src/config/option directory to Doxygen build path.
Guilherme Maciel Ferreira [Sat, 14 Apr 2012 01:50:46 +0000]
Changes introduced in master branch.
Guilherme Maciel Ferreira [Sat, 14 Apr 2012 01:29:21 +0000]
Changed TCP ping method.
- SYN segments pass easily through firewalls and it is replied both when the
port is open as well as when it is closed, serving better to the purpose of
checking if the link reaches a given host. Whereas ACK segments do not get
replied if the other end is closed or has a firewall in the middle.
- A thoroughly discussion regarding SYN x ACK is available at
http://www.networkuptime.com/nmap/page4-4.shtml
http://www.networkuptime.com/nmap/page4-5.shtml
Guilherme Maciel Ferreira [Thu, 29 Mar 2012 03:22:49 +0000]
Replaced the boost::Scoped_array by std::vector as the underlying message payload byte sequence.
- This change simplifies many operations.
Guilherme Maciel Ferreira [Thu, 29 Mar 2012 01:46:43 +0000]
Fix: the boolean logic was inverted.
- When fail() returns false, the read() and write() methods should return true;
- This avoids the annoying "Error: Could not read ICMP packet" and "Error: could not read TCP Segment." messages.
Guilherme Maciel Ferreira [Wed, 28 Mar 2012 02:19:15 +0000]
The application now recognizes the ICMPv4, TCP_IPv4, TCPv4 and TCPv6 ping protocols strings.
Guilherme Maciel Ferreira [Wed, 28 Mar 2012 02:16:35 +0000]
Pass the PingProtocolList by const reference, not by value.
Guilherme Maciel Ferreira [Wed, 28 Mar 2012 02:11:03 +0000]
Changed the network interface rules, the correct behavior is for each host
that has its source-network-interface equal to "default"
(e.g. source-network-interface=default) is supposed to use the global
default-source-network-interface item.
Thomas Jarosch [Fri, 23 Mar 2012 09:35:23 +0000]
Update example config to current config options
Thomas Jarosch [Fri, 23 Mar 2012 09:25:43 +0000]
Fix: src\dns\dnsresolver.cpp 272 Warning 616: control flows into case/default
Thomas Jarosch [Fri, 23 Mar 2012 09:24:32 +0000]
Mask some PC-Lint messages. Simple constification
Guilherme Maciel Ferreira [Thu, 22 Mar 2012 02:27:50 +0000]
Changes introduced in the ip-version-drop branch.
Guilherme Maciel Ferreira [Wed, 21 Mar 2012 00:42:14 +0000]
Merge branch 'ip-version-drop'
Conflicts:
src/config/host.cpp
src/config/host.h
src/host/pingscheduler.h
src/main.cpp
test/test_configurationcommandline.cpp
test/test_configurationoptions.cpp
Guilherme Maciel Ferreira [Sun, 18 Mar 2012 21:27:18 +0000]
Fix: ip::address::is_unspecified() is available only in boost versions above 1.47.0.
Guilherme Maciel Ferreira [Sun, 18 Mar 2012 21:11:37 +0000]
Fix: do not assert when the address has more than one CNAME.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 23:49:08 +0000]
Changes introduced in the nic-per-host branch.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 23:31:41 +0000]
Handling more kinds of errors during file parsing.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 23:08:29 +0000]
Fix: consider the network interface from each host.
- It was keeping the same network interface (from the first host) for all hosts;
- Reduced the variable scope so it is assigned on every loop iteraction.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 00:28:28 +0000]
Removing LocalNetworkInterfaceName attribute, it is no longer used in this class.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 00:22:02 +0000]
Use the "host.source-network-interface" only if the global "default-source-network-interface" is empty.
Guilherme Maciel Ferreira [Wed, 14 Mar 2012 00:03:03 +0000]
Test: updating the test cases with the new network interface options.
Guilherme Maciel Ferreira [Tue, 13 Mar 2012 23:57:21 +0000]
Documentation: updating the Readme with the new network interface options.
Guilherme Maciel Ferreira [Tue, 13 Mar 2012 23:54:49 +0000]
Renamed the global "source-network-interface" to "default-source-network-interface".
Guilherme Maciel Ferreira [Tue, 13 Mar 2012 23:36:55 +0000]
Added the host.source-network-interface configuration option.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 21:22:42 +0000]
Passing the protocol list by const reference.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 21:21:01 +0000]
Added a method specially to initialize the pinger object for the first time.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 21:18:58 +0000]
Fixed misspelled include guard.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 20:26:41 +0000]
Revert "Configuration: added the ping protocol fallback count."
This reverts commit
f1284dcbaa750c1ffb517ed8e2e6a0a051a36057.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 20:26:25 +0000]
Revert "Test: updating test cases to use the ping protocol fallback feature."
This reverts commit
8e693035e02c8f6cb780cf594e41862fcd71ce2b.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 20:26:03 +0000]
Revert "Perform N pings using one protocol, then after those N pings, switch to"
This reverts commit
46531881f06af5666d62a74836b1101cdcb779d9.
Guilherme Maciel Ferreira [Sun, 11 Mar 2012 20:25:46 +0000]
Revert "Documentation: updating Readme and TODO files."
This reverts commit
d3c172383ff9ccaff5dc510fea439284f9f28650.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:45:00 +0000]
Fix: cast to integer because some compilers do not provide automatic conversion.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:27:32 +0000]
Removing the const qualifier to link with Boost.
- Older versions of GCC does not link with different constness.
Guilherme Maciel Ferreira [Sat, 10 Mar 2012 22:03:18 +0000]
Not implemented according to the message:
From: Thomas Jarosch <thomas.jarosch@intra2net.com>
To: guilherme.maciel.ferreira@gmail.com
Subject: Re: TODO list
Date: Wed, 7 Mar 2012 11:26:19 +0100
Guten Morgen Guilherme,
On Wednesday, 7. March 2012 11:14:28 Guilherme Maciel Ferreira wrote:
Dude, this seriously sucks. I have some good news for you:
Just completly skip the QoS stuff, we don't need it right now.
Hope your laptop wasn't in the car...
Cheers,
Thomas
Guilherme Maciel Ferreira [Wed, 7 Mar 2012 10:28:13 +0000]
Documentation: updating Readme and TODO files.
Guilherme Maciel Ferreira [Wed, 7 Mar 2012 10:24:51 +0000]
Perform N pings using one protocol, then after those N pings, switch to
the second protocol, if it available.
Guilherme Maciel Ferreira [Wed, 7 Mar 2012 10:19:15 +0000]
Test: updating test cases to use the ping protocol fallback feature.
Guilherme Maciel Ferreira [Wed, 7 Mar 2012 10:14:19 +0000]
Configuration: added the ping protocol fallback count.
- This item tells how many times it must ping using one protocol before use the other.
Guilherme Maciel Ferreira [Tue, 6 Mar 2012 10:45:38 +0000]
Using boost::asio::ip::address class instead of std::string in the HostAddress.
- That class provides more functionality, so keep it until someone requires a string.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 11:47:28 +0000]
Added the protocols supported in the Readme file.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 11:40:19 +0000]
Undoing commit
e58d750735048b76721ade950d3b9e0c75d201f7.
- Using the io_service reference instead of the shared_ptr, because it caused a
double freed error, because it was a stack object in the PingScheduler
(boost::asio::io_service IoService) and a smart pointer elsewhere,
thus, the smart pointers were releasing the stack memory. And once the
PingScheduler didn't had a counter by itself, the program was dumping
in the PingScheduler destructor.
Once the Boost.Asio library uses the reference itself (e.g.
basic_raw_socket(boost::asio::io_service& io_service, )), I decided to
keep like it was before.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 11:18:46 +0000]
The DNS address resolution is synchronized with the protocol change.
- In this way, when the new protocol requires a different IP version, the DNS
resolver is called again to get the according Address Resource Record.
- Still needs some intelligence.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 00:11:27 +0000]
Repositioning of the ping_done_handler() method according to the order in the header.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 00:09:35 +0000]
Log message reformatting.
Guilherme Maciel Ferreira [Mon, 5 Mar 2012 00:03:45 +0000]
Bring aboard a factory to create DNS resolvers.
Guilherme Maciel Ferreira [Sun, 4 Mar 2012 23:55:34 +0000]
Added AAAA resource records in the DNS query.
- DNS resolve to IPv6 addresses.
Guilherme Maciel Ferreira [Wed, 29 Feb 2012 23:46:07 +0000]
Moved DnsResolver from PingScheduler to PingRotate.
- Simplify the PingScheduler class;
- Makes easier for the PingRotate to match the correct Pinger to the IP version.
Guilherme Maciel Ferreira [Wed, 29 Feb 2012 00:12:01 +0000]
Code improvement:
- Replaced io_service references by shared pointers, because
this ensures that this object is shared.
Guilherme Maciel Ferreira [Tue, 28 Feb 2012 00:02:31 +0000]
Code improvement:
- using STL rotate algorithm;
- moved part of ping_done_handler() method to another method to improve readability.
Guilherme Maciel Ferreira [Sun, 26 Feb 2012 22:36:29 +0000]
Code improvement:
- using STL rotate algorithm;
- and parameterized the fill_answers_list() method.
Guilherme Maciel Ferreira [Sun, 26 Feb 2012 20:58:50 +0000]
Hardening the match methods through asserts.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 17:20:16 +0000]
Using the list of protocols in the scheduler.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 17:15:02 +0000]
Factory method to create the Pinger object that handles a list of protocols.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 16:30:51 +0000]
The configuration supports more than one protocol per host.
- The protocols must be separated by comma, like ping-protocol=ICMP,ICMPv6.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 16:15:26 +0000]
Added a new class to exchange protocols.
- It simply hides the Pingers objects from the scheduler, changing the protocols at
will. This process is transparent to the PingScheduler.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 16:07:06 +0000]
Documentation: documenting the parsing function.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 16:06:21 +0000]
Added PingProtocolList type.
Guilherme Maciel Ferreira [Sat, 25 Feb 2012 16:01:41 +0000]
Replaced boost::shared_ptr<Pinger> by PingerItem.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 09:54:32 +0000]
Small formatting.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:50:02 +0000]
Created a HostAddressList type as an alias to the STL list of HostAddresses.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:45:00 +0000]
Fix: cast to integer because some compilers do not provide automatic conversion.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:37:21 +0000]
Refactor: moved the 'A' resource record filling to a dedicated method.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 02:27:32 +0000]
Removing the const qualifier to link with Boost.
- Older versions of GCC does not link with different constness.
Guilherme Maciel Ferreira [Thu, 23 Feb 2012 01:56:05 +0000]
Created a PingItem type as an alias to the smart pointer.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 18:15:05 +0000]
Changes introduced in the test branch.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 03:24:38 +0000]
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 03:21:40 +0000]
Fix: suppress the warning about dereferencing type-punned pointer that break strict-aliasing rules.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:48:44 +0000]
Not implemented. The classes config/Host and dns/HostAddress serve to
different purposes, it is better to keep them separated.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:35:56 +0000]
Not implemented. The checksum calculations are different in ICMP and TCP.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:34:03 +0000]
Not done and not important, as no bottleneck is noticeable.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:24:17 +0000]
Not implemented according to the message:
From: Thomas Jarosch <thomas.jarosch@intra2net.com>
To: guilherme.maciel.ferreira@gmail.com
Subject: Re: DNS library
Date: Mon, 12 Dec 2011 11:12:55 +0100
Hi Guilherme,
On Friday, 9. December 2011 19:24:49 you wrote:
> What do you think is the best approach to include the DNS library in
> the pingcheck? Once it is just headers, do you think I must make the
> DNS library install its header somewhere and search them in the
> pingcheck build process, or do you know a better approach?
I'd say we keep the current approach with the in-tree files: pingcheck is
currently the only project at Intra2net that relies on boost::net::dns.
So building is easier with less external dependencies.
The situation will change as soon as another project uses it, too.
Cheers,
Thomas
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:23:03 +0000]
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:21:54 +0000]
Implemented in 'config' branch.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:20:55 +0000]
Implemented in 'test' branch.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:19:10 +0000]
Implemented in ipv6 branch.
Guilherme Maciel Ferreira [Tue, 21 Feb 2012 01:15:42 +0000]
Guilherme Maciel Ferreira [Mon, 20 Feb 2012 18:54:26 +0000]
Merge branch 'test'
Conflicts:
src/config/configurationreader.cpp
src/config/configurationreader.h
src/host/messagepayload.cpp
src/link/linkstatus.h
src/main.cpp
src/tcp/tcpheader.cpp
Guilherme Maciel Ferreira [Mon, 20 Feb 2012 18:11:17 +0000]
The log level can be configured in the command line, through --log-level=<level> option.
Guilherme Maciel Ferreira [Mon, 20 Feb 2012 18:03:22 +0000]
Fix: using libi2ncommon LogLevel.
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 22:35:16 +0000]
Bring aboard log level configuration.
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 21:05:23 +0000]
Bring aboard log level parsing function.
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 20:56:14 +0000]
Changed protocol_string_map's storage class from external to internal.
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 18:41:28 +0000]
Using encode1() and decode1() from MessagePayload class.
- This methods also allow to toggle the bit, the previous implementation allowed
only to turn the bits on, but not turn them off.