Sophie

Sophie

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

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 callbacks</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="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">The libssh callbacks<div class="ingroups"><a class="el" href="group__libssh.html">The libssh API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Callback which can be replaced in libssh.  
<a href="#details">More...</a></p>
<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__callbacks__struct.html">ssh_callbacks</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure to replace libssh functions with appropriate callbacks.  <a href="structssh__callbacks__struct.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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__socket__callbacks__struct.html">ssh_socket_callbacks</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">These are the callbacks exported by the socket structure They are called by the socket module when a socket event appears.  <a href="structssh__socket__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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gafe09b81e5346f0babe288dc38113d289"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#gafe09b81e5346f0babe288dc38113d289">ssh_callbacks_init</a>(p)</td></tr>
<tr class="memdesc:gafe09b81e5346f0babe288dc38113d289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an <a class="el" href="structssh__callbacks__struct.html" title="The structure to replace libssh functions with appropriate callbacks.">ssh_callbacks_struct</a> A call to this macro is mandatory when you have set a new ssh_callback_struct structure.  <a href="#gafe09b81e5346f0babe288dc38113d289">More...</a><br/></td></tr>
<tr class="separator:gafe09b81e5346f0babe288dc38113d289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fd26956f4e2b9bc57cfef26c50e321b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga8fd26956f4e2b9bc57cfef26c50e321b">SSH_PACKET_CALLBACK</a>(name)&#160;&#160;&#160;int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)</td></tr>
<tr class="memdesc:ga8fd26956f4e2b9bc57cfef26c50e321b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro declares a packet callback handler.  <a href="#ga8fd26956f4e2b9bc57cfef26c50e321b">More...</a><br/></td></tr>
<tr class="separator:ga8fd26956f4e2b9bc57cfef26c50e321b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4766917128a12b646a8aee7ebc019f8c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4766917128a12b646a8aee7ebc019f8c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga4766917128a12b646a8aee7ebc019f8c">SSH_PACKET_NOT_USED</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga4766917128a12b646a8aee7ebc019f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packet was not used and should be passed to any other callback available. <br/></td></tr>
<tr class="separator:ga4766917128a12b646a8aee7ebc019f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac29df803aa1295d6a498c1b081f3b494"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#gac29df803aa1295d6a498c1b081f3b494">SSH_PACKET_USED</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gac29df803aa1295d6a498c1b081f3b494"><td class="mdescLeft">&#160;</td><td class="mdescRight">return values for a ssh_packet_callback  <a href="#gac29df803aa1295d6a498c1b081f3b494">More...</a><br/></td></tr>
<tr class="separator:gac29df803aa1295d6a498c1b081f3b494"><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:ga7c6a9d477c59ee65b3c03d77b510595f"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga7c6a9d477c59ee65b3c03d77b510595f">ssh_auth_callback</a> )(const char *prompt, char *buf, size_t len, int echo, int verify, void *userdata)</td></tr>
<tr class="memdesc:ga7c6a9d477c59ee65b3c03d77b510595f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH authentication callback.  <a href="#ga7c6a9d477c59ee65b3c03d77b510595f">More...</a><br/></td></tr>
<tr class="separator:ga7c6a9d477c59ee65b3c03d77b510595f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6dd3c923f67d136837394cf53cc281ca"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga6dd3c923f67d136837394cf53cc281ca">ssh_channel_close_callback</a> )(ssh_session session, ssh_channel channel, void *userdata)</td></tr>
<tr class="memdesc:ga6dd3c923f67d136837394cf53cc281ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel close callback.  <a href="#ga6dd3c923f67d136837394cf53cc281ca">More...</a><br/></td></tr>
<tr class="separator:ga6dd3c923f67d136837394cf53cc281ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2676f5018fc9a7a4034527a38636c1cb"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga2676f5018fc9a7a4034527a38636c1cb">ssh_channel_data_callback</a> )(ssh_session session, ssh_channel channel, void *data, uint32_t len, int is_stderr, void *userdata)</td></tr>
<tr class="memdesc:ga2676f5018fc9a7a4034527a38636c1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel data callback.  <a href="#ga2676f5018fc9a7a4034527a38636c1cb">More...</a><br/></td></tr>
<tr class="separator:ga2676f5018fc9a7a4034527a38636c1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b5a09075bab3711b50d079d403eded5"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga0b5a09075bab3711b50d079d403eded5">ssh_channel_eof_callback</a> )(ssh_session session, ssh_channel channel, void *userdata)</td></tr>
<tr class="memdesc:ga0b5a09075bab3711b50d079d403eded5"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel eof callback.  <a href="#ga0b5a09075bab3711b50d079d403eded5">More...</a><br/></td></tr>
<tr class="separator:ga0b5a09075bab3711b50d079d403eded5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ea789f1b8b71edf89b86a0af810cd0e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga9ea789f1b8b71edf89b86a0af810cd0e">ssh_channel_exit_signal_callback</a> )(ssh_session session, ssh_channel channel, const char *signal, int core, const char *errmsg, const char *lang, void *userdata)</td></tr>
<tr class="memdesc:ga9ea789f1b8b71edf89b86a0af810cd0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel exit signal callback.  <a href="#ga9ea789f1b8b71edf89b86a0af810cd0e">More...</a><br/></td></tr>
<tr class="separator:ga9ea789f1b8b71edf89b86a0af810cd0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabad42498382063acdcd67dc931d67f9f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#gabad42498382063acdcd67dc931d67f9f">ssh_channel_exit_status_callback</a> )(ssh_session session, ssh_channel channel, int exit_status, void *userdata)</td></tr>
<tr class="memdesc:gabad42498382063acdcd67dc931d67f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel exit status callback.  <a href="#gabad42498382063acdcd67dc931d67f9f">More...</a><br/></td></tr>
<tr class="separator:gabad42498382063acdcd67dc931d67f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56787ff30d1f2a76dafc4f7cd1744ae7"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga56787ff30d1f2a76dafc4f7cd1744ae7">ssh_channel_signal_callback</a> )(ssh_session session, ssh_channel channel, const char *signal, void *userdata)</td></tr>
<tr class="memdesc:ga56787ff30d1f2a76dafc4f7cd1744ae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH channel signal callback.  <a href="#ga56787ff30d1f2a76dafc4f7cd1744ae7">More...</a><br/></td></tr>
<tr class="separator:ga56787ff30d1f2a76dafc4f7cd1744ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga649b6ab88336adf945a0def9efb80fbe"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga649b6ab88336adf945a0def9efb80fbe">ssh_global_request_callback</a> )(ssh_session session, ssh_message message, void *userdata)</td></tr>
<tr class="memdesc:ga649b6ab88336adf945a0def9efb80fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH global request callback.  <a href="#ga649b6ab88336adf945a0def9efb80fbe">More...</a><br/></td></tr>
<tr class="separator:ga649b6ab88336adf945a0def9efb80fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1b724cd0c1cfb92e80ce4f51cadfdfd"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#gad1b724cd0c1cfb92e80ce4f51cadfdfd">ssh_log_callback</a> )(ssh_session session, int priority, const char *message, void *userdata)</td></tr>
<tr class="memdesc:gad1b724cd0c1cfb92e80ce4f51cadfdfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH log callback.  <a href="#gad1b724cd0c1cfb92e80ce4f51cadfdfd">More...</a><br/></td></tr>
<tr class="separator:gad1b724cd0c1cfb92e80ce4f51cadfdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41076189f34fb00a54bc54f58832fbae"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga41076189f34fb00a54bc54f58832fbae">ssh_packet_callback</a> )(ssh_session session, uint8_t type, ssh_buffer packet, void *user)</td></tr>
<tr class="memdesc:ga41076189f34fb00a54bc54f58832fbae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prototype for a packet callback, to be called when a new packet arrives.  <a href="#ga41076189f34fb00a54bc54f58832fbae">More...</a><br/></td></tr>
<tr class="separator:ga41076189f34fb00a54bc54f58832fbae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c8dca5a8a40b6e567a1a01c28c01804"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga2c8dca5a8a40b6e567a1a01c28c01804">ssh_status_callback</a> )(ssh_session session, float status, void *userdata)</td></tr>
<tr class="memdesc:ga2c8dca5a8a40b6e567a1a01c28c01804"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSH Connection status callback.  <a href="#ga2c8dca5a8a40b6e567a1a01c28c01804">More...</a><br/></td></tr>
<tr class="separator:ga2c8dca5a8a40b6e567a1a01c28c01804"><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:ga2e4b0507c738748a3f10e43fe201fe09"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#ga2e4b0507c738748a3f10e43fe201fe09">ssh_set_callbacks</a> (ssh_session session, ssh_callbacks cb)</td></tr>
<tr class="memdesc:ga2e4b0507c738748a3f10e43fe201fe09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the session callback functions.  <a href="#ga2e4b0507c738748a3f10e43fe201fe09">More...</a><br/></td></tr>
<tr class="separator:ga2e4b0507c738748a3f10e43fe201fe09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacea52d1373970a4922bf60e6b1680919"><td class="memItemLeft" align="right" valign="top">LIBSSH_API int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__callbacks.html#gacea52d1373970a4922bf60e6b1680919">ssh_set_channel_callbacks</a> (ssh_channel channel, ssh_channel_callbacks cb)</td></tr>
<tr class="memdesc:gacea52d1373970a4922bf60e6b1680919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the channel callback functions.  <a href="#gacea52d1373970a4922bf60e6b1680919">More...</a><br/></td></tr>
<tr class="separator:gacea52d1373970a4922bf60e6b1680919"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Callback which can be replaced in libssh. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gafe09b81e5346f0babe288dc38113d289"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ssh_callbacks_init</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">p</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> {\</div>
<div class="line">  (p)-&gt;size=<span class="keyword">sizeof</span>(*(p)); \</div>
<div class="line">} <span class="keywordflow">while</span>(0);</div>
</div><!-- fragment -->
<p>Initializes an <a class="el" href="structssh__callbacks__struct.html" title="The structure to replace libssh functions with appropriate callbacks.">ssh_callbacks_struct</a> A call to this macro is mandatory when you have set a new ssh_callback_struct structure. </p>
<p>Its goal is to maintain the binary compatibility with future versions of libssh as the structure evolves with time. </p>

