; This file is part of OpenTTD.
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
;

; Network settings as stored in the secrets configuration file ("secrets.cfg").

[pre-amble]
static bool ReplaceAsteriskWithEmptyPassword(std::string &newval);

static const SettingVariant _network_secrets_settings_table[] = {
[post-amble]
};
[templates]
SDTC_SSTR  =  SDTC_SSTR(              $var, $type, SettingFlags({$flags}), $def,             $length,                                  $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),

[validation]

[defaults]
flags    =
interval = 0
str      = STR_NULL
strhelp  = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
strval   = STR_NULL
pre_cb   = nullptr
post_cb  = nullptr
load     = nullptr
from     = SL_MIN_VERSION
to       = SL_MAX_VERSION
cat      = SC_ADVANCED
extra    = 0
startup  = false



[SDTC_SSTR]
var      = network.server_password
type     = SLE_STR
length   = NETWORK_PASSWORD_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def      = """"
pre_cb   = ReplaceAsteriskWithEmptyPassword
post_cb  = [](auto) { NetworkServerUpdateGameInfo(); }
cat      = SC_BASIC

[SDTC_SSTR]
var      = network.rcon_password
type     = SLE_STR
length   = NETWORK_PASSWORD_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def      = """"
pre_cb   = ReplaceAsteriskWithEmptyPassword
cat      = SC_BASIC

[SDTC_SSTR]
var      = network.admin_password
type     = SLE_STR
length   = NETWORK_PASSWORD_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def      = """"
cat      = SC_BASIC

[SDTC_SSTR]
var      = network.client_secret_key
type     = SLE_STR
length   = NETWORK_SECRET_KEY_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def      = """"
; Prevent the user from setting the secret key from the console using 'setting'
pre_cb   = [](auto) { return false; }

[SDTC_SSTR]
var      = network.client_public_key
type     = SLE_STR
length   = NETWORK_SECRET_KEY_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def      = """"
; Prevent the user from setting the public key from the console using 'setting'
pre_cb   = [](auto) { return false; }

[SDTC_SSTR]
var      = network.server_invite_code
type     = SLE_STR
length   = NETWORK_INVITE_CODE_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def      = """"

[SDTC_SSTR]
var      = network.server_invite_code_secret
type     = SLE_STR
length   = NETWORK_INVITE_CODE_SECRET_LENGTH
flags    = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def      = """"
