Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > ee8fafc31a7ba3ce3ae4499cedf4e1bc > files > 73

libssh-devel-0.5.5-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>libssh: The libssh server API</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">libssh
   &#160;<span id="projectnumber">0.5.5</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="pages.html"><span>Related&#160;Pages</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><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">The libssh server API</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structssh__bind__callbacks__struct.html">ssh_bind_callbacks</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">These are the callbacks exported by the ssh_bind structure.  <a href="structssh__bind__callbacks__struct.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga90527ccc50e1ad6be167b89cd054d01a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#ga90527ccc50e1ad6be167b89cd054d01a">ssh_bind_incoming_connection_callback</a> )(ssh_bind sshbind, void *userdata)</td></tr>
<tr class="memdesc:ga90527ccc50e1ad6be167b89cd054d01a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Incoming connection callback.  <a href="#ga90527ccc50e1ad6be167b89cd054d01a">More...</a><br/></td></tr>
<tr class="separator:ga90527ccc50e1ad6be167b89cd054d01a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6609243446f1650243101e0a779dc822"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#ga6609243446f1650243101e0a779dc822">ssh_bind_accept</a> (ssh_bind ssh_bind_o, ssh_session session)</td></tr>
<tr class="memdesc:ga6609243446f1650243101e0a779dc822"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept an incoming ssh connection and initialize the session.  <a href="#ga6609243446f1650243101e0a779dc822">More...</a><br/></td></tr>
<tr class="separator:ga6609243446f1650243101e0a779dc822"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab69593f009137ccabafc18a98bd55546"><td class="memItemLeft" align="right" valign="top">LIBSSH_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gab69593f009137ccabafc18a98bd55546">ssh_bind_fd_toaccept</a> (ssh_bind ssh_bind_o)</td></tr>
<tr class="memdesc:gab69593f009137ccabafc18a98bd55546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow the file descriptor to accept new sessions.  <a href="#gab69593f009137ccabafc18a98bd55546">More...</a><br/></td></tr>
<tr class="separator:gab69593f009137ccabafc18a98bd55546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7650d22d982a82bf328345c04948cdf"><td class="memItemLeft" align="right" valign="top">LIBSSH_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gaa7650d22d982a82bf328345c04948cdf">ssh_bind_free</a> (ssh_bind ssh_bind_o)</td></tr>
<tr class="memdesc:gaa7650d22d982a82bf328345c04948cdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a ssh servers bind.  <a href="#gaa7650d22d982a82bf328345c04948cdf">More...</a><br/></td></tr>
<tr class="separator:gaa7650d22d982a82bf328345c04948cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b0d1842bf3892ce8b5ebd6c0c7db735"><td class="memItemLeft" align="right" valign="top">LIBSSH_API socket_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#ga2b0d1842bf3892ce8b5ebd6c0c7db735">ssh_bind_get_fd</a> (ssh_bind ssh_bind_o)</td></tr>
<tr class="memdesc:ga2b0d1842bf3892ce8b5ebd6c0c7db735"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recover the file descriptor from the session.  <a href="#ga2b0d1842bf3892ce8b5ebd6c0c7db735">More...</a><br/></td></tr>
<tr class="separator:ga2b0d1842bf3892ce8b5ebd6c0c7db735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee5406f486d73aad765cab4c445f2f63"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gaee5406f486d73aad765cab4c445f2f63">ssh_bind_listen</a> (ssh_bind ssh_bind_o)</td></tr>
<tr class="memdesc:gaee5406f486d73aad765cab4c445f2f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start listening to the socket.  <a href="#gaee5406f486d73aad765cab4c445f2f63">More...</a><br/></td></tr>
<tr class="separator:gaee5406f486d73aad765cab4c445f2f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e4edf0cfd185a335d08e6e610aed77e"><td class="memItemLeft" align="right" valign="top">LIBSSH_API ssh_bind&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#ga4e4edf0cfd185a335d08e6e610aed77e">ssh_bind_new</a> (void)</td></tr>
<tr class="memdesc:ga4e4edf0cfd185a335d08e6e610aed77e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new SSH server bind.  <a href="#ga4e4edf0cfd185a335d08e6e610aed77e">More...</a><br/></td></tr>
<tr class="separator:ga4e4edf0cfd185a335d08e6e610aed77e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44466ff79106eb04e66d60d64b76d7e2"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#ga44466ff79106eb04e66d60d64b76d7e2">ssh_bind_options_set</a> (ssh_bind sshbind, enum ssh_bind_options_e type, const void *value)</td></tr>
<tr class="memdesc:ga44466ff79106eb04e66d60d64b76d7e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the options for the current SSH server bind.  <a href="#ga44466ff79106eb04e66d60d64b76d7e2">More...</a><br/></td></tr>
<tr class="separator:ga44466ff79106eb04e66d60d64b76d7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7e6f23c6934892d6a96011456b6c280"><td class="memItemLeft" align="right" valign="top">LIBSSH_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gaf7e6f23c6934892d6a96011456b6c280">ssh_bind_set_blocking</a> (ssh_bind ssh_bind_o, int blocking)</td></tr>
<tr class="memdesc:gaf7e6f23c6934892d6a96011456b6c280"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the session to blocking/nonblocking mode.  <a href="#gaf7e6f23c6934892d6a96011456b6c280">More...</a><br/></td></tr>
<tr class="separator:gaf7e6f23c6934892d6a96011456b6c280"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa9bf406809735d4afc75ecd482ba89d"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gaaa9bf406809735d4afc75ecd482ba89d">ssh_bind_set_callbacks</a> (ssh_bind sshbind, ssh_bind_callbacks callbacks, void *userdata)</td></tr>
<tr class="memdesc:gaaa9bf406809735d4afc75ecd482ba89d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback for this bind.  <a href="#gaaa9bf406809735d4afc75ecd482ba89d">More...</a><br/></td></tr>
<tr class="separator:gaaa9bf406809735d4afc75ecd482ba89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacbba3e298a4493c7b9bfbee514df199c"><td class="memItemLeft" align="right" valign="top">LIBSSH_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gacbba3e298a4493c7b9bfbee514df199c">ssh_bind_set_fd</a> (ssh_bind ssh_bind_o, socket_t fd)</td></tr>
<tr class="memdesc:gacbba3e298a4493c7b9bfbee514df199c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the file descriptor for a session.  <a href="#gacbba3e298a4493c7b9bfbee514df199c">More...</a><br/></td></tr>
<tr class="separator:gacbba3e298a4493c7b9bfbee514df199c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab60c37350653eb3b65a99ac089c55830"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gab60c37350653eb3b65a99ac089c55830">ssh_handle_key_exchange</a> (ssh_session session)</td></tr>
<tr class="memdesc:gab60c37350653eb3b65a99ac089c55830"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the key exchange and set up encryption.  <a href="#gab60c37350653eb3b65a99ac089c55830">More...</a><br/></td></tr>
<tr class="separator:gab60c37350653eb3b65a99ac089c55830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccad877b20fca2d4a7eda5bebc1f5af1"><td class="memItemLeft" align="right" valign="top">LIBSSH_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__server.html#gaccad877b20fca2d4a7eda5bebc1f5af1">ssh_set_message_callback</a> (ssh_session session, int(*ssh_bind_message_callback)(ssh_session session, ssh_message msg, void *data), void *data)</td></tr>
<tr class="memdesc:gaccad877b20fca2d4a7eda5bebc1f5af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">defines the ssh_message callback  <a href="#gaccad877b20fca2d4a7eda5bebc1f5af1">More...</a><br/></td></tr>
<tr class="separator:gaccad877b20fca2d4a7eda5bebc1f5af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga90527ccc50e1ad6be167b89cd054d01a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_bind_incoming_connection_callback)(ssh_bind sshbind, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Incoming connection callback. </p>
<p>This callback is called when a ssh_bind has a new incoming connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sshbind</td><td>Current sshbind session handler </td></tr>
    <tr><td class="paramname">message</td><td>the actual message </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga6609243446f1650243101e0a779dc822"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_bind_accept </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Accept an incoming ssh connection and initialize the session. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to accept a connection. </td></tr>
    <tr><td class="paramname">session</td><td>A preallocated ssh session </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__session.html#gaadadc0f9601547c30db7c4d62017d32c" title="Create a new ssh session.">ssh_new</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK when a connection is established </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2">privatekey_free()</a>.</p>

