OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
uve.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include <base/misc_utils.h>
6 #include <cmn/dns.h>
7 #include <uve/uve.h>
8 #include <string>
9 #include <vector>
10 
11 using namespace std;
13 
15  DnsState state;
16  boost::system::error_code ec;
17  static bool first = true, build_info_set = false;
18  bool changed = false;
19 
20  state.set_name(Dns::GetHostName());
21  if (first) {
22  state.set_start_time(start_time);
23  state.set_collector(Dns::GetCollector());
24 
25  vector<string> ip_list;
26  ip_list.push_back(Dns::GetSelfIp());
27  state.set_self_ip_list(ip_list);
28  first = false;
29  changed = true;
30  }
31 
32  if (!build_info_set) {
33  string build_info_str;
34  build_info_set = Dns::GetVersion(build_info_str);
35  state.set_build_info(build_info_str);
36  }
37  if (changed) {
38  assert(!state.get_name().empty());
39  UveDnsInfo::Send(state);
40  }
41 }
42 
static const std::string & GetHostName()
Definition: dns.h:53
static std::string GetSelfIp()
Definition: dns.h:63
uint64_t start_time
static const std::string & GetCollector()
Definition: dns.h:57
static DnsState prev_state_
Definition: uve.h:11
static void SendDnsUve(uint64_t start_time)
Definition: uve.cc:14
static bool GetVersion(std::string &build_info_str)
Definition: dns.cc:32