⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pana_config_manager.cxx

📁 Diameter协议栈
💻 CXX
📖 第 1 页 / 共 2 页
字号:
        payload.Get().u.m_DHCPv6));    ACE_DEBUG((LM_INFO, "             Auto Conf v6 : %d\n",         payload.Get().u.m_AUTOv6));    ACE_DEBUG((LM_INFO, "             DHCPv4 IPsec : %d\n",         payload.Get().u.m_DHCPv4IPsec));    ACE_DEBUG((LM_INFO, "                    IKEv2 : %d\n",         payload.Get().u.m_IKEv2));}int PANA_XMLPPAC ::svc(DOMNode *n){   ACE_UINT32 flg;   std::string tagName;   tagName = "dhcpv4";   OD_Utl_XMLDataUInt32 dhcpv4(tagName, flg);   dhcpv4.populate(n->getFirstChild());   payload.Get().u.m_DHCPv4 = flg;   tagName = "dhcpv6";   OD_Utl_XMLDataUInt32 dhcpv6(tagName, flg);   dhcpv6.populate(n->getFirstChild());   payload.Get().u.m_DHCPv6 = flg;   tagName = "autoconfv6";   OD_Utl_XMLDataUInt32 autoconfv6(tagName, flg);   autoconfv6.populate(n->getFirstChild());   payload.Get().u.m_AUTOv6 = flg;   tagName = "dhcpv4_ipsec";   OD_Utl_XMLDataUInt32 tunnel(tagName, flg);   tunnel.populate(n->getFirstChild());   payload.Get().u.m_DHCPv4IPsec = flg;   tagName = "ikev2";   OD_Utl_XMLDataUInt32 ikev2(tagName, flg);   ikev2.populate(n->getFirstChild());   payload.Get().u.m_IKEv2 = flg;   payload.Get().u.m_NoConfig = (payload.Get().v > 0) ?                                  false : true;   print();   return (0);}void PANA_XMLDeviceId::print(){   ACE_DEBUG((LM_INFO, "          EP Device Id    : %d, ",              payload.type));}int PANA_XMLDeviceId::svc(DOMNode *n){   std::string tagName;   std::string id;      tagName = "type";   ACE_UINT32 type;   OD_Utl_XMLDataUInt32 ptype(tagName, type);   ptype.populate(n->getFirstChild());   payload.type = type;   tagName = "id";   OD_Utl_XMLDataString pid(tagName, id);   pid.populate(n->getFirstChild());   print();   ACE_DEBUG((LM_INFO, "[%s]\n", id.data()));   char buf[256];   if ((payload.type != AAA_ADDR_FAMILY_IPV4) &&       (payload.type != AAA_ADDR_FAMILY_IPV6)) {       int len = PANA_DeviceIdConverter::AsciiToHex           (id.data(), (unsigned char*)buf);       if (len > 0) {           payload.value.assign(buf, len);       }       else {           return (-1);       }   }   else {       ACE_OS::sprintf(buf, "%s:0", id.data());       ACE_INET_Addr addr(buf);          PANA_DeviceIdConverter::PopulateFromAddr(addr, payload);   }      return (0);}void PANA_XMLDataClient::print(){    ACE_DEBUG((LM_INFO, "     Client configuration\n"));    ACE_DEBUG((LM_INFO, "          PAA IP Adress   : %s\n", payload.m_PaaIpAddress.data()));    ACE_DEBUG((LM_INFO, "          PAA Port Number : %d\n", payload.m_PaaPortNumber));    ACE_DEBUG((LM_INFO, "          PAA Mcast Addr  : %s\n", payload.m_PaaMcastAddress.data()));}int PANA_XMLDataClient::svc(DOMNode *n){   std::string tagName;   tagName = "paa_ip_address";   OD_Utl_XMLDataString paa_ip(tagName, payload.m_PaaIpAddress);   paa_ip.populate(n->getFirstChild());   tagName = "paa_port_number";   OD_Utl_XMLDataUInt32 paa_port(tagName, payload.m_PaaPortNumber);   paa_port.populate(n->getFirstChild());   tagName = "paa_mcast_address";   OD_Utl_XMLDataString paa_mcast(tagName, payload.m_PaaMcastAddress);   paa_mcast.populate(n->getFirstChild());   print();   tagName = "isp_info";   PANA_XMLProviderInfo isp(tagName, payload.m_IspInfo);   isp.banner() = "ISP Info";   isp.populate(n->getFirstChild());   return (0);}void PANA_XMLDataAuthAgent::print(){    ACE_DEBUG((LM_INFO, "     Auth Agent configuration\n"));    ACE_DEBUG((LM_INFO, "          Use Cookie      : %d\n", payload.m_UseCookie));    ACE_DEBUG((LM_INFO, "          Session-Lifetime: %d\n", payload.m_SessionLifetime));    ACE_DEBUG((LM_INFO, "          Grace Period    : %d\n", payload.m_GracePeriod));    ACE_DEBUG((LM_INFO, "          Multicast Addr  : %s\n", payload.m_McastAddress.data()));}int PANA_XMLDataAuthAgent::svc(DOMNode *n){   std::string tagName;   tagName = "use_cookie";   OD_Utl_XMLDataUInt32 ck(tagName, payload.m_UseCookie);   ck.populate(n->getFirstChild());   tagName = "session_lifetime";   OD_Utl_XMLDataUInt32 sessLifetime(tagName, payload.m_SessionLifetime);   sessLifetime.populate(n->getFirstChild());   tagName = "grace_period";   OD_Utl_XMLDataUInt32 gracePeriod(tagName, payload.m_GracePeriod);   gracePeriod.populate(n->getFirstChild());   tagName = "mcast_address";   OD_Utl_XMLDataString mcast(tagName, payload.m_McastAddress);   mcast.populate(n->getFirstChild());   tagName = "carry_device_id";   OD_Utl_XMLDataUInt32 carryId(tagName, payload.m_CarryDeviceId);   carryId.populate(n->getFirstChild());   print();   tagName = "nap_info";   PANA_XMLProviderInfo nap(tagName, payload.m_NapInfo);   nap.banner() = "NAP Info";   nap.populate(n->getFirstChild());   ACE_UINT32 ndx = 0;   char buf[32];   tagName = "isp_info";   DOMNode *sibling = n->getFirstChild();   while (sibling != NULL) {     if (sibling->getNodeType() == DOMNode::ELEMENT_NODE) {         char *c_str = XMLString::transcode(sibling->getNodeName());         if (XMLString::compareString(c_str, tagName.c_str()) == 0) {             PANA_CfgProviderInfo *pInfo;             ACE_NEW_NORETURN(pInfo, PANA_CfgProviderInfo);             PANA_XMLProviderInfo isp(tagName, *pInfo);	     ACE_OS::sprintf(buf, "%s #%d", "ISP Info", ++ ndx);             isp.banner() = buf;             if (isp.populate(sibling) == 0) {	         payload.m_IspInfo.push_back(pInfo);	     }             else {                 delete pInfo;             }         }         XMLString::release(&c_str);      }      sibling = sibling->getNextSibling();   }   tagName = "ep_id";   sibling = n->getFirstChild();   while (sibling != NULL) {     if (sibling->getNodeType() == DOMNode::ELEMENT_NODE) {         char *c_str = XMLString::transcode(sibling->getNodeName());         if (XMLString::compareString(c_str, tagName.c_str()) == 0) {             PANA_DeviceId *devId = new PANA_DeviceId;             PANA_XMLDeviceId pId(tagName, *devId);             if (pId.populate(sibling) == 0) {	             payload.m_EpIdList.push_back(devId);                              }             else {                 delete devId;             }         }         XMLString::release(&c_str);      }      sibling = sibling->getNextSibling();   }   return (0);}int PANA_XMLData::svc(DOMNode *n){   std::string tagName;   tagName = "general";   PANA_XMLDataGeneral general(tagName, payload.m_General);   general.populate(n->getFirstChild());   tagName = "client";   PANA_XMLDataClient client(tagName, payload.m_PaC);   client.populate(n->getFirstChild());   tagName = "auth_agent";   PANA_XMLDataAuthAgent aa(tagName, payload.m_PAA);   aa.populate(n->getFirstChild());   return (0);}PANA_CfgManager::PANA_CfgManager(){}PANA_CfgManager::~PANA_CfgManager(){    // do nothing}void PANA_CfgManager::open(std::string &cfg_file){    std::string cfgRoot = "pana_configuration";    OD_Utl_XMLTreeParser parser;    PANA_XMLData configData(cfgRoot, m_Data);    if (parser.open(cfg_file, configData) != 0) {        throw (PANA_Exception(PANA_Exception::CONFIG_ERROR,                               "Fatal: Unable to parse XML config file"));    }}void PANA_CfgManager::close(){   // free up allocated provider list   PANA_CfgProviderInfo *i;   PANA_CfgProviderList &ispList = m_Data.m_PAA.m_IspInfo;   while (! ispList.empty()) {      i = ispList.front();      if (i) {         delete i;      }      ispList.pop_front();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -