aboutsummaryrefslogtreecommitdiff
path: root/docs/paramiko.SubsystemHandler-class.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/paramiko.SubsystemHandler-class.html')
-rw-r--r--docs/paramiko.SubsystemHandler-class.html384
1 files changed, 384 insertions, 0 deletions
diff --git a/docs/paramiko.SubsystemHandler-class.html b/docs/paramiko.SubsystemHandler-class.html
new file mode 100644
index 0000000..407b7f4
--- /dev/null
+++ b/docs/paramiko.SubsystemHandler-class.html
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>paramiko.SubsystemHandler</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
+ Class&nbsp;SubsystemHandler
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="paramiko.SubsystemHandler-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SubsystemHandler</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SubsystemHandler">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+threading._Verbose --+
+ |
+ threading.Thread --+
+ |
+ <strong class="uidshort">SubsystemHandler</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.SFTPServer-class.html">SFTPServer</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Handler for a subsytem in server mode. If you create a subclass of
+ this class and pass it to <a
+ href="paramiko.Transport-class.html#set_subsystem_handler"
+ class="link">Transport.set_subsystem_handler</a>, an object of this class
+ will be created for each request for this subsystem. Each new object
+ will be executed within its own new thread by calling <a
+ href="paramiko.SubsystemHandler-class.html#start_subsystem"
+ class="link">start_subsystem</a>. When that method completes, the channel
+ is closed.</p>
+ <p>For example, if you made a subclass <code>MP3Handler</code> and
+ registered it as the handler for subsystem <code>&quot;mp3&quot;</code>,
+ then whenever a client has successfully authenticated and requests
+ subsytem <code>&quot;mp3&quot;</code>, an object of class
+ <code>MP3Handler</code> will be created, and <a
+ href="paramiko.SubsystemHandler-class.html#start_subsystem"
+ class="link">start_subsystem</a> will be called on it from a new
+ thread.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Instance Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">server</span>)</span><br />
+ Create a new handler for a channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#finish_subsystem" class="summary-sig-name">finish_subsystem</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Perform any cleanup at the end of a subsystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="get_server"></a><span class="summary-sig-name">get_server</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the <a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> object associated with this channel
+ and subsystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#start_subsystem" class="summary-sig-name">start_subsystem</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">transport</span>,
+ <span class="summary-sig-arg">channel</span>)</span><br />
+ Process an ssh subsystem in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>:
+ <code>__repr__</code>,
+ <code>getName</code>,
+ <code>isAlive</code>,
+ <code>isDaemon</code>,
+ <code>join</code>,
+ <code>run</code>,
+ <code>setDaemon</code>,
+ <code>setName</code>,
+ <code>start</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Properties</span></td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Method Details</span></td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">server</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new handler for a channel. This is used by <a
+ href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> to start up a new handler when a channel
+ requests this subsystem. You don't need to override this method, but if
+ you do, be sure to pass the <code>channel</code> and <code>name</code>
+ parameters through to the original <code>__init__</code> method here.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the channel associated with this subsystem request.</li>
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a>) - the server object for the session that started this subsystem</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="finish_subsystem"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">finish_subsystem</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Perform any cleanup at the end of a subsystem. The default
+ implementation just closes the channel.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="start_subsystem"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">start_subsystem</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">transport</span>,
+ <span class="sig-arg">channel</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Process an ssh subsystem in server mode. This method is called on a
+ new object (and in a new thread) for each subsystem request. It is
+ assumed that all subsystem logic will take place here, and when the
+ subsystem is finished, this method will return. After this method
+ returns, the channel is closed.</p>
+ <p>The combination of <code>transport</code> and <code>channel</code> are
+ unique; this handler corresponds to exactly one <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> on one <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>transport</code></strong> (<a href="paramiko.Transport-class.html"
+ class="link">Transport</a>) - the server-mode <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>.</li>
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the channel associated with this subsystem request.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ It is the responsibility of this method to exit if the underlying
+ <a href="paramiko.Transport-class.html" class="link">Transport</a>
+ is closed. This can be done by checking <a
+ href="paramiko.Transport-class.html#is_active"
+ class="link">Transport.is_active</a> or noticing an EOF on the <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>. If
+ this method loops forever without checking for this case, your
+ python interpreter may refuse to exit because this thread will
+ still be running.
+ </p>
+</div></td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>