Configuration
To use the auth server, you must have a correct configuration. For that two methods are available:
- Use command line switches
- Use a configuration file
For example, changing the ip of the Database server you need to change the variable
auth.db.server
Command line switches
Command line switches use this formats:
Code:
/<variable_name>:<value>
/ can be replaced by
- and
: can be replaced by
=.
This method override values set in the configuration file. The configuration file location can be changed using this method with the variable
configfile.
Example:
Code:
RappelzServerAuth.exe /configfile:auth_for_epic82.conf /admin.telnet.autostart:true /admin.telnet.port:6235 /auth.db.salt:2013
Configuration file
By default, the configuration file is named
auth.opt (This can be overridden by changing
configfile value using the command line)
The file has one configuration value per line with empty lines or lines beginning with the # character ignored (this allows comments)
A configuration file has this format:
Code:
<variable_name>:<value>
<variable_name>=<value>
The separator is : and =. Any spaces are treated as the value or name of the variable (including trailing spaces, only leading spaces before the variable name are ignored)
Example:
Code:
#Database configuration, use FreeTDS on linux to connect to SQL Server database
auth.db.driver:FreeTDS
auth.db.server:192.168.1.103
auth.db.port:1433
auth.db.name:Auth82
auth.db.account:sa
#The password is in plain text if you have one
auth.db.password:
auth.db.salt:2011
#Where clients will connect (this is default values)
auth.clients.ip:0.0.0.0
auth.clients.port:4500
auth.clients.des_key:MERONG
#Where the gameserver will connect (this is default values)
auth.gameserver.ip:0.0.0.0
auth.gameserver.port:4502
#Upload configuration, use "upload" directory for guild icons
upload.dir=upload
upload.clients.ip=0.0.0.0
upload.clients.port=4617
#Use port 5000 for the guild icon mini webserver (the listen ip is upload.clients.ip)
upload.clients.webport:5000
#Where the gameserver will connect (this is default values)
upload.gameserver.ip:0.0.0.0
upload.gameserver.port:4616
Telnet interface
The telnet-like interface is the way to interact with the server.
This allow:
- Change or display a configuration value
- Start or stop a server component (like start the auth client server when all game servers are connected)
This way it's possible to change a server port or change the log level without restarting the emu.
When you connect to the admin server, it shows this:
Code:
Auth server - Administration server
>
After every command, when the server waits for a new command, it sends the command prompt "
> ".
The available commands are:
- get <variable_name>
Show the value of the variable
- set <variable_name> <value>
Set a new value for the variable
- start <server_name>
Start the server server_name. If <server_name> is "all", then start all server with their variable "autostart" set to "true"
- stop <server_name>
Stop the server server_name. If <server_name> is "all" then stop all servers (this will cause the emu to terminate)
In any case, when all servers are stopped (either by using "stop all" or by stopping all servers one by one), the emu will terminate.
Available server names are:
- auth.clients
The auth server listening for clients
- auth.gameserver
The auth server listening for game servers
- upload.clients
The upload server listening for clients for guild icon uploads
- upload.iconserver
The web server listening for clients which download guild icons
- upload.gameserver
The upload server listening for game servers
- admin.telnet
The telnet administration server used to interact with the Emu
To connect to the telnet server, you can use
. To connect to it, use 127.0.0.1 as hostname, 4501 as the port and using RAW or Telnet mode (4501 is the default port, see configuration variable
admin.telnet.port). Change values as needed for your configuration.
Configuration variables
The format used to display configuration variable information is the same between the startup dump and the result of the
get command on a telnet interface.
The format is:
Code:
<type><is_default><variable_name>:<value>
<type> can be:
- B : Boolean
- N : Number (integer)
- F : Float
- S : String
<is_default> can be either a space or a star. If there is a star, the value is the default one. The default value can be dependent on other configuration variable, for example
auth.db.connectionstring use other auth.db.* values.
Example:
Code:
B*auth.gameserver.autostart:true
S*auth.gameserver.ip:0.0.0.0
N auth.gameserver.port:5014
Variables list
Administration configuration
All configuration variables about the telnet server live under
admin.
Variable | Type | Description | Default value |
admin.dump_mode | Integer | Configure crash dump. (Windows only). Set to 1 to disable crash dump generation on a crash, but I will not be able to find out what caused the crash as easily as with the crash dump. Set to any other value to activate crash dump generation. A crash dump usually is less than 1MB and is saved as crashdump.dmp | 0 |
admin.telnet.autostart | Boolean | If true, the telnet server will be started when the Emu start. If set to false, the telnet server will not start disabling the telnet access (there is no way to start it manually after, as the telnet administration will be disabled) | false |
admin.telnet.ip | String | The interface where to listen telnet client. If you put 0.0.0.0, it will accept ANY IP even from internet, so use with care. The telnet server is meant to be the replacement for the console integrated in the official auth. | 127.0.0.1 |
admin.telnet.port | Integer | The port for the telnet server to listen on | 4501 |
Database configuration
All configuration variables about the database live under
auth.db.
Variable | Type | Description | Default value |
auth.db.account | String | The account to use to connect to the database | sa |
auth.db.connectionstring | String | The full connection string. If other configuration values are not enough to configure the ODBC driver, use this, else leave it with default value. For information about connection strings, see there: | The default value is based on other values in auth.db |
auth.db.driver | String | The ODBC driver name. Tell which type of database to use, should rarely be changed unless you use a different type of database. | SQL Server on Windows (installed by default since Windows XP), on Linux |
auth.db.ignoreinitcheck | Boolean | If true, then ignore failure when testing the connection to the database at startup. If false, a failure of the DB test will cause the emu to terminate. | false |
auth.db.name | String | The database name, usually Auth. | Auth |
auth.db.password | String | The password to use to connect to the database | <nothing> |
auth.db.port | Integer | The port of the database server | 1433 |
auth.db.salt | String | The salt to use to check a player's password. The MD5 hash is created like this: <salt><password> (for example: "2011password" if the password of the player is "password" and the salt is "2011" | 2012 |
auth.db.server | String | The database server ip | 127.0.0.1 |
Auth server configuration
This configure how clients and gameservers must connect to the auth server.
All configuration variables about the auth server live under
auth.clients and
auth.gameserver.
Variable | Type | Description | Default value |
auth.clients.autostart | Boolean | If true, the auth client server will listen for clients automatically at startup. If false you will need the telnet server and type "start auth.clients" to start listening for clients | true |
auth.clients.des_key | String | The DES key to use for the authentication method prior to 8.1. This should never be changed unless you know what you do. | MERONG |
auth.clients.ip | String | The interface IP to listen on. Use 0.0.0.0 for all interface or the IP of one network interface to listen on only one interface | 0.0.0.0 |
auth.clients.port | Integer | The port to listen on for clients | 4500 |
auth.gameserver.autostart | Boolean | If true, the server will listen for gameservers automatically at startup. If false you will need the telnet server and type "start auth.gameserver" to start listening for gameservers | true |
auth.gameserver.ip | String | The interface IP to listen on. Use 0.0.0.0 for all interface or the IP of one network interface to listen on only one interface | 0.0.0.0 |
auth.gameserver.port | Integer | The port to listen on for gameservers | 4502 |
Upload server configuration
This configure how game servers must connect to the auth server.
All configuration variables about the auth gameserver server live under
auth.gameserver.
Variable | Type | Description | Default value |
upload.clients.autostart | Boolean | If true, the upload client server will listen for clients automatically at startup. If false you will need the telnet server and type "start upload.clients" and "start upload.iconserver" to start listening for clients and start the mini webserver | true |
upload.clients.ip | String | The interface IP to listen on. Use 0.0.0.0 for all interface or the IP of one network interface to listen on only one interface. The IP is used to listen both connections from clients to upload.clients.port and upload.clients.webport | 0.0.0.0 |
upload.clients.port | Integer | The port to listen on for clients | 4617 |
upload.clients.webport | Integer | The webserver port to listen on for clients. Clients will connect to this port to retrieve the icon file. Port numbers lower than 1024 require the server to be started with admin privileges. | 80 |
upload.gameserver.autostart | Boolean | If true, the server will listen for gameservers automatically at startup. If false you will need the telnet server and type "start upload.gameserver" to start listening for gameservers | true |
upload.gameserver.ip | String | The interface IP to listen on. Use 0.0.0.0 for all interface or the IP of one network interface to listen on only one interface | 0.0.0.0 |
upload.gameserver.port | Integer | The port to listen on for gameservers | 4616 |
upload.dir | String | The directory where to put guild icon files. If the directory is not an absolute path, it is relative to where the Emu is | upload |
The value of app.name of game servers must contains only letters (a-z and A-Z), digits (0-9), _ or -
Here is an example of guild icon configuration for the gameserver.opt:
Code:
S game.guild_icon_base_url:/
S game.url_list:guild_icon_upload.ip|< auth emu external IP>|guild_icon_upload.port|< upload.clients.port>|guild_test_download.url|upload/|web_download|<auth emu external IP>:<upload.clients.webport>
Miscellaneous variables
Variable | Type | Description | Default value |
ban.ipfile | String | The filename that list banned IPs. The file must have one IP per line in the form of: x.x.x.x | bannedip.txt |
configfile | String | The configuration filename. Only the command line has an effect, it's used to change the config file to use | auth.opt |
core.appname | String | The application name. Provided only for information purpose and is not currently used anywhere | RappelzAuthEmu |
core.log.consolelevel | String | The log level for the console. Available values are: "fatal", "error", "warning", "info", "debug" and "trace" | <value of core.log.level> |
core.log.dir | String | The directory where to put log files | log |
core.log.enablefile | Boolean | If true, log data is written to the file <core.log.dir>/<core.log.file>. If false, no log file is written | true |
core.log.file | String | The filename of the log file | auth.log |
core.log.level | String | The log level. The level is used for the file and for the console if core.log.consolelevel has not been set to another value. Available values are: "fatal", "error", "warning", "info", "debug" and "trace" | info |
core.trafficdump values are not used at this time. Their goal is to allow dumping all data received and sent to and from the Emu.
Informative variables
Variable | Type | Description | Default value |
core.version | String | Tell the version of the core library (RappelzLib.dll if provided in a separated file) (Linux only) and the build date (UTC) | Depends on the build |
global.version | String | Tell the version of the Auth Emu server (Linux only) and the build date (UTC) | Depends on the build |
stats.connections | Integer | The number of connections opened by clients or game servers | 0 |
stats.disconnections | Integer | The number of disconnections opened by clients or game servers | 0 |
To get the current opened connections to the Emu, calculate stats.connections - stats.disconnections.