</div>
</div>
<a class="anchor" id="ga8fd26956f4e2b9bc57cfef26c50e321b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SSH_PACKET_CALLBACK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name</td><td>)</td>
          <td>&#160;&#160;&#160;int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This macro declares a packet callback handler. </p>
<div class="fragment"><div class="line"><a class="code" href="group__libssh__callbacks.html#ga8fd26956f4e2b9bc57cfef26c50e321b" title="This macro declares a packet callback handler.">SSH_PACKET_CALLBACK</a>(mycallback){</div>
<div class="line">...</div>
<div class="line">}</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="gac29df803aa1295d6a498c1b081f3b494"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SSH_PACKET_USED&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>return values for a ssh_packet_callback </p>
<p>Packet was used and should not be parsed by another callback </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga7c6a9d477c59ee65b3c03d77b510595f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* ssh_auth_callback)(const char *prompt, char *buf, size_t len, int echo, int verify, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH authentication callback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">prompt</td><td>Prompt to be displayed. </td></tr>
    <tr><td class="paramname">buf</td><td>Buffer to save the password. You should null-terminate it. </td></tr>
    <tr><td class="paramname">len</td><td>Length of the buffer. </td></tr>
    <tr><td class="paramname">echo</td><td>Enable or disable the echo of what you type. </td></tr>
    <tr><td class="paramname">verify</td><td>Should the password be verified? </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. Useful for GUI applications.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, &lt; 0 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ga6dd3c923f67d136837394cf53cc281ca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_channel_close_callback)(ssh_session session, ssh_channel channel, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel close callback. </p>
<p>Called when a channel is closed by remote peer </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2676f5018fc9a7a4034527a38636c1cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* ssh_channel_data_callback)(ssh_session session, ssh_channel channel, void *data, uint32_t len, int is_stderr, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel data callback. </p>
<p>Called when data is available on a channel </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">data</td><td>the data that has been read on the channel </td></tr>
    <tr><td class="paramname">len</td><td>the length of the data </td></tr>
    <tr><td class="paramname">is_stderr</td><td>is 0 for stdout or 1 for stderr </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0b5a09075bab3711b50d079d403eded5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_channel_eof_callback)(ssh_session session, ssh_channel channel, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel eof callback. </p>
<p>Called when a channel receives EOF </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9ea789f1b8b71edf89b86a0af810cd0e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_channel_exit_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, int core, const char *errmsg, const char *lang, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel exit signal callback. </p>
<p>Called when a channel has received an exit signal </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">signal</td><td>the signal name (without the SIG prefix) </td></tr>
    <tr><td class="paramname">core</td><td>a boolean telling wether a core has been dumped or not </td></tr>
    <tr><td class="paramname">errmsg</td><td>the description of the exception </td></tr>
    <tr><td class="paramname">lang</td><td>the language of the description (format: RFC 3066) </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gabad42498382063acdcd67dc931d67f9f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_channel_exit_status_callback)(ssh_session session, ssh_channel channel, int exit_status, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel exit status callback. </p>
<p>Called when a channel has received an exit status </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga56787ff30d1f2a76dafc4f7cd1744ae7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_channel_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH channel signal callback. </p>
<p>Called when a channel has received a signal </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">channel</td><td>the actual channel </td></tr>
    <tr><td class="paramname">signal</td><td>the signal name (without the SIG prefix) </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga649b6ab88336adf945a0def9efb80fbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_global_request_callback)(ssh_session session, ssh_message message, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH global request callback. </p>
<p>All global request will go through this callback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current 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>
<a class="anchor" id="gad1b724cd0c1cfb92e80ce4f51cadfdfd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_log_callback)(ssh_session session, int priority, const char *message, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH log callback. </p>
<p>All logging messages will go through this callback </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">priority</td><td>Priority of the log, the smaller being the more important </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>
<a class="anchor" id="ga41076189f34fb00a54bc54f58832fbae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* ssh_packet_callback)(ssh_session session, uint8_t type, ssh_buffer packet, void *user)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prototype for a packet callback, to be called when a new packet arrives. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>The current session of the packet </td></tr>
    <tr><td class="paramname">type</td><td>packet type (see <a class="el" href="ssh2_8h_source.html">ssh2.h</a>) </td></tr>
    <tr><td class="paramname">packet</td><td>buffer containing the packet, excluding size, type and padding fields </td></tr>
    <tr><td class="paramname">user</td><td>user argument to the callback and are called each time a packet shows up </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_PACKET_USED Packet was parsed and used </dd>
<dd>
SSH_PACKET_NOT_USED Packet was not used or understood, processing must continue </dd></dl>

</div>
</div>
<a class="anchor" id="ga2c8dca5a8a40b6e567a1a01c28c01804"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ssh_status_callback)(ssh_session session, float status, void *userdata)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SSH Connection status callback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>Current session handler </td></tr>
    <tr><td class="paramname">status</td><td>Percentage of connection status, going from 0.0 to 1.0 once connection is done. </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="ga2e4b0507c738748a3f10e43fe201fe09"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LIBSSH_API int ssh_set_callbacks </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">ssh_callbacks&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the session callback functions. </p>
