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

📄 diameter_nasreq_aaans_parser.cxx

📁 Diameter协议栈
💻 CXX
📖 第 1 页 / 共 2 页
字号:
/* 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                                                          *//* $Id: diameter_nasreq_aaans_parser.cxx,v 1.7 2006/03/16 17:01:47 vfajardo Exp $ *//*    diameter_nasreq_aaans_parser.cxx   Diameter AA Answer Parser   Written by Yoshihiro Ohba   Created May 1, 2004.*/#include "diameter_nasreq_parser.hxx"template<> void AA_AnswerParser::parseAppToRaw(){  AA_AnswerData &data = *getAppData();  AAAMessage &aaaMessage = *getRawData();    AAADictionaryManager dm;  AAAAvpContainerManager cm;  AAAAvpContainer *c;                            AAACommandCode code;  AAAApplicationId appId;  // Obtain Command Code and Application Identifier.  if (!dm.getCommandCode("AA-Answer", &code, &appId))    {      AAA_LOG(LM_ERROR, "Cannot find Diameter message in dictionary\n.");      throw (DictionaryError);      return;    }  // Specify the header.  hdr_flag flag = {0,0,0};  // Answer  aaaMessage.hdr = AAADiameterHeader(1, 0, flag, code, appId, 0, 0);  if (data.AuthApplicationId.IsSet())    {      c = cm.acquire("Auth-Application-Id");      data.AuthApplicationId.CopyTo(*c, AAA_AVP_INTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.AuthRequestType.IsSet())    {      c = cm.acquire("Auth-Request-Type");      data.AuthRequestType.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.ResultCode.IsSet())    {       c = cm.acquire("Result-Code");      data.ResultCode.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.UserName.IsSet())    {       c = cm.acquire("User-Name");      data.UserName.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ServiceType.IsSet())    {       c = cm.acquire("Service-Type");      data.ServiceType.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.Class.IsSet())    {      c = cm.acquire("Class");      data.Class.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ConfigurationToken.IsSet())    {       c = cm.acquire("Configuration-Token");      data.ConfigurationToken.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.AcctInterimInterval.IsSet())    {       c = cm.acquire("Acct-Interim-Interval");      data.AcctInterimInterval.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.ErrorMessage.IsSet())    {       c = cm.acquire("Error-Message");      data.ErrorMessage.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ErrorReportingHost.IsSet())    {      c = cm.acquire("Error-Reporting-Host");      data.ErrorReportingHost.CopyTo(*c, AAA_AVP_DIAMID_TYPE);      aaaMessage.acl.add(c);    }  if (data.IdleTimeout.IsSet())    {       c = cm.acquire("Idle-Timeout");      data.IdleTimeout.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.AuthorizationLifetime.IsSet())    {       c = cm.acquire("Authorization-Lifetime");      data.AuthorizationLifetime.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.AuthGracePeriod.IsSet())    {       c = cm.acquire("Auth-Grace-Period");      data.AuthGracePeriod.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.AuthSessionState.IsSet())    {       c = cm.acquire("Auth-Session-State");      data.AuthSessionState.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.ReAuthRequestType.IsSet())    {       c = cm.acquire("Re-Auth-Request-Type");      data.ReAuthRequestType.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.SessionTimeout.IsSet())    {       c = cm.acquire("Session-Timeout");      data.SessionTimeout.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.State.IsSet())    {       c = cm.acquire("State");      data.State.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ReplyMessage.IsSet())    {       c = cm.acquire("Reply-Message");      data.ReplyMessage.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.OriginStateId.IsSet())    {       c = cm.acquire("Origin-State-Id");      data.OriginStateId.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.FilterId.IsSet())    {       c = cm.acquire("Filter-Id");      data.FilterId.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.PortLimit.IsSet())    {       c = cm.acquire("Port-Limit");      data.PortLimit.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.Prompt.IsSet())    {       c = cm.acquire("Prompt");      data.Prompt.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.ArapChallengeResponse.IsSet())    {       c = cm.acquire("ARAP-Challenge-Response");      data.ArapChallengeResponse.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ArapFeatures.IsSet())    {       c = cm.acquire("ARAP-Features");      data.ArapFeatures.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ArapSecurity.IsSet())    {       c = cm.acquire("ARAP-Security");      data.ArapSecurity.CopyTo(*c, AAA_AVP_INTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.ArapSecurityData.IsSet())    {       c = cm.acquire("ARAP-Security-Data");      data.ArapSecurityData.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.ArapZoneAccess.IsSet())    {       c = cm.acquire("ARAP-Zone-Access");      data.ArapZoneAccess.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.CallbackId.IsSet())    {       c = cm.acquire("Callback-Id");      data.CallbackId.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.CallbackNumber.IsSet())    {       c = cm.acquire("Callback-Number");      data.CallbackNumber.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedAppletalkLink.IsSet())    {       c = cm.acquire("Framed-Appletalk-Link");      data.FramedAppletalkLink.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedAppletalkNetwork.IsSet())    {       c = cm.acquire("Framed-Appletalk-Network");      data.FramedAppletalkNetwork.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedAppletalkZone.IsSet())    {       c = cm.acquire("Framed-Appletalk-Zone");      data.FramedAppletalkZone.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedCompression.IsSet())    {       c = cm.acquire("Framed-Compression");      data.FramedCompression.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedInterfaceId.IsSet())    {       c = cm.acquire("Framed-Interface-Id");      data.FramedInterfaceId.CopyTo(*c, AAA_AVP_UINTEGER64_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpAddress.IsSet())    {       c = cm.acquire("Framed-IP-Address");      data.FramedIpAddress.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpv6Prefix.IsSet())    {      c = cm.acquire("Framed-IPv6-Prefix");      data.FramedIpv6Prefix.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpv6Pool.IsSet())    {       c = cm.acquire("Framed-IPv6-Pool");      data.FramedIpv6Pool.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpv6Route.IsSet())    {       c = cm.acquire("Framed-IPv6-Route");      data.FramedIpv6Route.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpNetmask.IsSet())    {       c = cm.acquire("Framed-IP-Netmask");      data.FramedIpNetmask.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedRoute.IsSet())    {       c = cm.acquire("Framed-Route");      data.FramedRoute.CopyTo(*c, AAA_AVP_UTF8_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedPool.IsSet())    {       c = cm.acquire("Framed-Pool");      data.FramedPool.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedIpxNetwork.IsSet())    {       c = cm.acquire("Framed-IPX-Network");      data.FramedIpxNetwork.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedMtu.IsSet())    {       c = cm.acquire("Framed-MTU");      data.FramedMtu.CopyTo(*c, AAA_AVP_UINTEGER32_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedProtocol.IsSet())    {       c = cm.acquire("Framed-Protocol");      data.FramedProtocol.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.FramedRouting.IsSet())    {       c = cm.acquire("Framed-Routing");      data.FramedRouting.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.RedirectHost.IsSet())    {      c = cm.acquire("Redirect-Host");      data.RedirectHost.CopyTo(*c, AAA_AVP_DIAMID_TYPE);      aaaMessage.acl.add(c);    }  if (data.RedirectHostUsage.IsSet())    {       c = cm.acquire("Redirect-Host-Usage");      data.RedirectHostUsage.CopyTo(*c, AAA_AVP_ENUM_TYPE);      aaaMessage.acl.add(c);    }  if (data.LoginIpHost.IsSet())    {       c = cm.acquire("Login-IP-Host");      data.LoginIpHost.CopyTo(*c, AAA_AVP_STRING_TYPE);      aaaMessage.acl.add(c);

⌨️ 快捷键说明

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