Server Options #76

Parent #1Owner #361Flags readSource hellcore/hellcore.db

Aliases: Server Options

2 verbs · 27 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
help_msgthis none thisrxd#7620
init_for_corethis none thisrxd#764

Properties

PropertyDefinerFlagsOwnerValue
protect_chparent#76rc#3611
protect_add_verb#76rc#3611
protect_add_property#76rc#3611
protect_recycle#76rc#3611
permit_writable_verbs#76rc#3610
protect_set_verb_info#76rc#3611
queued_task_limit#76rc#36110000
help_msg#76rc#361
list of 32{"\t\tServer Options <$server_options>", " --------------------------------", "", "messages: 'boot_msg', 'connect_msg', 'create_msg', 'recycle_msg', 'redirect_from_msg', 'redirect_to_msg', and 'timeout_msg'.", "A number of the messages printed to a connection by the server under various circumstances can now be customized or eliminated from within the DB. In each case, a property on $server_options is checked at the time the message would be printed. If the property does not exist, the standard message is printed. If the property exists and its value is not a string, then no message is printed at all. Otherwise, the string is printed in place of the standard message. The following list covers all of the newly customizable messages, showing for each the name of the relevant property on $server_options, the default/standard message, and the circumstances under which the message is printed:", "'boot_msg'\t\t\"*** Disconnected ***\"", "The function boot_player() was called on this connection.", "'connect_msg'\t\t\"*** Connected ***\"", "The user object that just logged in on this connection existed before #0:do_login_command() was called.", "'create_msg'\t\t\"*** Created ***\"", "The user object that just logged in on this connection did not exist before #0:do_login_command() was called.", "'recycle_msg'\t\t\"*** Recycled ***\"", "The logged-in user of this connection has been recycled.", "'redirect_from_msg'\t\"*** Redirecting connection to new port ***\"", "The logged-in user of this connection has just logged in on some other connection.", "'redirect_to_msg'\t\"*** Redirecting old connection to this port ***\"", "The user who just logged in on this connection was already logged in on some other connection.", "'timeout_msg'\t\t\"*** Timed-out waiting for login. ***\"", "This in-bound network connection was idle and un-logged-in for at least CONNECT_TIMEOUT seconds (as defined in options.h).", "", "", "Some properties on $server_options can change the server behavior:", "", "'bg_seconds', 'bg_ticks', 'fg_seconds', and 'fg_ticks'.", "If those properties exist and are numbers, the server use them instead of the constants DEFAULT_BG_SECONDS, DEFAULT_BG_TICKS, DEFAULT_FG_SECONDS and DEFAULT_FG_TICKS (respectively) defined at compile time in \"options.h\"; they are looked up anew every time a task begins or resumes execution. Those define ticks (basic operations)/real-time seconds any task is allowed to use without suspending. 'fg' constants/properties are used only for 'foreground' tasks (those started by either player input or the server's initiative and that have never suspended); the 'bg' constants/properties are used only for 'background' tasks (forked tasks and those of any kind that have suspended).", "", "'max_stack_depth' This allow to change in-db the the maximum verb-call depth. Originillay the maximum verb-call depth is defined at compile time by the DEFAULT_MAX_STACK_DEPTH constant in \"options.h\". The maximum stack depth for any task is set at the time that task is created and cannot be changed thereafter. This implies that suspended tasks, even after being saved in and restored from the DB, are not affected by later changes to $server_options.max_stack_depth. ", "", "'queued_task_limit' if this property exist and its value is non-negative, then it is used as the maximum of tasks a verb-owner (more exactly the user's perms the verb run with) can queue (through fork() and suspend()). This setting is overriden if the user has a 'queued_task_limit' property and if its value is non-negative. E_QUOTA is raised of either forking or suspending when the user is over quota for tasks.", "", "'protect_...' On every call to a built-in function 'foo', if the property $server_options.protect_foo exists and is true, and the programmer is not a wizard, then the server checks for the existence of #0:bf_<fuction> and calls that. If it doesn't exist then E_PERM is raised, i.e. the built-in function is made wiz-only.", " --------------------------------"}
support_numeric_verbname_strings#76r#290
connect_msg#76rc#361"*** Connected ***"
protect_force_input#76rc#3611
protect_set_property_info#76r#3611
fg_ticks#76rc#361100000
bg_ticks#76rc#361100000
protect_set_verb_code#76rc#3610
protect_occupants#76rc#3611
name_lookup_timeout#76rc#3611
aliases#1rc#361{"Server Options"}
description#1rc#361<clear>
object_size#1r#29{6910, 1298433815}
hidden_verbs#1rc#361<clear>
phelp_msg#1rc#361<clear>
weight#1rc#361<clear>
owner_verbs#1rc#361<clear>
plural_name#1rc#361<clear>
client_image#1rc#361<clear>
listening#1rc#361<clear>

Ancestry

Ancestors (nearest first): #1 root

Children: none

Call graph

calls n76_0 #76:help_msg n20_48 #20:print n76_0->n20_48 n19_1 #19:intersection n76_0->n19_1 n47_14 #47:sort n76_0->n47_14 n20_6 #20:english_list n76_0->n20_6

Source

help_msg

Spec this none thisFlags rxdOwner #29Definer #76

Referenced by

none

Source

1output = {"On $server_options, the following settings have been established by the wizards:", ""};
2wizonly = {};
3etc = {};
4mentioned = {};
5for x in (setremove(properties(this), "help_msg"))
6if (index(x, "protect_") == 1)
7mentioned = {@mentioned, x[9..$]};
8wizonly = {@wizonly, tostr(x[9..$], "() is ", this.(x) ? "" | "not ", "wizonly.")};
9else
10etc = {@etc, tostr("$server_options.", x, " = ", $string_utils:print(this.(x)))};
11endif
12endfor
13if ("set_verb_code" in wizonly)
14wizonly = {@wizonly, "", "Note: since the 'set_verb_code' built-in function is wiz-only, then the '.program' built-in command is wiz-only too."};
15endif
16if (bf = $set_utils:intersection(verbs(#0), mentioned))
17bf = $list_utils:sort(bf);
18etc = {@etc, "", "In your code, #0:(built-in)(@args) should be called rather than built-in(@args) when you would use one of the following built-in functions:", $string_utils:english_list(bf) + ".", ((("Example: #0:" + bf[1]) + "(@args) should be used instead of ") + bf[1]) + "(@args)"};
19endif
20return {@this.help_msg, @output, @wizonly, "", @etc};

init_for_core

Spec this none thisFlags rxdOwner #361Definer #76

Referenced by

none

Source

1if (!caller_perms().wizard)
2raise(E_PERM);
3endif
4this.support_numeric_verbname_strings = 0;