evennia.server.portal.ssh¶
This module implements the ssh (Secure SHell) protocol for encrypted connections.
This depends on a generic session module that implements the actual login procedure of the game, tracks sessions etc.
Using standard ssh client,
- class evennia.server.portal.ssh.SSHServerFactory[source]¶
Bases:
ServerFactoryThis is only to name this better in logs
- noisy = False¶
- class evennia.server.portal.ssh.SshProtocol(starttuple)[source]¶
Bases:
Manhole,SessionEach account connecting over ssh gets this protocol assigned to them. All communication between game and account goes through here.
- noisy = False¶
- __init__(starttuple)[source]¶
For setting up the account. If account is not None then we’ll login automatically.
- Parameters:
starttuple (tuple) – A (account, factory) tuple.
- terminalSize(width, height)[source]¶
Initialize the terminal and connect to the new session.
- Parameters:
width (int) – Width of terminal.
height (int) – Height of terminal.
- handle_INT()[source]¶
Handle ^C as an interrupt keystroke by resetting the current input variables to their initial state.
- connectionLost(reason=None)[source]¶
This is executed when the connection is lost for whatever reason. It can also be called directly, from the disconnect method.
- Parameters:
reason (str) – Motivation for loosing connection.
- getClientAddress()[source]¶
Get client address.
- Returns:
address_and_port (tuple) –
- The client’s address and port in
a tuple. For example (‘127.0.0.1’, 41917).
- lineReceived(string)[source]¶
Communication User -> Evennia. Any line return indicates a command for the purpose of the MUD. So we take the user input and pass it on to the game engine.
- Parameters:
string (str) – Input text.
- sendLine(string)[source]¶
Communication Evennia -> User. Any string sent should already have been properly formatted and processed before reaching this point.
- Parameters:
string (str) – Output text.
- disconnect(reason='Connection closed. Goodbye for now.')[source]¶
Disconnect from server.
- Parameters:
reason (str) – Motivation for disconnect.
- data_out(**kwargs)[source]¶
Data Evennia -> User
- Keyword Arguments:
kwargs (any) – Options to the protocol.
- send_text(*args, **kwargs)[source]¶
Send text data. This is an in-band telnet operation.
- Parameters:
text (str) – The first argument is always the text string to send. No other arguments are considered.
- Keyword Arguments:
options (dict) –
Send-option flags (booleans)
mxp: enforce mxp link support.
ansi: enforce no ansi colors.
xterm256: enforce xterm256 colors, regardless of ttype setting.
nocolor: strip all colors.
raw: pass string through without any ansi processing (i.e. include evennia ansi markers but do not convert them into ansi tokens)
echo: turn on/off line echo on the client. turn off line echo for client, for example for password. note that it must be actively turned back on again!
- class evennia.server.portal.ssh.ExtraInfoAuthServer[source]¶
Bases:
SSHUserAuthServer- noisy = False¶
- class evennia.server.portal.ssh.AccountDBPasswordChecker(factory)[source]¶
Bases:
objectChecks the django db for the correct credentials for username/password otherwise it returns the account or None which is useful for the Realm.
- noisy = False¶
- credentialInterfaces = (<InterfaceClass twisted.cred.credentials.IUsernamePassword>,)¶
- class evennia.server.portal.ssh.PassAvatarIdTerminalRealm(transportFactory=None)[source]¶
Bases:
TerminalRealmReturns an avatar that passes the avatarId through to the protocol. This is probably not the best way to do it.
- noisy = False¶
- class evennia.server.portal.ssh.TerminalSessionTransport_getPeer(proto, chainedProtocol, avatar, width, height)[source]¶
Bases:
objectTaken from twisted’s TerminalSessionTransport which doesn’t provide getPeer to the transport. This one does.
- noisy = False¶