#include <boost/foreach.hpp>
using namespace std;
-using namespace boost;
-using namespace boost::program_options;
+using boost::program_options::command_line_parser;
+using boost::program_options::options_description;
+using boost::program_options::parsed_options;
+using boost::program_options::positional_options_description;
+using boost::program_options::value;
+using boost::program_options::variables_map;
//-----------------------------------------------------------------------------
// ConfigurationReader
#include "dns/hostaddress.h"
using namespace std;
-using namespace boost::asio;
-using namespace boost::asio::ip;
+using boost::asio::io_service;
+using boost::asio::ip::tcp;
//-----------------------------------------------------------------------------
// DnsResolver
#include "icmp/ipv4header.h"
using namespace std;
-using namespace boost::asio;
-using namespace boost::asio::ip;
-using namespace boost::posix_time;
+using boost::asio::const_buffers_1;
+using boost::asio::io_service;
+using boost::asio::ip::address;
+using boost::asio::ip::icmp;
+using boost::posix_time::microsec_clock;
+using boost::posix_time::ptime;
+using boost::posix_time::seconds;
//-----------------------------------------------------------------------------
// BoostPinger
BOOST_ASSERT( !destination_ip.empty() );
uint16_t port = 0;
- address destination_address = ip::address::from_string( destination_ip );
+ address destination_address = address::from_string( destination_ip );
icmp::endpoint destination_endpoint( destination_address, port );
DestinationEndpoint = destination_endpoint;
#include <boost/assert.hpp>
using namespace std;
-using namespace boost;
+using boost::shared_ptr;
//-----------------------------------------------------------------------------
// HostStatusAnalyzer
#include "host/boostpinger.h"
using namespace std;
-using namespace boost;
-using namespace boost::asio;
-using namespace boost::posix_time;
+using boost::asio::io_service;
+using boost::bind;
+using boost::posix_time::microsec_clock;
+using boost::posix_time::ptime;
+using boost::posix_time::seconds;
+using boost::shared_ptr;
//-----------------------------------------------------------------------------
// PingScheduler
//-----------------------------------------------------------------------------
PingScheduler::PingScheduler(
- boost::asio::io_service &io_serv,
- const string &ping_interface,
- const string &ping_address,
+ io_service &io_serv,
+ const string &network_interface,
+ const string &destination_address,
const long ping_interval_in_sec,
const int ping_fail_percentage_limit,
shared_ptr<LinkStatusAnalyzer> link_analyzer
) :
IoService( io_serv ),
- LocalNetworkInterfaceName( ping_interface ),
+ LocalNetworkInterfaceName( network_interface ),
NextPingTimer( io_serv ),
TimeSentLastPing( microsec_clock::universal_time() ),
PingIntervalInSec( ping_interval_in_sec ),
- IpList( ping_address ),
- HostAnalyzer( ping_address, ping_fail_percentage_limit, link_analyzer )
+ IpList( destination_address ),
+ HostAnalyzer( destination_address, ping_fail_percentage_limit, link_analyzer )
{
}
bool PingScheduler::start_pinging()
{
+ // TODO the DNS resolution is called only once. Find a way to resolve when
+ // the TTL ends
+ // TODO does the DNS keeps the same number of IPs?
bool address_resolved = resolve_ping_address();
if ( !address_resolved )
{
public:
PingScheduler(
boost::asio::io_service &io_serv,
- const std::string &ping_interface,
- const std::string &ping_address,
+ const std::string &network_interface,
+ const std::string &destination_address,
const long ping_interval_in_sec,
const int ping_fail_percentage_limit,
boost::shared_ptr<LinkStatusAnalyzer> link_analyzer
#include "icmp/ipv4header.h"
using namespace std;
-using namespace boost::asio::ip;
+using boost::asio::ip::address_v4;
//-----------------------------------------------------------------------------
// Ipv4Header
#include <boost/assert.hpp>
using namespace std;
-using namespace boost::posix_time;
+using boost::posix_time::microsec_clock;
+using boost::posix_time::ptime;
//-----------------------------------------------------------------------------
// LinkStatusAnalyzer
#include "host/pingscheduler.h"
using namespace std;
-using namespace boost;
-using namespace boost::asio;
+using boost::asio::io_service;
+using boost::shared_ptr;
int main( int argc, char* argv[] )
{