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

📄 classcradiuspacket.html

📁 采用 ACE 开发的 radius 应用
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>ace-radius: CRadiusPacket Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.7-20040704 --><div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div><h1>CRadiusPacket Class Reference</h1>Implementation of RADIUS packet (as defined in RFC2865).  <a href="#_details">More...</a><p><code>#include &lt;<a class="el" href="CRadiusPacket_8h-source.html">CRadiusPacket.h</a>&gt;</code><p><a href="classCRadiusPacket-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a0">CRadiusPacket</a> (unsigned char p_code)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#a0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a1">CRadiusPacket</a> (unsigned char p_code, <a class="el" href="classCRadiusPacket.html">CRadiusPacket</a> *p_request)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#a1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a2" doxytag="CRadiusPacket::CRadiusPacket" ></a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a2">CRadiusPacket</a> (<a class="el" href="classCRadiusPacket.html">CRadiusPacket</a> &amp;p_packet)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="CRadiusPacket::~CRadiusPacket" ></a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a3">~CRadiusPacket</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a4" doxytag="CRadiusPacket::copy" ></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a4">copy</a> (<a class="el" href="classCRadiusPacket.html">CRadiusPacket</a> *p_packet)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create exact copy of some other RADIUS packet. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a5">getCode</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get packet code.  <a href="#a5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="CRadiusPacket::getCodeDescription" ></a>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a6">getCodeDescription</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get packet code description. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>ACE_UINT16&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a7">getLength</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get packet length.  <a href="#a7"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a8">getID</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get packet identifier.  <a href="#a8"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a9">setID</a> (unsigned char p_id)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set packet identifier.  <a href="#a9"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a10">getSecret</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get secret key used for packet encoding.  <a href="#a10"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a11">setSecret</a> (<a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *p_secret)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set secret key used for packet encoding.  <a href="#a11"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a12" doxytag="CRadiusPacket::getAuthenticator" ></a>unsigned char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a12">getAuthenticator</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get packet authenticator. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a13" doxytag="CRadiusPacket::setAuthenticator" ></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a13">setAuthenticator</a> (unsigned char *p_auth)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set packet authenticator. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a14">dump</a> (char *p_buf)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump radius packet in readable text format to the text buffer.  <a href="#a14"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a15">getFirstAttribute</a> (<a class="el" href="classCRadiusAttribute.html">CRadiusAttribute</a> &amp;p_attr)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get first attribute in the packet.  <a href="#a15"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a16">getNextAttribute</a> (<a class="el" href="classCRadiusAttribute.html">CRadiusAttribute</a> &amp;p_attr)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get next attribute in the packet.  <a href="#a16"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a17">findAttribute</a> (unsigned char p_attrType, <a class="el" href="classCRadiusAttribute.html">CRadiusAttribute</a> &amp;p_attr)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find specific attribute in the packet.  <a href="#a17"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a18">addAttribute</a> (unsigned char p_attrType, <a class="el" href="classCRadiusAttribute.html">CRadiusAttribute</a> &amp;p_attr)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add new attribute to the packet.  <a href="#a18"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a19" doxytag="CRadiusPacket::getRawData" ></a>unsigned char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a19">getRawData</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get raw packet data. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a20">adjustLength</a> (ACE_UINT16 p_length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adjust packet's length.  <a href="#a20"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a21">responseAuthenticator</a> (<a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *p_secret=NULL)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate authenticator for response packet.  <a href="#a21"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#a23">accountingRequestAuthenticator</a> (<a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *p_secret=NULL)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate authenticator for accounting request packet.  <a href="#a23"></a><br></td></tr><tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="d0" doxytag="CRadiusPacket::randomAuthenticator" ></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#d0">randomAuthenticator</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate pseudo-random authenticator. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#d1">setCode</a> (unsigned char p_code)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set packet's code.  <a href="#d1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#d2">setLength</a> (ACE_UINT16 p_length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set packet's length.  <a href="#d2"></a><br></td></tr><tr><td colspan=2><br><h2>Private Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="r1" doxytag="CRadiusPacket::m_data" ></a>unsigned char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#r1">m_data</a> [D_RAW_DATA_LENGTH]</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Raw packet data. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="r2" doxytag="CRadiusPacket::m_secret" ></a><a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCRadiusPacket.html#r2">m_secret</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RADIUS secret associated with this packet. <br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Implementation of RADIUS packet (as defined in RFC2865). <p>CRadiusPacket class is responsible for holding data transferred to/from the network and providing simple interface to build new outgoing RADIUS packet and to parse incoming packet.<p>User application may create instances of CRadiusPacket class on it's own or (recommended way) use seizePacket() method of CRadiusStack class. <p><hr><h2>Constructor &amp; Destructor Documentation</h2><a class="anchor" name="a0" doxytag="CRadiusPacket::CRadiusPacket" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> CRadiusPacket::CRadiusPacket           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">unsigned char&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>p_code</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Constructor. <p>This constructor should be used for constructing RADIUS requests. It automatically generates random Authenticator, however application may override this later on by calling <a class="el" href="classCRadiusPacket.html#a13">setAuthenticator()</a> method.<p>Typical application should use seizePacket() method of <a class="el" href="classCRadiusClientStack.html">CRadiusClientStack</a> rather than calling this constructor explicitly. If for any reason you decide to create CRadiusPacket on your own - don't forget to update it's identifier (by default packet will have zero ID).<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_code</em>&nbsp;</td><td>- packet code </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a1" doxytag="CRadiusPacket::CRadiusPacket" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> CRadiusPacket::CRadiusPacket           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">unsigned char&nbsp;</td>          <td class="mdname" nowrap> <em>p_code</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap><a class="el" href="classCRadiusPacket.html">CRadiusPacket</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>p_request</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Constructor. <p>This constructor should be used for constructing RADIUS responses. Original RADIUS request should be passed as parameter to it.<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_code</em>&nbsp;</td><td>- packet code </td></tr>    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_request</em>&nbsp;</td><td>- original RADIUS request packet </td></tr>  </table></dl>    </td>  </tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="a23" doxytag="CRadiusPacket::accountingRequestAuthenticator" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void CRadiusPacket::accountingRequestAuthenticator           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="classCRadiusSecret.html">CRadiusSecret</a> *&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>p_secret</em> = <code>NULL</code>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Generate authenticator for accounting request packet. <p>Packet's attributes should be ready before calling This method should be called once only - prior to sending the packet over the network. Usually <a class="el" href="classCRadiusClientStack.html">CRadiusClientStack</a> does the job, so user application doesn't have to bother.<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_secret</em>&nbsp;</td><td>- secret key (if NULL, stack's secret key is taken) </td></tr>    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_secretLength</em>&nbsp;</td><td>- length of secret key (if provided) </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a18" doxytag="CRadiusPacket::addAttribute" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> int CRadiusPacket::addAttribute           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">unsigned char&nbsp;</td>          <td class="mdname" nowrap> <em>p_attrType</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap><a class="el" href="classCRadiusAttribute.html">CRadiusAttribute</a> &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>p_attr</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>

⌨️ 快捷键说明

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