OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
xmpp_init.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include "base/util.h"
6 #include "base/address_util.h"
7 #include "xmpp/xmpp_config.h"
8 #include "xmpp/xmpp_client.h"
9 #include "xmpp/xmpp_init.h"
10 #include "xmpp/xmpp_log.h"
11 #include "xmpp/xmpp_server.h"
12 #include "sandesh/sandesh_trace.h"
13 #include "sandesh/xmpp_trace_sandesh_types.h"
14 
15 using namespace std;
16 
17 const char *XmppInit::kControlNodeJID =
18  "network-control@contrailsystems.com";
19 const char *XmppInit::kAgentNodeJID =
20  "agent@contrailsystems.com";
21 const char *XmppInit::kDnsNodeJID =
22  "network-dns@contrailsystems.com";
23 const char *XmppInit::kPubSubNS =
24  "http://jabber.org/protocol/pubsub";
25 const char *XmppInit::kJIDControlBgp =
26  "network-control@contrailsystems.com/bgp-peer";
27 const char *XmppInit::kJIDControlDns =
28  "network-control@contrailsystems.com/dns-peer";
30  "default-global-system-config:";
31 const char *XmppInit::kConfigPeer = "config";
32 const char *XmppInit::kBgpPeer = "bgp-peer";
33 const char *XmppInit::kEndOfRibMarker = "0/0/EndOfRib";
34 const char *XmppInit::kDnsPeer = "dns-peer";
35 const char *XmppInit::kOtherPeer = "other-peer";
36 
39 
41  : g_server_(NULL), g_client_(NULL), cfg_(new XmppConfigData) {
42 }
43 
45  if (g_client_) {
48  g_client_ = NULL;
49  }
50 
51  if (g_server_) {
54  g_server_ = NULL;
55  }
56 
57  if (cfg_) {
58  delete cfg_;
59  cfg_ = NULL;
60  }
61 }
62 
63 void XmppInit::Reset(bool keep_config) {
64  g_server_ = NULL;
65  g_client_ = NULL;
66  if (!keep_config) {
67  cfg_ = NULL;
68  }
69 }
70 
72  g_client_ = client;
74 }
75 
76 bool XmppInit::InitServer(XmppServer *server, int port, bool logUVE) {
77  g_server_ = server;
78  return g_server_->Initialize(port, logUVE);
79 }
80 
82  const string &peer_ip, int port, const string &from, const string &to,
83  const string &node, bool isClient) {
84  boost::system::error_code ec;
85  boost::asio::ip::address peer_addr =
86  AddressFromString(peer_ip, &ec);
87  if (ec) {
88  return NULL;
89  }
90  XmppChannelConfig *cc = new XmppChannelConfig(isClient);
91  cc->endpoint.address(peer_addr);
92  cc->endpoint.port(port);
93  cc->ToAddr = to;
94  cc->FromAddr = from;
95  cc->NodeAddr = node;
96  return cc;
97 }
98 
100  if (cc) {
102  }
103  return;
104 }
boost::asio::ip::tcp::endpoint endpoint
Definition: xmpp_config.h:24
void InitClient(XmppClient *)
Definition: xmpp_init.cc:71
#define XMPP_MESSAGE_TRACE_BUF
Definition: xmpp_log.h:11
void Reset(bool keep_config=false)
Definition: xmpp_init.cc:63
XmppConfigData * cfg_
Definition: xmpp_init.h:44
virtual bool Initialize(short port)
Definition: xmpp_server.cc:300
bool InitServer(XmppServer *, int port, bool logUVE)
Definition: xmpp_init.cc:76
#define XMPP_TRACE_BUF
Definition: xmpp_log.h:12
std::string ToAddr
Definition: xmpp_config.h:20
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
Definition: sandesh_trace.h:18
static const char * kFqnPrependAgentNodeJID
Definition: xmpp_init.h:28
void Shutdown()
Definition: xmpp_server.cc:339
std::string FromAddr
Definition: xmpp_config.h:21
SandeshTraceBufferPtr XmppMessageTraceBuf
static const char * kEndOfRibMarker
Definition: xmpp_init.h:26
XmppServer * g_server_
Definition: xmpp_init.h:42
void ConfigUpdate(const XmppConfigData *cfg)
Definition: xmpp_client.cc:188
SandeshTraceBufferPtr XmppTraceBuf
static const char * kDnsPeer
Definition: xmpp_init.h:25
static void DeleteServer(TcpServer *server)
Definition: tcp_server.cc:656
static const char * kAgentNodeJID
Definition: xmpp_init.h:18
~XmppInit()
Definition: xmpp_init.cc:44
void AddXmppChannelConfig(XmppChannelConfig *)
Definition: xmpp_init.cc:99
static const char * kPubSubNS
Definition: xmpp_init.h:20
IpAddress AddressFromString(const std::string &ip_address_str, boost::system::error_code *ec)
static const char * kDnsNodeJID
Definition: xmpp_init.h:19
XmppChannelConfig * AllocChannelConfig(const std::string &peer_ip, int port, const std::string &from, const std::string &to, const std::string &node, bool isClient)
Definition: xmpp_init.cc:81
static const char * kJIDControlBgp
Definition: xmpp_init.h:21
XmppInit()
Definition: xmpp_init.cc:40
static const char * kConfigPeer
Definition: xmpp_init.h:23
static const char * kJIDControlDns
Definition: xmpp_init.h:22
void AddXmppChannelConfig(XmppChannelConfig *channel)
Definition: xmpp_config.h:56
void Shutdown()
Definition: xmpp_client.cc:167
XmppClient * g_client_
Definition: xmpp_init.h:43
static const char * kBgpPeer
Definition: xmpp_init.h:24
static const char * kOtherPeer
Definition: xmpp_init.h:27
static const char * kControlNodeJID
Definition: xmpp_init.h:17
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
Definition: sandesh_trace.h:46
std::string NodeAddr
Definition: xmpp_config.h:22