</div>
</div>
<a class="anchor" id="gab69593f009137ccabafc18a98bd55546"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_bind_fd_toaccept </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allow the file descriptor to accept new sessions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to use. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa7650d22d982a82bf328345c04948cdf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_bind_free </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a ssh servers bind. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to free. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2b0d1842bf3892ce8b5ebd6c0c7db735"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">socket_t ssh_bind_get_fd </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recover the file descriptor from the session. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to get the fd from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The file descriptor. </dd></dl>

</div>
</div>
<a class="anchor" id="gaee5406f486d73aad765cab4c445f2f63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_bind_listen </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start listening to the socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, &lt; 0 on error. </dd></dl>

<p>References <a class="el" href="group__libssh.html#ga3ebf8d6920e563f3b032e3cd5277598e">ssh_init()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4e4edf0cfd185a335d08e6e610aed77e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_bind ssh_bind_new </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new SSH server bind. </p>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated ssh_bind session pointer. </dd></dl>

</div>
</div>
<a class="anchor" id="ga44466ff79106eb04e66d60d64b76d7e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LIBSSH_API int ssh_bind_options_set </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>sshbind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum ssh_bind_options_e&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the options for the current SSH server bind. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sshbind</td><td>The ssh server bind to configure.</td></tr>
    <tr><td class="paramname">type</td><td>The option type to set. This could be one of the following:</td></tr>
  </table>
  </dd>
