<spanid="evennia-server-portal-telnet"></span><h1>evennia.server.portal.telnet<aclass="headerlink"href="#module-evennia.server.portal.telnet"title="Permalink to this headline">¶</a></h1>
<p>This module implements the telnet protocol.</p>
<p>This depends on a generic session module that implements
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet.</code><codeclass="sig-name descname">TelnetServerFactory</code><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetServerFactory.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory.logPrefix"title="Permalink to this definition">¶</a></dt>
<dd><p>Describe this factory for log messages.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet.</code><codeclass="sig-name descname">TelnetProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">dataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.dataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.dataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Unused by default, but a good place to put debug printouts
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the connection is first established.</p>
<codeclass="sig-name descname">toggle_nop_keepalive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.toggle_nop_keepalive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.toggle_nop_keepalive"title="Permalink to this definition">¶</a></dt>
<dd><p>Allow to toggle the NOP keepalive for those sad clients that
can’t even handle a NOP instruction. This is turned off by the
protocol_flag NOPKEEPALIVE (settable e.g. by the default
<codeclass="sig-name descname">handshake_done</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">timeout</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.handshake_done"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.handshake_done"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by all telnet extensions once they are finished.
When all have reported, a sync with the server is performed.
The system will force-call this sync after a small time to handle
clients that don’t reply to handshakes at all.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.at_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when this session gets authenticated by the server.</p>
<codeclass="sig-name descname">enableRemote</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.enableRemote"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.enableRemote"title="Permalink to this definition">¶</a></dt>
<dd><p>This sets up the remote-activated options we allow for this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to enable.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>enable (bool)</em>– If this option should be enabled.</p>
<codeclass="sig-name descname">disableRemote</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disableRemote"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disableRemote"title="Permalink to this definition">¶</a></dt>
<dd><p>Signal a programming error by raising an exception.</p>
<p>L{enableRemote} must return true for the given value of C{option} in
order for this method to be called. If a subclass of L{Telnet}
overrides enableRemote to allow certain options to be enabled, it must
also override disableRemote tto disable those options.</p>
<codeclass="sig-name descname">enableLocal</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.enableLocal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.enableLocal"title="Permalink to this definition">¶</a></dt>
<dd><p>Call to allow the activation of options for this protocol</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to enable locally.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>enable (bool)</em>– If this option should be enabled.</p>
<codeclass="sig-name descname">disableLocal</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disableLocal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disableLocal"title="Permalink to this definition">¶</a></dt>
<dd><p>Disable a given option locally.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to disable locally.</p>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>this is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for losing connection.</p>
<codeclass="sig-name descname">applicationDataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.applicationDataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.applicationDataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Telnet method called when non-telnet-command data is coming in
over the telnet connection. We pass it on to the game engine
<codeclass="sig-name descname">sendLine</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">line</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.sendLine"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.sendLine"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook overloading the one used by linereceiver.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>line</strong> (<em>str</em>) – Line to send.</p>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">''</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for the engine to call in order to
disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Reason for disconnecting.</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Data User -> Evennia</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><p><strong>kwargs</strong> (<em>any</em>) – Options from the protocol.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><p><strong>kwargs</strong> (<em>any</em>) – Options to the protocol</p>
<codeclass="sig-name descname">send_text</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This is an in-band telnet operation.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – The first argument is always the text string to send. No other arguments
<codeclass="sig-name descname">send_prompt</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_prompt"title="Permalink to this definition">¶</a></dt>
<dd><p>Send a prompt - a text without a line end. See send_text for argument options.</p>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">cmdname</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_default"title="Permalink to this definition">¶</a></dt>