<p>This functions sets the callback structure to use your own callback functions for auth, logging and status.</p>
<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__callbacks.html#ga2e4b0507c738748a3f10e43fe201fe09" title="Set the session callback functions.">ssh_set_callbacks</a>(session, &amp;cb);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">session</td><td>The session to set the callback structure.</td></tr>
    <tr><td class="paramname">cb</td><td>The callback structure itself.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK on success, SSH_ERROR on error. </dd></dl>

</div>
</div>
<a class="anchor" id="gacea52d1373970a4922bf60e6b1680919"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LIBSSH_API int ssh_set_channel_callbacks </td>
          <td>(</td>
          <td class="paramtype">ssh_channel&#160;</td>
          <td class="paramname"><em>channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_channel_callbacks&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the channel callback functions. </p>
<p>This functions sets the callback structure to use your own callback functions for channel data and exceptions</p>
<div class="fragment"><div class="line"><span class="keyword">struct </span>ssh_channel_callbacks_struct 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">  .channel_data = my_channel_data_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__callbacks.html#gacea52d1373970a4922bf60e6b1680919" title="Set the channel callback functions.">ssh_set_channel_callbacks</a>(channel, &amp;cb);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">channel</td><td>The channel to set the callback structure.</td></tr>
    <tr><td class="paramname">cb</td><td>The callback structure itself.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK on success, SSH_ERROR on error. </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>