Code Structure Overview
RSPET’s Server Module
The server module consists of three classes :
API
The API class acts mostly as an interface class for the Server class. For the time being there are a couple of functions that are completely re-implemented in the API class but this is to be changed.
Instance Attributes Table
Attribute Name | Description |
---|---|
server | Server. Instance of Server class. |
Class Functions Table
Function Name | Description |
---|---|
__init__ | Start server. |
call_plugin | Call a Plug-in’s command. |
select | Interface Server’s select function. |
help | Return the entirety of RSPET’s help. |
refresh | Interface Server’s clean function. |
get_server | Return API’s instance of the Server. |
get_hosts | Return hosts. |
quit | Interface Server’s trash function. |
Console
The Console class implements the module’s Command Line Interface (CLI) and acts as an interface between the user and the Server class.
Class Attributes Table
Attribute Name | Description |
---|---|
prompt | String. The command prompt displayed to the user. |
states | Dictionary. Matching state transition strings to the functions carrying out the transition. |
state | String. The state module’s CLI is currently in. |
quit_signal | Boolean. The signal to quit the CLI (and the module itself). |
Instance Attributes Table
Attribute Name | Description |
---|---|
server | Server. Instance of Server class. |
Class Functions Table
Function Name | Description |
---|---|
__init__ | Start server and initialize states. |
trash | Delete Console. |
loop | Main CLI loop. Handles user input. |
_basic | State transition to “basic” state. |
_connected | State transition to “connected” state. |
_multiple | State transition to “multiple” state. |
_all | Interface of _multiple. |
_logo | Print logo and Authorship/License. |
Server
The server class implements the main back-end of the module, managing the server socket, client selections and Plug-ins.
Instance Attributes Table
Attribute Name | Description |
---|---|
ip | String. The IP Address provided to the module’s socket. |
port | String. The port provided to the module’s socket. |
max_conns | Integer. Max simultaneous connections. |
sock | Socket. The module’s socket. |
serial | Integer. Used to assign serialized IDs to clients. |
quit_signal | Boolean. Used to determine when to quit the Server. |
hosts | Dictionary. All clients connected to the server. |
selected | List. All clients selected in the current state. |
plugins | List. All Plug-ins currently loaded. |
log_opt | List. Letters indicating logging level. |
Class Functions Table
Function Name | Description |
---|---|
__init__ | Initializes attributes, loads Plug-ins and starts listening on socket. |
trash | Safely closes all sockets. |
_log | Log event to file. |
loop | Main server loop for accepting connections. Execute on separate thread. |
select | Selects given host(s) based on ids. |
get_selected | Interface function. Return selected hosts. |
get_hosts | Interface function. Return all hosts. |
execute | Execute a command on all selected clients. |
help | Print all the commands available in the current interface allong with their docsting. |
clean | Remove hosts tagged for deletion and unselect all selected hosts. |
quit | Interface function. Raise a Quit signal. |
Host
Each Instance of the Host Class represents a connected client.
Class Attributes Table
Attribute Name | Description |
---|---|
command_dict | Dictionary. Translates command strings with serialized client commands. |
Instance Attributes Table
Attribute Name | Description |
---|---|
deleteme | Boolean. Flag marking Instance for deletion. |
sock | Socket. The socket the client is bound to. |
ip | String. Client’s IP Address. |
port | String. Client’s port. |
id | Integer. A serialized ID. |
version | String. Version of the RSPET module running on client. |
type | String. Type of the RSPET module running on client. |
systemtype | String. Client’s OS info. |
hostname | String. Client’s hostname. |
Class Functions Table
Function Name | Description |
---|---|
__init__ | Accept the connection and initialize variables. |
trash | Gracefully delete host. |
purge | Delete host not so gracefully. |
__eq__ | Check weather two sockets are the same socket. |
send | Send message to client. |
recv | Receive message from client. |
~~_enc~~ | ~~Obfuscate message (before sending).~~ |
~~_dec~~ | ~~Deobfuscate message (after receiving).~~ |
RSPET’s Client Module
No content yet. Will update soon.