server_base¶
Module provides class BaseServer.
-
class
BaseServer
(shell=None, _waiter_connected=None, _waiter_closed=None, encoding='utf8', encoding_errors='strict', force_binary=False, connect_maxwait=4.0, limit=None, reader_factory=<class 'telnetlib3.stream_reader.TelnetReader'>, reader_factory_encoding=<class 'telnetlib3.stream_reader.TelnetReaderUnicode'>, writer_factory=<class 'telnetlib3.stream_writer.TelnetWriter'>, writer_factory_encoding=<class 'telnetlib3.stream_writer.TelnetWriterUnicode'>)[source]¶ Bases:
asyncio.streams.FlowControlMixin
,asyncio.protocols.Protocol
Base Telnet Server Protocol.
Class initializer.
-
connect_maxwait
= None¶ maximum duration for
check_negotiation()
.
-
eof_received
()[source]¶ Called when the other end calls write_eof() or equivalent.
This callback may be exercised by the nc(1) client argument
-z
.
-
connection_lost
(exc)[source]¶ Called when the connection is lost or closed.
Parameters: exc (Exception) – exception. None
indicates close by EOF.
-
connection_made
(transport)[source]¶ Called when a connection is made.
Sets attributes
_transport
,_when_connected
,_last_received
,reader
andwriter
.Ensure
super().connection_made(transport)
is called when derived.
-
duration
¶ Time elapsed since client connected, in seconds as float.
-
idle
¶ Time elapsed since data last received, in seconds as float.
-
begin_negotiation
()[source]¶ Begin on-connect negotiation.
A Telnet server is expected to demand preferred session options immediately after connection. Deriving implementations should always call
super().begin_negotiation()
.
-
begin_advanced_negotiation
()[source]¶ Begin advanced negotiation.
Callback method further requests advanced telnet options. Called once on receipt of any
DO
orWILL
acknowledgments received, indicating that the remote end is capable of negotiating further.Only called if sub-classing
begin_negotiation()
causes at least one negotiation option to be affirmatively acknowledged.
-
encoding
(outgoing=False, incoming=False)[source]¶ Encoding that should be used for the direction indicated.
The base implementation always returns the encoding given to class initializer, or, when unset (None),
US-ASCII
.
-
negotiation_should_advance
()[source]¶ Whether advanced negotiation should commence.
Return type: bool Returns: True if advanced negotiation should be permitted. The base implementation returns True if any negotiation options were affirmatively acknowledged by client, more than likely options requested in callback
begin_negotiation()
.
-
check_negotiation
(final=False)[source]¶ Callback, return whether negotiation is complete.
Parameters: final (bool) – Whether this is the final time this callback will be requested to answer regarding protocol negotiation. Returns: Whether negotiation is over (server end is satisfied). Return type: bool Method is called on each new command byte processed until negotiation is considered final, or after
connect_maxwait
has elapsed, setting attribute_waiter_connected
to valueself
when complete.Ensure
super().check_negotiation()
is called and conditionally combined when derived.
-
pause_writing
()¶ Called when the transport’s buffer goes over the high-water mark.
Pause and resume calls are paired – pause_writing() is called once when the buffer goes strictly over the high-water mark (even if subsequent writes increases the buffer size even more), and eventually resume_writing() is called once when the buffer size reaches the low-water mark.
Note that if the buffer size equals the high-water mark, pause_writing() is not called – it must go strictly over. Conversely, resume_writing() is called when the buffer size is equal or lower than the low-water mark. These end conditions are important to ensure that things go as expected when either mark is zero.
NOTE: This is the only Protocol callback that is not called through EventLoop.call_soon() – if it were, it would have no effect when it’s most needed (when the app keeps writing without yielding until pause_writing() is called).
-
resume_writing
()¶ Called when the transport’s buffer drains below the low-water mark.
See pause_writing() for details.
-