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.
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 18:19:55 +0000]
Implemented encode and decode methods for just 1 bit.
- In order to hide statements like "Payload[13] | bit ? 0x08 : 0x0" and "Payload[13] & 0x04".
Guilherme Maciel Ferreira [Sun, 19 Feb 2012 18:02:04 +0000]
Added index suffix to the parameters names.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 14:21:18 +0000]
Documentation for TCP header.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 02:46:14 +0000]
Test: bring aboard TcpHeader test case.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 01:12:13 +0000]
Removed unused parameter.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 01:06:25 +0000]
Added functions prototypes to suppress some warnings.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 00:38:01 +0000]
Fix: const-fied the argv parameter in order to suppress the string to char* conversion warning.
- This also protects the string from modification.
Guilherme Maciel Ferreira [Sat, 18 Feb 2012 00:14:39 +0000]
Added stack protection warning and optimization to avoid stack overflows.
Guilherme Maciel Ferreira [Mon, 13 Feb 2012 00:28:47 +0000]
Test: bring aboard LinkStatus test case.
Guilherme Maciel Ferreira [Mon, 6 Feb 2012 23:29:48 +0000]
Fix: fixed previous test case namespace.
Guilherme Maciel Ferreira [Mon, 6 Feb 2012 23:23:54 +0000]
Test: bring aboard PingProtocol test case.
Guilherme Maciel Ferreira [Mon, 6 Feb 2012 02:13:22 +0000]
Test: bring aboard ConfigurationOptions test case.
Guilherme Maciel Ferreira [Mon, 6 Feb 2012 02:04:35 +0000]
Fix: not all letter in the protocol_string_map key were uppercase, which caused
the protocol_uppercase_string to do not index properly.
Guilherme Maciel Ferreira [Thu, 2 Feb 2012 23:14:54 +0000]
Fix: misspelled class name.
- The correct is HostsDownLimitOption instead of HostDownLimitOption.
Guilherme Maciel Ferreira [Thu, 2 Feb 2012 00:33:32 +0000]
Documentation: added --daemon option.
Guilherme Maciel Ferreira [Thu, 2 Feb 2012 00:32:15 +0000]
Test: added --daemon option to ConfigurationCommandLine test case.
Guilherme Maciel Ferreira [Thu, 2 Feb 2012 00:31:01 +0000]
Test: bring aboard ConfigurationFile test case.
Guilherme Maciel Ferreira [Wed, 1 Feb 2012 01:42:14 +0000]
Small documentation fixes.
Guilherme Maciel Ferreira [Wed, 1 Feb 2012 01:15:44 +0000]
Test: bring aboard ConfigurationCommandLine test case.
Guilherme Maciel Ferreira [Sun, 29 Jan 2012 16:45:40 +0000]
Fix: solved stack smashing when creating StatusNotifierCommand.
- The StatusNotifierCommand member is a smart pointer instead of an object.
- Stack smashing is a protection from GCC to avoid segmentation faults from
buffer overruns. Use -fno-stack-protector to disable it.
- This workaround protects some std::string strings from optimizations, which
cause destructors to be called onto invalid std::string objects. Not sure
whether is it a bug from gcc or in the pingcheck.
Guilherme Maciel Ferreira [Sat, 28 Jan 2012 19:07:52 +0000]
Removed parameter to shut the warning up.
Guilherme Maciel Ferreira [Sat, 28 Jan 2012 19:04:28 +0000]
Added function prototypes to shut the warnings up.
Guilherme Maciel Ferreira [Sat, 28 Jan 2012 18:51:49 +0000]
Created an intermediate variable to shut the warning up.
Guilherme Maciel Ferreira [Sat, 28 Jan 2012 18:35:47 +0000]
Small documentation fix.
Guilherme Maciel Ferreira [Sat, 28 Jan 2012 18:34:49 +0000]
Increased warning level.
Guilherme Maciel Ferreira [Thu, 26 Jan 2012 09:43:04 +0000]
Using LinkStatusItem type as an alias to the boost::shared_ptr<LinkStatus>.
Guilherme Maciel Ferreira [Thu, 26 Jan 2012 00:39:46 +0000]
Renamed LinkStatusAnalyzer to LinkStatus.
- This is a stronger noun name;
- See "The Gravitational Pull of Functional Decomposition" at
http://www.eetimes.com/design/embedded/4006522/Using-object-oriented-methods-to-achieve-C--s-promise-Part-3
Guilherme Maciel Ferreira [Wed, 25 Jan 2012 23:11:58 +0000]
Renamed HostStatusAnalyzer to HostStatus.
- This is a stronger noun name;
- See "The Gravitational Pull of Functional Decomposition" at
http://www.eetimes.com/design/embedded/4006522/Using-object-oriented-methods-to-achieve-C--s-promise-Part-3