UnGateway is a system that provides additional methods for server administration. It's a base system that can easily be extended to support additional protocols.
At the moment it provides a Telnet server with VT102 terminal emulation, it
behaves much like the Bash shell.
The telnet server has been tested with the Linux telnet client and a MS Windows
telnet client: PuTTY. The MS Telnet client that comes with every MS Windows
version also works, but it's advised to use a different telnet client (like
PuTTY, free software).
Security notice: the telnet protocol is plain text, there is no form of encryption. On the side note: the UT2004 webadmin does not have any better protection.
Additionally from version 102 beta the IRC daemon is also functional. The IRC
server works pretty much like any other IRC server, so a normal IRC client
should work.
Not every function of the IRC protocol has been implemented, but at the moment
it's functional.
[Engine.GameEngine] ServerActors=UnGateway.GatewayDaemonThis is all you need to install the system. Now you will have to configure the interfaces and applications.
Applications contain the commands you can enter into the system. There are a couple of application included with the system.
To install a application to have to add it to the application list of the GatewatDaemon in the system configuration:
[UnGateway.GatewayDaemon] ApplicationClasses=<application class 1> ApplicationClasses=<application class 2> ApplicationClasses=...You can add as many application classes as you want.
The following application classes are included with the system:
class name | description |
---|---|
UnGateway.GAppDebug | Contains debug commands, there's no need to install this application |
UnGateway.GAppDefault | Contain default commands like "help" and "quit" |
UnGateway.GAppCron | Provides a cron daemon to program commands to be executed at a set time. |
UGUT2004.GAppSystem | Provides general system commands for UT2004, like shutdown and servertravel |
UGUT2004.GAppSettings | Contains commands to change settings and maplists |
Out of the box UnGateway doesn't do much. You need to configure interfaces and applications that are available. To add an interface add the following to your system configuration:
[UnGateway.GatewayDaemon] InterfaceClasses=<interface class 1> InterfaceClasses=<interface class 2> InterfaceClasses=...
The following interface classes are available:
class name | description |
---|---|
UnGateway.GITelnetd | Telnet server, emulates a VT102 terminal server |
UnGateway.GIIRCd | IRC server |
[UnGateway.GatewayDaemon] Verbose=0 AuthClass=UnGateway.GAuthSystem CmdAliases=(alias="reboot",command="shutdown now \"restarting the server, please return in a couple of second\"") CmdAliases=(alias="p",command="players %@") ...
UnGateway.GAuthSystem
, this will just used the UT2004's AccessControll class to validate the logins.iListenPort=0 bUseNextAvailable=false iMaxClients=10 AccessPolicy=(hostmask="*",policy=AP_Allow) ...
AP_Allow
or AP_Deny
[UnGateway.GAppCron] CronClass=UnGateway.Cron
[UnGateway.Cron] DummyClientClass=UnGateway.CronClient Crontab=(Command="somecommand",Type=EC_Delay,Time="5",Desc="added by Admin",bDisabled=False) ...
field | description |
---|---|
Command | the command to secute |
Type | EC_Delay or EC_Time |
Time | time configuration, format depends on the value of Type. |
Desc | description |
bDisabled | when true the command will never be executed |
EC_Delay
EC_Time
minute hour day month day_of_week
minute: | 0-59 |
hour: | 0-23 |
day: | 0-31 |
month: | 0-11 |
day_of_week: | 0-6 |
[UnGateway.CronClient] bSilent=false bExternalLog=false LogFilename="crondaemon_%P"
%P | server port |
%Y | year |
%M | month |
%D | day |
%H | hour |
%I | minute |
%S | second |
%W | day of the week |
[UnGateway.GCTelnet] CommandPrompt="%username%@%computername%:~$ " iMaxLogin=3 fDelayInitial=0.0 fDelayWrongPassword=5.0 bDisableAuth=false bEnablePager=true bSaveHistory=false CommandHistoryClass=UnGateway.TelnetCommandHistory ChatMode=CM_Disabled bShowMotd=true MOTD=... MOTD=... ...
CM_Disabled | Disabled |
CM_Full | Full chat mode |
CM_Partial | Partial chat mode |
Alt+c | toggle partial chat mode |
Alt+C | full chat mode |
[UnGateway.GCIRC] bShowMotd=true bMustLogin=false MaxChannels=2 bAllowCreateChannel=false MOTD=... MOTD=... ...
Any telnet client should work with the telnet server, however for MS Window I advise you to use the free client PuTTY. It's much better than the standard MS Telnet client.
The rest of the system works pretty much like a GNU BASH shell. Here's an overview of all special keyboard commands:
key | description |
---|---|
backspace | delete the previous character |
tab | perform tab completion to complete the current command. Note: currently this only works for the commands, not the command parameters |
Alt+c | toggle partial chat mode |
Alt+C | enter full chat mode. to exit the full chat mode press Ctrl+D |
Ctrl+A | move the cursor to the beginning of the line |
Ctrl+D | delete the next character, on an empty line: logout |
Ctrl+E | move the cursor to the end of the line |
Ctrl+K | cut the text from the cursor to the end of the line to the clipboard |
Ctrl+Y | paste the current clipboard buffer |
Arrow down | scroll forward in the history |
Arrow left | move the cursor to the left |
Arrow right | move the cursor to the right |
Arrow up | scroll back in the history |
By default the internal pager is enbaled. This means if a command shows more information that you have room on your screen it will start the pager that will allow you to scroll up (PageUp
) and scroll down (PageDown
) to view all data. To exit the pager either press Ctrl+C
or Q
.
The IRC server works pretty much like any other IRC server. However not all functionality is has been implemented.
By default two channels are created, the game channel and the admin channel (&Admin). The name of the game channel is contructed from the server's IP and port. By default the available IRC channels are listed in the MOTD, otherwise you can use the /list
command to list all available channels.
.
(a period). Commands not prefixed with a .
will just be said on the admin channel, other IRC admins logged in on this channel will also see this./oper
command./whois
.