Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 432d6de79488114d1bc6fd9de4770857 > files > 38

libipa_hbac-devel-1.9.6-1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>ipa_hbac: src/providers/ipa/ipa_hbac.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ipa_hbac
   &#160;<span id="projectnumber">1.9.6</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_306d1f7c2316132a5a1b654ae206deb5.html">providers</a></li><li class="navelem"><a class="el" href="dir_428d51024abba00bc838cf4c5625f90f.html">ipa</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">ipa_hbac.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">    SSSD</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">    IPA Backend Module -- Access control</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">    Authors:</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">        Sumit Bose &lt;sbose@redhat.com&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">        Stephen Gallagher &lt;sgallagh@redhat.com&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">    Copyright (C) 2009 Red Hat</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">    This program is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">    it under the terms of the GNU General Public License as published by</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">    the Free Software Foundation; either version 3 of the License, or</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">    (at your option) any later version.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">    This program is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">    GNU General Public License for more details.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">    You should have received a copy of the GNU General Public License</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifndef IPA_HBAC_H_</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define IPA_HBAC_H_</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gad62bd2c7fb837272a3cf80d176410cd6">   45</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gad62bd2c7fb837272a3cf80d176410cd6" title="Result of HBAC evaluation.">hbac_eval_result</a> {</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6ae037f769a8a5b21d518733cdef7bb1c1">   49</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6ae037f769a8a5b21d518733cdef7bb1c1" title="An error occurred See the hbac_info for more details.">HBAC_EVAL_ERROR</a> = -1,</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6a7990610222cac06bb359bbef96ec5710">   52</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6a7990610222cac06bb359bbef96ec5710" title="Evaluation grants access.">HBAC_EVAL_ALLOW</a>,</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6ad2fde36248cdaa69d07c69ced9ecfd59">   55</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6ad2fde36248cdaa69d07c69ced9ecfd59" title="Evaluation denies access.">HBAC_EVAL_DENY</a>,</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6a771aaa647d402b3796c8bd9e9bc6e915">   60</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggad62bd2c7fb837272a3cf80d176410cd6a771aaa647d402b3796c8bd9e9bc6e915" title="Evaluation failed due to lack of memory hbac_info is not available.">HBAC_EVAL_OOM</a></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;};</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gaedbbc12bed44918a30d673720df85d03">   66</a></span>&#160;<span class="preprocessor">#define HBAC_CATEGORY_NULL 0x0000</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gaff3d14567e8ca0ed671fc88287e7aaec">   71</a></span>&#160;<span class="preprocessor">#define HBAC_CATEGORY_ALL  0x0001</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keyword">struct </span>hbac_time_rules;</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="structhbac__rule__element.html">   84</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structhbac__rule__element.html" title="Component of an HBAC rule.">hbac_rule_element</a> {</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="structhbac__rule__element.html#ad9ba6ea8f602a0e7badadce928e06ebf">   92</a></span>&#160;    uint32_t <a class="code" href="structhbac__rule__element.html#ad9ba6ea8f602a0e7badadce928e06ebf" title="Category for this element.">category</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="structhbac__rule__element.html#ae0ffd3e232106bb64208c856e84e5a42">  101</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structhbac__rule__element.html#ae0ffd3e232106bb64208c856e84e5a42" title="List of explicit members of this rule component.">names</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="structhbac__rule__element.html#a0e47669abe1e2842ed89803713af5226">  110</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structhbac__rule__element.html#a0e47669abe1e2842ed89803713af5226" title="List of group members of this rule component.">groups</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;};</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="structhbac__rule.html">  116</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structhbac__rule.html" title="HBAC rule object for evaluation.">hbac_rule</a> {</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">bool</span> enabled;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="structhbac__rule.html#af3d4d79bfd235229e6b513238d50cb9c">  124</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__rule__element.html" title="Component of an HBAC rule.">hbac_rule_element</a> *<a class="code" href="structhbac__rule.html#af3d4d79bfd235229e6b513238d50cb9c" title="Services and service groups for which this rule applies.">services</a>;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="structhbac__rule.html#a6bcd5724143f0d00aae9a4cb6b60f4bb">  130</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__rule__element.html" title="Component of an HBAC rule.">hbac_rule_element</a> *<a class="code" href="structhbac__rule.html#a6bcd5724143f0d00aae9a4cb6b60f4bb" title="Users and groups for which this rule applies.">users</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="structhbac__rule.html#a997bb037f23d89b2d013bf581dcf52c9">  135</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__rule__element.html" title="Component of an HBAC rule.">hbac_rule_element</a> *<a class="code" href="structhbac__rule.html#a997bb037f23d89b2d013bf581dcf52c9" title="Target hosts for which this rule apples.">targethosts</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="structhbac__rule.html#ae968bf166e4c7472622c13c2db69153f">  140</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__rule__element.html" title="Component of an HBAC rule.">hbac_rule_element</a> *<a class="code" href="structhbac__rule.html#ae968bf166e4c7472622c13c2db69153f" title="Source hosts for which this rule applies.">srchosts</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="structhbac__rule.html#a6800fac66b5798f05d07f7948f8b7285">  145</a></span>&#160;    <span class="keyword">struct </span>hbac_time_rules *<a class="code" href="structhbac__rule.html#a6800fac66b5798f05d07f7948f8b7285" title="For future use.">timerules</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;};</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="structhbac__request__element.html">  151</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structhbac__request__element.html" title="Component of an HBAC request.">hbac_request_element</a> {</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="structhbac__request__element.html#aaea574d0c5f891bd2554b5544e8b7c71">  159</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structhbac__request__element.html#aaea574d0c5f891bd2554b5544e8b7c71" title="List of explicit members of this request component.">name</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="structhbac__request__element.html#ab7fc907e8faf86a8fe25941f8d06d374">  168</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structhbac__request__element.html#ab7fc907e8faf86a8fe25941f8d06d374" title="List of group members of this request component.">groups</a>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;};</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html">  176</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structhbac__eval__req.html" title="Request object for an HBAC rule evaluation.">hbac_eval_req</a> {</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html#adb30e5c3df4f1e9043cecfc7b5c52f92">  182</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__request__element.html" title="Component of an HBAC request.">hbac_request_element</a> *<a class="code" href="structhbac__eval__req.html#adb30e5c3df4f1e9043cecfc7b5c52f92" title="This is a list of service DNs to check, it must consist of the actual service requested, as well as all parent groups containing that service.">service</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html#a8ac951bf5ed2350e06a28e1f7e202f67">  189</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__request__element.html" title="Component of an HBAC request.">hbac_request_element</a> *<a class="code" href="structhbac__eval__req.html#a8ac951bf5ed2350e06a28e1f7e202f67" title="This is a list of user DNs to check, it must consist of the actual user requested, as well as all parent groups containing that user.">user</a>;</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html#a6adb65c0e93a21b97d8866a1c2a23ef2">  196</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__request__element.html" title="Component of an HBAC request.">hbac_request_element</a> *<a class="code" href="structhbac__eval__req.html#a6adb65c0e93a21b97d8866a1c2a23ef2" title="This is a list of target hosts to check, it must consist of the actual target host requested...">targethost</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html#a3b8e4d11f312f25ea9d92541c09dab5d">  203</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structhbac__request__element.html" title="Component of an HBAC request.">hbac_request_element</a> *<a class="code" href="structhbac__eval__req.html#a3b8e4d11f312f25ea9d92541c09dab5d" title="This is a list of source hosts to check, it must consist of the actual source host requested...">srchost</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="structhbac__eval__req.html#aa88d90ac396def6e551819ec7b432a56">  206</a></span>&#160;    time_t <a class="code" href="structhbac__eval__req.html#aa88d90ac396def6e551819ec7b432a56" title="For future use.">request_time</a>;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;};</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gac4bf6648ee5fb44693543581ad8956fd">  212</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gac4bf6648ee5fb44693543581ad8956fd" title="Error code returned by the evaluator.">hbac_error_code</a> {</div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fdab458a5182a5fa817b9170f733e6e2a68">  214</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fdab458a5182a5fa817b9170f733e6e2a68" title="Unexpected error.">HBAC_ERROR_UNKNOWN</a> = -1,</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fdad2a456bafa5157c4948c4731f98bd934">  217</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fdad2a456bafa5157c4948c4731f98bd934" title="Succesful evaluation.">HBAC_SUCCESS</a>,</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda714c7f58d25e404aa489f7f552a328aa">  220</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda714c7f58d25e404aa489f7f552a328aa" title="Function is not yet implemented.">HBAC_ERROR_NOT_IMPLEMENTED</a>,</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda7ab6bd70d35aca7230973453f3996f94">  223</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda7ab6bd70d35aca7230973453f3996f94" title="Ran out of memory during processing.">HBAC_ERROR_OUT_OF_MEMORY</a>,</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda63c32fd2a31addc7bdbbb9f931769b6d">  226</a></span>&#160;    <a class="code" href="group__ipa__hbac.html#ggac4bf6648ee5fb44693543581ad8956fda63c32fd2a31addc7bdbbb9f931769b6d" title="Parse error while evaluating rule.">HBAC_ERROR_UNPARSEABLE_RULE</a></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;};</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="code" href="structhbac__info.html">  230</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structhbac__info.html" title="Extended information.">hbac_info</a> {</div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="structhbac__info.html#a20e27a3ec90e6090284f03239e2a3dcb">  236</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gac4bf6648ee5fb44693543581ad8956fd" title="Error code returned by the evaluator.">hbac_error_code</a> <a class="code" href="structhbac__info.html#a20e27a3ec90e6090284f03239e2a3dcb" title="If the hbac_eval_result was HBAC_EVAL_ERROR, this will be an error code.">code</a>;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="code" href="structhbac__info.html#a0b9580d663ea783d08555e849cdd843d">  242</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structhbac__info.html#a0b9580d663ea783d08555e849cdd843d" title="Specify the name of the rule that matched or threw an error.">rule_name</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;};</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gad62bd2c7fb837272a3cf80d176410cd6" title="Result of HBAC evaluation.">hbac_eval_result</a> <a class="code" href="group__ipa__hbac.html#ga5e2ff922594e1c95406a58e11c02e785" title="Evaluate an authorization request against a set of HBAC rules.">hbac_evaluate</a>(<span class="keyword">struct</span> <a class="code" href="structhbac__rule.html" title="HBAC rule object for evaluation.">hbac_rule</a> **rules,</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;                                    <span class="keyword">struct</span> <a class="code" href="structhbac__eval__req.html" title="Request object for an HBAC rule evaluation.">hbac_eval_req</a> *hbac_req,</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                                    <span class="keyword">struct</span> <a class="code" href="structhbac__info.html" title="Extended information.">hbac_info</a> **info);</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__ipa__hbac.html#gabcf175aab640e89824deaae97160d0f2" title="Display result of hbac evaluation in human-readable form.">hbac_result_string</a>(<span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gad62bd2c7fb837272a3cf80d176410cd6" title="Result of HBAC evaluation.">hbac_eval_result</a> result);</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__ipa__hbac.html#ga03f9ab391cf4a158a2d11bc3e408b2f5" title="Display error description.">hbac_error_string</a>(<span class="keyword">enum</span> <a class="code" href="group__ipa__hbac.html#gac4bf6648ee5fb44693543581ad8956fd" title="Error code returned by the evaluator.">hbac_error_code</a> code);</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__ipa__hbac.html#gae3bfb7f61dc7f11f6bbc7f89d5e9cc40" title="Function to safely free hbac_info returned by hbac_evaluate.">hbac_free_info</a>(<span class="keyword">struct</span> <a class="code" href="structhbac__info.html" title="Extended information.">hbac_info</a> *info);</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gae31ab9dce5991045fb4d945f9f04e68d">  284</a></span>&#160;<span class="preprocessor">#define HBAC_RULE_ELEMENT_USERS       0x01</span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ga8fda15d21054d3c3754fe1d1948b37ff">  287</a></span>&#160;<span class="preprocessor">#define HBAC_RULE_ELEMENT_SERVICES    0x02</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00290"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#ga57195713344d39e9ca73a2775ba371a5">  290</a></span>&#160;<span class="preprocessor">#define HBAC_RULE_ELEMENT_TARGETHOSTS 0x04</span></div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="code" href="group__ipa__hbac.html#gad39fb6b6afefa7ccbceab5d80eb35684">  293</a></span>&#160;<span class="preprocessor">#define HBAC_RULE_ELEMENT_SOURCEHOSTS 0x08</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="group__ipa__hbac.html#gadef62fdeda3388674ab2cc50f955c406" title="Evaluate whether an HBAC rule contains all necessary elements.">hbac_rule_is_complete</a>(<span class="keyword">struct</span> <a class="code" href="structhbac__rule.html" title="HBAC rule object for evaluation.">hbac_rule</a> *rule, uint32_t *missing_attrs);</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IPA_HBAC_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>