</dl>
<ul>
<li>SSH_BIND_OPTIONS_BINDADDR The ip address to bind (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_BINDPORT The port to bind (unsigned int).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_BINDPORT_STR The port to bind (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_HOSTKEY This specifies the file containing the private host key used by SSHv1. (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_DSAKEY This specifies the file containing the private host dsa key used by SSHv2. (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_RSAKEY This specifies the file containing the private host dsa key used by SSHv2. (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_BANNER That the server banner (version string) for SSH. (const char *).</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_LOG_VERBOSITY Set the session logging verbosity (int).<br/>
 <br/>
 The verbosity of the messages. Every log smaller or equal to verbosity will be shown.<ul>
<li>SSH_LOG_NOLOG: No logging</li>
<li>SSH_LOG_RARE: Rare conditions or warnings</li>
<li>SSH_LOG_ENTRY: API-accessible entrypoints</li>
<li>SSH_LOG_PACKET: Packet id and size</li>
<li>SSH_LOG_FUNCTIONS: Function entering and leaving</li>
</ul>
</li>
</ul>
<ul>
<li>SSH_BIND_OPTIONS_LOG_VERBOSITY_STR Set the session logging verbosity (const char *).<br/>
 <br/>
 The verbosity of the messages. Every log smaller or equal to verbosity will be shown.<ul>
<li>SSH_LOG_NOLOG: No logging</li>
<li>SSH_LOG_RARE: Rare conditions or warnings</li>
<li>SSH_LOG_ENTRY: API-accessible entrypoints</li>
<li>SSH_LOG_PACKET: Packet id and size</li>
<li>SSH_LOG_FUNCTIONS: Function entering and leaving <br/>
 See the corresponding numbers in <a class="el" href="libssh_8h_source.html">libssh.h</a>.</li>
</ul>
</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>The value to set. This is a generic pointer and the datatype which is used should be set according to the type set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK on success, SSH_ERROR on invalid option or parameter. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf7e6f23c6934892d6a96011456b6c280"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_bind_set_blocking </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>blocking</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the session to blocking/nonblocking mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to use.</td></tr>
    <tr><td class="paramname">blocking</td><td>Zero for nonblocking mode. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaaa9bf406809735d4afc75ecd482ba89d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_bind_set_callbacks </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>sshbind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_bind_callbacks&#160;</td>
          <td class="paramname"><em>callbacks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userdata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the callback for this bind. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sshbind</td><td>The bind to set the callback on.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callbacks</td><td>An already set up ssh_bind_callbacks instance.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>A pointer to private data to pass to the callbacks.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK on success, SSH_ERROR if an error occured.</dd></dl>
<div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structssh__callbacks__struct.html" title="The structure to replace libssh functions with appropriate callbacks.">ssh_callbacks_struct</a> cb = {</div>
<div class="line">    .<a class="code" href="structssh__callbacks__struct.html#a319d5838c0e75ed3917ea5021a3f8448" title="User-provided data.">userdata</a> = data,</div>
<div class="line">    .auth_function = my_auth_function</div>
<div class="line">};</div>
<div class="line"><a class="code" href="group__libssh__callbacks.html#gafe09b81e5346f0babe288dc38113d289" title="Initializes an ssh_callbacks_struct A call to this macro is mandatory when you have set a new ssh_cal...">ssh_callbacks_init</a>(&amp;cb);</div>
<div class="line"><a class="code" href="group__libssh__server.html#gaaa9bf406809735d4afc75ecd482ba89d" title="Set the callback for this bind.">ssh_bind_set_callbacks</a>(session, &amp;cb);</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="gacbba3e298a4493c7b9bfbee514df199c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_bind_set_fd </td>
          <td>(</td>
          <td class="paramtype">ssh_bind&#160;</td>
          <td class="paramname"><em>ssh_bind_o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socket_t&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the file descriptor for a session. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ssh_bind_o</td><td>The ssh server bind to set the fd.</td></tr>
    <tr><td class="paramname">fd</td><td>The file descriptssh_bind B </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab60c37350653eb3b65a99ac089c55830"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_handle_key_exchange </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Handles the key exchange and set up encryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>A connected ssh session </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__server.html#ga6609243446f1650243101e0a779dc822" title="Accept an incoming ssh connection and initialize the session.">ssh_bind_accept</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK if the key exchange was successful </dd></dl>

<p>References <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, and <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673">SSH_LOG_PACKET</a>.</p>

</div>
</div>
<a class="anchor" id="gaccad877b20fca2d4a7eda5bebc1f5af1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_set_message_callback </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(ssh_session session, ssh_message msg, void *data)&#160;</td>
          <td class="paramname"><em>ssh_bind_message_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>defines the ssh_message callback </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">session</td><td>the current ssh session </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ssh_bind_message_callback</td><td>a function pointer to a callback taking the current ssh session and received message as parameters. the function returns 0 if the message has been parsed and treated successfully, 1 otherwise (libssh must take care of the response). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>void pointer to be passed to callback functions </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</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>