📄 pana_config_manager.cxx
字号:
/* BEGIN_COPYRIGHT *//* *//* Open Diameter: Open-source software for the Diameter and *//* Diameter related protocols *//* *//* Copyright (C) 2002-2004 Open Diameter Project *//* *//* This library is free software; you can redistribute it and/or modify *//* it under the terms of the GNU Lesser General Public License as *//* published by the Free Software Foundation; either version 2.1 of the *//* License, or (at your option) any later version. *//* *//* This library is distributed in the hope that it will be useful, *//* but WITHOUT ANY WARRANTY; without even the implied warranty of *//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *//* Lesser General Public License for more details. *//* *//* You should have received a copy of the GNU Lesser General Public *//* License along with this library; if not, write to the Free Software *//* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *//* USA. *//* *//* In addition, when you copy and redistribute some or the entire part of *//* the source code of this software with or without modification, you *//* MUST include this copyright notice in each copy. *//* *//* If you make any changes that are appeared to be useful, please send *//* sources that include the changed part to *//* diameter-developers@lists.sourceforge.net so that we can reflect your *//* changes to one unified version of this software. *//* *//* END_COPYRIGHT */#include "ace/Log_Msg.h"#include "ace/INET_Addr.h"#include "pana_config_manager.h"#include "pana_defs.h"#include "pana_exceptions.h"#include "od_utl_xml_parser.h"class PANA_XMLData : public OD_Utl_XMLElementParser { public: PANA_XMLData(std::string &name, PANA_Cfg &data) : OD_Utl_XMLElementParser(name), payload(data) { } int svc(DOMNode *n); protected: PANA_Cfg &payload;};class PANA_XMLDataGeneral : public OD_Utl_XMLElementParser { public: PANA_XMLDataGeneral(std::string &name, PANA_CfgGeneral &data) : OD_Utl_XMLElementParser(name), payload(data) { } void print(); int svc(DOMNode *n); protected: PANA_CfgGeneral &payload;};class PANA_XMLRetransmissionParam : public OD_Utl_XMLElementParser { public: PANA_XMLRetransmissionParam(std::string &name, PANA_CfgRetransmissionParam &data) : OD_Utl_XMLElementParser(name), payload(data) { } void print(); int svc(DOMNode *n); protected: PANA_CfgRetransmissionParam &payload;};class PANA_XMLProviderInfo : public OD_Utl_XMLElementParser { public: PANA_XMLProviderInfo(std::string &name, PANA_CfgProviderInfo &data) : OD_Utl_XMLElementParser(name), payload(data) { } void print(); int svc(DOMNode *n); std::string &banner() { return banner_; } protected: std::string banner_; PANA_CfgProviderInfo &payload;};class PANA_XMLPPAC : public OD_Utl_XMLElementParser { public: PANA_XMLPPAC(std::string &name, PANA_CfgPPAC &data) : OD_Utl_XMLElementParser(name), payload(data) { } void print(); int svc(DOMNode *n); std::string &banner() { return banner_; } protected: std::string banner_; PANA_CfgPPAC &payload;};class PANA_XMLDeviceId : public OD_Utl_XMLElementParser { public: PANA_XMLDeviceId(std::string &name, PANA_DeviceId &data) : OD_Utl_XMLElementParser(name), payload(data) { } void print(); int svc(DOMNode *n); std::string &banner() { return banner_; } protected: std::string banner_; PANA_DeviceId &payload;};class PANA_XMLDataClient : public OD_Utl_XMLElementParser { public: PANA_XMLDataClient(std::string &name, PANA_CfgClient &data) : OD_Utl_XMLElementParser(name), payload(data) { } int svc(DOMNode *n); void print(); protected: PANA_CfgClient &payload;};class PANA_XMLDataAuthAgent : public OD_Utl_XMLElementParser { public: PANA_XMLDataAuthAgent(std::string &name, PANA_CfgAuthAgent &data) : OD_Utl_XMLElementParser(name), payload(data) { } int svc(DOMNode *n); void print(); protected: PANA_CfgAuthAgent &payload;};void PANA_XMLDataGeneral::print(){ ACE_DEBUG((LM_INFO, " General configuration\n")); ACE_DEBUG((LM_INFO, " Listen Port : %d\n", payload.m_ListenPort)); ACE_DEBUG((LM_INFO, " Interface name : %s\n", payload.m_Interface.data())); ACE_DEBUG((LM_INFO, " IPv6 : %d\n", payload.m_IPv6Enabled)); ACE_DEBUG((LM_INFO, " Protection Cap : %d\n", payload.m_ProtectionCap)); ACE_DEBUG((LM_INFO, " Dictionary : %s\n", payload.m_Dictionary.data())); ACE_DEBUG((LM_INFO, " Mobility : %d\n", payload.m_MobilityEnabled)); ACE_DEBUG((LM_INFO, " Separate NAP/ISP: %d\n", payload.m_SeparateAuth)); ACE_DEBUG((LM_INFO, " Abort on 1st EAP: %d\n", payload.m_AbortOnFirstEapFailure)); ACE_DEBUG((LM_INFO, " EAP Piggyback : %d\n", payload.m_EapPiggyback));}int PANA_XMLDataGeneral::svc(DOMNode *n){ std::string tagName; tagName = "listen_port"; OD_Utl_XMLDataUInt32 listen_port(tagName, payload.m_ListenPort); listen_port.populate(n->getFirstChild()); tagName = "interface_name"; OD_Utl_XMLDataString iface_name(tagName, payload.m_Interface); iface_name.populate(n->getFirstChild()); tagName = "ipv6"; OD_Utl_XMLDataUInt32 ipv6(tagName, payload.m_IPv6Enabled); ipv6.populate(n->getFirstChild()); tagName = "protection_capability"; OD_Utl_XMLDataUInt32 pcap(tagName, payload.m_ProtectionCap); pcap.populate(n->getFirstChild()); tagName = "dictionary_filename"; OD_Utl_XMLDataString dict(tagName, payload.m_Dictionary); dict.populate(n->getFirstChild()); tagName = "mobility"; OD_Utl_XMLDataUInt32 mob(tagName, payload.m_MobilityEnabled); mob.populate(n->getFirstChild()); tagName = "separate"; OD_Utl_XMLDataUInt32 separate(tagName, payload.m_SeparateAuth); separate.populate(n->getFirstChild()); tagName = "abort_on_first_eap_failure"; OD_Utl_XMLDataUInt32 abort(tagName, payload.m_AbortOnFirstEapFailure); abort.populate(n->getFirstChild()); tagName = "eap_piggyback"; OD_Utl_XMLDataUInt32 ep(tagName, payload.m_EapPiggyback); ep.populate(n->getFirstChild()); tagName = "keep_alive_interval"; OD_Utl_XMLDataUInt32 keepAlive(tagName, payload.m_KeepAliveInterval); keepAlive.populate(n->getFirstChild()); tagName = "wpa_bootstrap"; OD_Utl_XMLDataUInt32 wpa(tagName, payload.m_WPASupport); wpa.populate(n->getFirstChild()); print(); tagName = "retransmission_param"; PANA_XMLRetransmissionParam rt(tagName, payload.m_RT); rt.populate(n->getFirstChild()); tagName = "ppac_config"; PANA_XMLPPAC popa(tagName, payload.m_PPAC); popa.populate(n->getFirstChild()); return (0);}void PANA_XMLRetransmissionParam::print(){ ACE_DEBUG((LM_INFO, " Re-Transmission\n")); ACE_DEBUG((LM_INFO, " IRT : %d\n", payload.m_IRT)); ACE_DEBUG((LM_INFO, " MRC : %d\n", payload.m_MRC)); ACE_DEBUG((LM_INFO, " MRT : %d\n", payload.m_MRT)); ACE_DEBUG((LM_INFO, " MRD : %d\n", payload.m_MRD));}int PANA_XMLRetransmissionParam ::svc(DOMNode *n){ std::string tagName; tagName = "initial_rt_timeout"; OD_Utl_XMLDataUInt32 irt(tagName, payload.m_IRT); irt.populate(n->getFirstChild()); tagName = "max_rt_count"; OD_Utl_XMLDataUInt32 mrc(tagName, payload.m_MRC); mrc.populate(n->getFirstChild()); tagName = "max_rt_timeout"; OD_Utl_XMLDataUInt32 mrt(tagName, payload.m_MRT); mrt.populate(n->getFirstChild()); tagName = "max_rt_duration"; OD_Utl_XMLDataUInt32 mrd(tagName, payload.m_MRD); mrd.populate(n->getFirstChild()); print(); return (0);}void PANA_XMLProviderInfo::print(){ ACE_DEBUG((LM_INFO, " Provider Info [%s]:\n", banner_.data())); ACE_DEBUG((LM_INFO, " Name : %s\n", payload.m_Name.data())); ACE_DEBUG((LM_INFO, " ID : %d\n", payload.m_Id));}int PANA_XMLProviderInfo ::svc(DOMNode *n){ std::string tagName; tagName = "id"; OD_Utl_XMLDataUInt32 id(tagName, payload.m_Id); id.populate(n->getFirstChild()); tagName = "name"; OD_Utl_XMLDataString name(tagName, payload.m_Name); name.populate(n->getFirstChild()); print(); return (0);}void PANA_XMLPPAC::print(){ ACE_DEBUG((LM_INFO, " PPAC\n")); ACE_DEBUG((LM_INFO, " No Config : %d\n", payload.Get().u.m_NoConfig)); ACE_DEBUG((LM_INFO, " DHCPv4 : %d\n", payload.Get().u.m_DHCPv4)); ACE_DEBUG((LM_INFO, " DHCPv6 : %d\n",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -