Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 397aa1050c8bf57b6d560be2ac4c9b5c > files > 10

CGSI-gSOAP-devel-1.3.4.2-2.fc14.x86_64.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"/>
<title>CGSI_gSOAP: cgsi_plugin.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">CGSI_gSOAP&#160;<span id="projectnumber">1.3.4</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">cgsi_plugin.h File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &lt;stdsoap2.h&gt;</code><br/>
</div>
<p><a href="cgsi__plugin_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a9f0a5a15df8b4b3dd0fdd95f009dbcc7">CGSI_OPT_CLIENT</a>&#160;&#160;&#160;0x1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#aa48695547c28f552f0cd01f0ad6cf278">CGSI_OPT_SERVER</a>&#160;&#160;&#160;0x2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a1859f4e319051343ada8526cb50cf6fc">CGSI_OPT_DELEG_FLAG</a>&#160;&#160;&#160;0x4</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a3222b0150e36786c133a8c1d37faf5e8">CGSI_OPT_SSL_COMPATIBLE</a>&#160;&#160;&#160;0x8</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a07b11c3c6a107bd130b1093c1c96ca5c">CGSI_OPT_DISABLE_NAME_CHECK</a>&#160;&#160;&#160;0x10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a24c78d3ad5143279fae111351feefb36">CGSI_OPT_KEEP_ALIVE</a>&#160;&#160;&#160;0x20</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a28142042fc6e4f5b07fe8d5a600e588d">CGSI_OPT_DISABLE_MAPPING</a>&#160;&#160;&#160;0x40</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a5966f0726f1b83d2632413938799e4a9">CGSI_OPT_DISABLE_VOMS_CHECK</a>&#160;&#160;&#160;0x80</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#aac7c733e8d5b392782ac4bff18094556">CGSI_OPT_ALLOW_ONLY_SELF</a>&#160;&#160;&#160;0x100</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a9b4c8716a0595b3c24ff05c7df19b01d">soap_cgsi_init</a> (struct soap *soap, int cgsi_options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a36b2f2b8d98c8aaeead8c3c701e52de9">cgsi_plugin</a> (struct soap *soap, struct soap_plugin *plugin, void *arg)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a1a8019821b74742d6321640ebad211bb">client_cgsi_plugin</a> (struct soap *soap, struct soap_plugin *plugin, void *arg)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#adb377e35e9b7f94e964eff070108eda6">server_cgsi_plugin</a> (struct soap *soap, struct soap_plugin *plugin, void *arg)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a5fcab078c9c5d8c59fcec2ccf115376b">is_context_established</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a271357ea6a2d729d4aa3290b62a02ae4">get_client_dn</a> (struct soap *soap, char *dn, size_t dnlen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a89bc0053660c9427aa591b5f8cd5e948">get_client_username</a> (struct soap *soap, char *username, size_t dnlen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a3ed3dc0e81cea8a740b603bd4a8a16a0">get_delegated_credentials</a> (struct soap *soap, void **buffer, size_t *length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#aa4128c2ff83b88611d9809400251ae59">export_delegated_credentials</a> (struct soap *soap, char *filename)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a6d66ce11a6a6c56ae6d9190c1fa6328f">has_delegated_credentials</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#ac644ce838fb321924248f91ef023d56e">set_default_proxy_file</a> (struct soap *soap, char *filename)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a18b5ac49979cbdf0eec298898f2f1525">clear_default_proxy_file</a> (int unlink_file)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#aeee27e84d63ad2973c73766774771d1c">retrieve_voms_creds</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a40367d9b6350d7450ea68fdd3f73d1d0">retrieve_userca_and_voms_creds</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a8cf4eb527f2ef6c428ae634098384bb4">get_client_ca</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#acc89acf872026df9280f446c56f9ae5c">get_client_voname</a> (struct soap *soap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cgsi__plugin_8h.html#a60ad784721e15bb17bac5c3d9bd89b4e">get_client_roles</a> (struct soap *soap, int *nbfqans)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="cgsi__plugin_8h.html">cgsi_plugin.h</a> - Header file for the GSI gSOAP plugin</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Ben Couturier CERN, IT/ADC</dd></dl>
<p>This is a GSI plugin for gSOAP. It uses the globus GSI libraries to implement GSI secure authentification and encryption on top of gSOAP. The globus GSI bundle is necessary for the plugin to compile and run. </p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="aac7c733e8d5b392782ac4bff18094556"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_ALLOW_ONLY_SELF" ref="aac7c733e8d5b392782ac4bff18094556" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_ALLOW_ONLY_SELF&#160;&#160;&#160;0x100</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Allow client and server to only connect together when they have the same identity </p>

</div>
</div>
<a class="anchor" id="a9f0a5a15df8b4b3dd0fdd95f009dbcc7"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_CLIENT" ref="a9f0a5a15df8b4b3dd0fdd95f009dbcc7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_CLIENT&#160;&#160;&#160;0x1</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Options that can be specified when initializing the cgsi_plugin (in the arg parameter): The program acts as a client. </p>

</div>
</div>
<a class="anchor" id="a1859f4e319051343ada8526cb50cf6fc"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_DELEG_FLAG" ref="a1859f4e319051343ada8526cb50cf6fc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_DELEG_FLAG&#160;&#160;&#160;0x4</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initiate delegation over the HTTPG protocol. </p>

</div>
</div>
<a class="anchor" id="a28142042fc6e4f5b07fe8d5a600e588d"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_DISABLE_MAPPING" ref="a28142042fc6e4f5b07fe8d5a600e588d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_DISABLE_MAPPING&#160;&#160;&#160;0x40</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Disable DN-&gt;userid mapping via gridmap-file. </p>

</div>
</div>
<a class="anchor" id="a07b11c3c6a107bd130b1093c1c96ca5c"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_DISABLE_NAME_CHECK" ref="a07b11c3c6a107bd130b1093c1c96ca5c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_DISABLE_NAME_CHECK&#160;&#160;&#160;0x10</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Disable comparing the server's host name with its certificate's CN. </p>

</div>
</div>
<a class="anchor" id="a5966f0726f1b83d2632413938799e4a9"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_DISABLE_VOMS_CHECK" ref="a5966f0726f1b83d2632413938799e4a9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_DISABLE_VOMS_CHECK&#160;&#160;&#160;0x80</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Disable connect time VOMS parsing for better error handling via an explicit call to <a class="el" href="cgsi__plugin_8h.html#aeee27e84d63ad2973c73766774771d1c">retrieve_voms_creds()</a> </p>

</div>
</div>
<a class="anchor" id="a24c78d3ad5143279fae111351feefb36"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_KEEP_ALIVE" ref="a24c78d3ad5143279fae111351feefb36" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_KEEP_ALIVE&#160;&#160;&#160;0x20</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Keep alive the HTTP connection. </p>

</div>
</div>
<a class="anchor" id="aa48695547c28f552f0cd01f0ad6cf278"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_SERVER" ref="aa48695547c28f552f0cd01f0ad6cf278" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_SERVER&#160;&#160;&#160;0x2</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The program acts as a server. </p>

</div>
</div>
<a class="anchor" id="a3222b0150e36786c133a8c1d37faf5e8"></a><!-- doxytag: member="cgsi_plugin.h::CGSI_OPT_SSL_COMPATIBLE" ref="a3222b0150e36786c133a8c1d37faf5e8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CGSI_OPT_SSL_COMPATIBLE&#160;&#160;&#160;0x8</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Using pure SSL protocol, for compatibility. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a36b2f2b8d98c8aaeead8c3c701e52de9"></a><!-- doxytag: member="cgsi_plugin.h::cgsi_plugin" ref="a36b2f2b8d98c8aaeead8c3c701e52de9" args="(struct soap *soap, struct soap_plugin *plugin, void *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cgsi_plugin </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Generic contructor for the cgsi_plugin</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">plugin</td><td>Pointer to the plugin data structure </td></tr>
    <tr><td class="paramname">arg</td><td>The parameters for the plugin creation</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a18b5ac49979cbdf0eec298898f2f1525"></a><!-- doxytag: member="cgsi_plugin.h::clear_default_proxy_file" ref="a18b5ac49979cbdf0eec298898f2f1525" args="(int unlink_file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void clear_default_proxy_file </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>unlink_file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Clears the env variable used by GSI to specify the proxy filename</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">unlink_file</td><td>Set to 1 if you want to destroy the credential file as well </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1a8019821b74742d6321640ebad211bb"></a><!-- doxytag: member="cgsi_plugin.h::client_cgsi_plugin" ref="a1a8019821b74742d6321640ebad211bb" args="(struct soap *soap, struct soap_plugin *plugin, void *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int client_cgsi_plugin </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Client contructor for the cgsi_plugin</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">plugin</td><td>Pointer to the plugin data structure </td></tr>
    <tr><td class="paramname">arg</td><td>The parameters for the plugin creation (CGSI_OPT_CLIENT assumed)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="aa4128c2ff83b88611d9809400251ae59"></a><!-- doxytag: member="cgsi_plugin.h::export_delegated_credentials" ref="aa4128c2ff83b88611d9809400251ae59" args="(struct soap *soap, char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int export_delegated_credentials </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Export the delegated credentials (if available) to a file</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">filename</td><td>Name of the file where the credentials are to be written</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a8cf4eb527f2ef6c428ae634098384bb4"></a><!-- doxytag: member="cgsi_plugin.h::get_client_ca" ref="a8cf4eb527f2ef6c428ae634098384bb4" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* get_client_ca </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the client CA</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The client CA is allocated in the soap structure (DON'T free), NULL otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a271357ea6a2d729d4aa3290b62a02ae4"></a><!-- doxytag: member="cgsi_plugin.h::get_client_dn" ref="a271357ea6a2d729d4aa3290b62a02ae4" args="(struct soap *soap, char *dn, size_t dnlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int get_client_dn </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dnlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Gets the Distinguished name (DN) of the client</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">dn</td><td>Pointer to a buffer where the DN is to be written </td></tr>
    <tr><td class="paramname">dnlen</td><td>The length of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a60ad784721e15bb17bac5c3d9bd89b4e"></a><!-- doxytag: member="cgsi_plugin.h::get_client_roles" ref="a60ad784721e15bb17bac5c3d9bd89b4e" args="(struct soap *soap, int *nbfqans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char** get_client_roles </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>nbfqans</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the client VO roles if they were provided in the certificate</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
    <tr><td class="paramname">nbfqans</td><td>The number of returned Fully Qualified Attribute Names</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The client roles are malloced in the soap structure (DON'T free), NULL otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a89bc0053660c9427aa591b5f8cd5e948"></a><!-- doxytag: member="cgsi_plugin.h::get_client_username" ref="a89bc0053660c9427aa591b5f8cd5e948" args="(struct soap *soap, char *username, size_t dnlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int get_client_username </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dnlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Gets the username (DN) of the client</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">username</td><td>Pointer to a buffer where the username is to be written </td></tr>
    <tr><td class="paramname">dnlen</td><td>The length of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="acc89acf872026df9280f446c56f9ae5c"></a><!-- doxytag: member="cgsi_plugin.h::get_client_voname" ref="acc89acf872026df9280f446c56f9ae5c" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* get_client_voname </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the client VO name if it was provided in the certificate</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The client voname is malloced in the soap structure (DON'T free), NULL otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a3ed3dc0e81cea8a740b603bd4a8a16a0"></a><!-- doxytag: member="cgsi_plugin.h::get_delegated_credentials" ref="a3ed3dc0e81cea8a740b603bd4a8a16a0" args="(struct soap *soap, void **buffer, size_t *length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int get_delegated_credentials </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Make the delegated credential available as a token in memory. The soap structure retains ownership of the memory. The user should not free the pointer returned by this function, nor use it after the soap object becomes invalid.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure that is the target of the request </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a void pointer which will be set to reference the credential token. </td></tr>
    <tr><td class="paramname">length</td><td>Pointer to a length that will be set to the size of the credential token</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a6d66ce11a6a6c56ae6d9190c1fa6328f"></a><!-- doxytag: member="cgsi_plugin.h::has_delegated_credentials" ref="a6d66ce11a6a6c56ae6d9190c1fa6328f" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int has_delegated_credentials </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Checks whether the client delegated credentials to the server</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if there are some delegated credentials, 0 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a5fcab078c9c5d8c59fcec2ccf115376b"></a><!-- doxytag: member="cgsi_plugin.h::is_context_established" ref="a5fcab078c9c5d8c59fcec2ccf115376b" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int is_context_established </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Checks whether the security context has been established properly</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if context established, 0 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a40367d9b6350d7450ea68fdd3f73d1d0"></a><!-- doxytag: member="cgsi_plugin.h::retrieve_userca_and_voms_creds" ref="a40367d9b6350d7450ea68fdd3f73d1d0" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int retrieve_userca_and_voms_creds </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aeee27e84d63ad2973c73766774771d1c"></a><!-- doxytag: member="cgsi_plugin.h::retrieve_voms_creds" ref="aeee27e84d63ad2973c73766774771d1c" args="(struct soap *soap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int retrieve_voms_creds </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Parses the optional VOMS extension of the peer certificate. It has to be called before <a class="el" href="cgsi__plugin_8h.html#acc89acf872026df9280f446c56f9ae5c">get_client_voname()</a> and <a class="el" href="cgsi__plugin_8h.html#a60ad784721e15bb17bac5c3d9bd89b4e">get_client_roles()</a>!</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise SOAP Fault structure contains the detailed description. </dd></dl>

</div>
</div>
<a class="anchor" id="adb377e35e9b7f94e964eff070108eda6"></a><!-- doxytag: member="cgsi_plugin.h::server_cgsi_plugin" ref="adb377e35e9b7f94e964eff070108eda6" args="(struct soap *soap, struct soap_plugin *plugin, void *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int server_cgsi_plugin </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Server contructor for the cgsi_plugin</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">plugin</td><td>Pointer to the plugin data structure </td></tr>
    <tr><td class="paramname">arg</td><td>The parameters for the plugin creation (CGSI_OPT_SERVER assumed)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ac644ce838fb321924248f91ef023d56e"></a><!-- doxytag: member="cgsi_plugin.h::set_default_proxy_file" ref="ac644ce838fb321924248f91ef023d56e" args="(struct soap *soap, char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int set_default_proxy_file </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the env variable for GSI to use the proxy in the specified filename</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">filename</td><td>Name of the file where credentials are stored</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a9b4c8716a0595b3c24ff05c7df19b01d"></a><!-- doxytag: member="cgsi_plugin.h::soap_cgsi_init" ref="a9b4c8716a0595b3c24ff05c7df19b01d" args="(struct soap *soap, int cgsi_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int soap_cgsi_init </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cgsi_options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Helper function to create the gsoap object and the cgsi_plugin at the same time. This function assumes that a client plugin is specified, to create a server plugin, use the CGSI_OPT_SERVER option.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>The soap structure for the request </td></tr>
    <tr><td class="paramname">cgsi_options</td><td>The parameters for the plugin creation (bitwise or of the different options).</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 otherwise </dd></dl>

</div>
</div>
</div>
<i>Copyright &#169; 2004-2009 <A href="http://public.eu-egee.org/">EU-EGEE</A></i></A></i>