Quake II RTX doxygen
1.0 dev
|
|
#include "server.h"
#include "client/input.h"
Go to the source code of this file.
|
| LIST_DECL (sv_masterlist) |
|
| LIST_DECL (sv_banlist) |
|
| LIST_DECL (sv_blacklist) |
|
| LIST_DECL (sv_cmdlist_connect) |
|
| LIST_DECL (sv_cmdlist_begin) |
|
| LIST_DECL (sv_filterlist) |
|
| LIST_DECL (sv_clientlist) |
|
void | SV_RemoveClient (client_t *client) |
|
void | SV_CleanClient (client_t *client) |
|
static void | print_drop_reason (client_t *client, const char *reason, clstate_t oldstate) |
|
void | SV_DropClient (client_t *client, const char *reason) |
|
qboolean | SV_RateLimited (ratelimit_t *r) |
|
void | SV_RateRecharge (ratelimit_t *r) |
|
static unsigned | rate2credits (unsigned rate) |
|
void | SV_RateInit (ratelimit_t *r, const char *s) |
|
addrmatch_t * | SV_MatchAddress (list_t *list, netadr_t *addr) |
|
static size_t | SV_StatusString (char *status) |
|
static void | SVC_Status (void) |
|
static void | SVC_Ack (void) |
|
static void | SVC_Info (void) |
|
static void | SVC_Ping (void) |
|
static void | SVC_GetChallenge (void) |
|
static qboolean | parse_basic_params (conn_params_t *p) |
|
static qboolean | permit_connection (conn_params_t *p) |
|
static qboolean | parse_packet_length (conn_params_t *p) |
|
static qboolean | parse_enhanced_params (conn_params_t *p) |
|
static char * | userinfo_ip_string (void) |
|
static qboolean | parse_userinfo (conn_params_t *params, char *userinfo) |
|
static client_t * | redirect (const char *addr) |
|
static client_t * | find_client_slot (conn_params_t *params) |
|
static void | init_pmove_and_es_flags (client_t *newcl) |
|
static void | send_connect_packet (client_t *newcl, int nctype) |
|
static void | append_extra_userinfo (conn_params_t *params, char *userinfo) |
|
static void | SVC_DirectConnect (void) |
|
static qboolean | rcon_valid (void) |
|
static void | SVC_RemoteCommand (void) |
|
static void | SV_ConnectionlessPacket (void) |
|
int | SV_CountClients (void) |
|
static int | ping_nop (client_t *cl) |
|
static int | ping_min (client_t *cl) |
|
static int | ping_avg (client_t *cl) |
|
static void | SV_CalcPings (void) |
|
static void | SV_GiveMsec (void) |
|
static void | SV_PacketEvent (void) |
|
static void | SV_CheckTimeouts (void) |
|
static void | SV_PrepWorldFrame (void) |
|
static qboolean | check_paused (void) |
|
static void | SV_RunGameFrame (void) |
|
static void | SV_MasterHeartbeat (void) |
|
static void | SV_MasterShutdown (void) |
|
unsigned | SV_Frame (unsigned msec) |
|
void | SV_UserinfoChanged (client_t *cl) |
|
static void | sv_status_limit_changed (cvar_t *self) |
|
static void | sv_auth_limit_changed (cvar_t *self) |
|
static void | sv_rcon_limit_changed (cvar_t *self) |
|
static void | init_rate_limits (void) |
|
static void | sv_namechange_limit_changed (cvar_t *self) |
|
void | SV_Init (void) |
|
static void | SV_FinalMessage (const char *message, error_type_t type) |
|
void | SV_Shutdown (const char *finalmsg, error_type_t type) |
|
◆ __reject
◆ CREDITS_PER_MSEC
#define CREDITS_PER_MSEC 32 |
◆ CREDITS_PER_SEC
◆ RATE_LIMIT_SCALE
#define RATE_LIMIT_SCALE 10000 |
◆ reject
#define reject |
( |
|
... | ) |
__reject(__VA_ARGS__), qfalse |
◆ reject2
#define reject2 |
( |
|
... | ) |
__reject(__VA_ARGS__), NULL |
◆ append_extra_userinfo()
Definition at line 1044 of file main.c.
1046 if (!(
g_features->integer & GMF_EXTRA_USERINFO)) {
1047 userinfo[strlen(userinfo) + 1] = 0;
1051 Q_snprintf(userinfo + strlen(userinfo) + 1, MAX_INFO_STRING,
1052 "\\challenge\\%d\\ip\\%s"
1053 "\\major\\%d\\minor\\%d\\netchan\\%d"
1054 "\\packetlen\\%d\\qport\\%d\\zlib\\%d",
Referenced by SVC_DirectConnect().
◆ check_paused()
static qboolean check_paused |
( |
void |
| ) |
|
|
inlinestatic |
Definition at line 1671 of file main.c.
1677 if (!cl_paused->integer)
1687 if (!LIST_EMPTY(&mvd_gtv_list))
Referenced by SV_Frame().
◆ find_client_slot()
◆ init_pmove_and_es_flags()
Definition at line 969 of file main.c.
979 if (newcl->
protocol >= PROTOCOL_VERSION_R1Q2) {
980 newcl->
pmp.speedmult = 2;
986 if (newcl->
protocol == PROTOCOL_VERSION_R1Q2) {
987 newcl->
esFlags |= MSG_ES_BEAMORIGIN;
988 if (newcl->
version >= PROTOCOL_VERSION_R1Q2_LONG_SOLID) {
989 newcl->
esFlags |= MSG_ES_LONGSOLID;
995 if (newcl->
protocol == PROTOCOL_VERSION_Q2PRO) {
999 newcl->
pmp.flyhack = qtrue;
1000 newcl->
pmp.flyfriction = 4;
1001 newcl->
esFlags |= MSG_ES_UMASK;
1002 if (newcl->
version >= PROTOCOL_VERSION_Q2PRO_LONG_SOLID) {
1003 newcl->
esFlags |= MSG_ES_LONGSOLID;
1005 if (newcl->
version >= PROTOCOL_VERSION_Q2PRO_BEAM_ORIGIN) {
1006 newcl->
esFlags |= MSG_ES_BEAMORIGIN;
1008 if (newcl->
version >= PROTOCOL_VERSION_Q2PRO_WATERJUMP_HACK) {
Referenced by SVC_DirectConnect().
◆ init_rate_limits()
◆ LIST_DECL() [1/7]
◆ LIST_DECL() [2/7]
◆ LIST_DECL() [3/7]
◆ LIST_DECL() [4/7]
◆ LIST_DECL() [5/7]
◆ LIST_DECL() [6/7]
◆ LIST_DECL() [7/7]
◆ parse_basic_params()
◆ parse_enhanced_params()
Definition at line 762 of file main.c.
766 if (p->
protocol == PROTOCOL_VERSION_R1Q2) {
772 PROTOCOL_VERSION_R1Q2_MINIMUM,
773 PROTOCOL_VERSION_R1Q2_CURRENT);
775 p->
version = PROTOCOL_VERSION_R1Q2_MINIMUM;
779 }
else if (p->
protocol == PROTOCOL_VERSION_Q2PRO) {
785 return reject(
"Invalid netchan type.\n");
803 PROTOCOL_VERSION_Q2PRO_MINIMUM,
804 PROTOCOL_VERSION_Q2PRO_CURRENT);
805 if (p->
version == PROTOCOL_VERSION_Q2PRO_RESERVED) {
809 p->
version = PROTOCOL_VERSION_Q2PRO_MINIMUM;
Referenced by SVC_DirectConnect().
◆ parse_packet_length()
◆ parse_userinfo()
static qboolean parse_userinfo |
( |
conn_params_t * |
params, |
|
|
char * |
userinfo |
|
) |
| |
|
static |
Definition at line 836 of file main.c.
843 return reject(
"Empty userinfo string.\n");
846 return reject(
"Malformed userinfo string.\n");
849 s[MAX_CLIENT_NAME - 1] = 0;
851 return reject(
"Please set your name before connecting.\n");
857 return reject(
"Please set your password before connecting.\n");
860 return reject(
"Invalid password.\n");
863 return reject(
"Invalid password.\n");
879 if (strncmp(s,
"q2rtx", 5) != 0)
881 return reject(
"This server is only available to Q2RTX clients.\n");
886 Q_strlcpy(userinfo, info, MAX_INFO_STRING);
889 if (!(
g_features->integer & GMF_EXTRA_USERINFO)) {
900 return reject(
"Oversize userinfo string.\n");
Referenced by SVC_DirectConnect().
◆ permit_connection()
Definition at line 655 of file main.c.
675 return reject(
"Bad challenge.\n");
680 return reject(
"No challenge for address.\n");
688 s =
"Your IP address is banned from this server.";
690 return reject(
"%s\nConnection refused.\n", s);
695 return reject(
"Server is locked.\n");
705 netadr_t *adr = &
cl->netchan->remote_address;
711 if (
net_from.type == NA_IP6 && memcmp(
net_from.ip.u8, adr->ip.u8, 48 / CHAR_BIT))
721 return reject(
"Too many connections from your IPv6 network.\n");
723 return reject(
"Too many connections from your IP address.\n");
Referenced by SVC_DirectConnect().
◆ ping_avg()
Definition at line 1334 of file main.c.
1337 int i, j, total = 0, count = 0;
1339 for (i = 0; i < UPDATE_BACKUP; i++) {
1340 j =
cl->framenum - i - 1;
1341 frame = &
cl->
frames[j & UPDATE_MASK];
1350 return count ? total / count : 0;
Referenced by SV_CalcPings().
◆ ping_min()
Definition at line 1315 of file main.c.
1318 int i, j, count = INT_MAX;
1320 for (i = 0; i < UPDATE_BACKUP; i++) {
1321 j =
cl->framenum - i - 1;
1322 frame = &
cl->
frames[j & UPDATE_MASK];
1331 return count == INT_MAX ? 0 : count;
Referenced by SV_CalcPings().
◆ ping_nop()
◆ print_drop_reason()
Definition at line 165 of file main.c.
167 int announce = oldstate ==
cs_spawned ? 2 : 1;
168 const char *prefix =
" was dropped: ";
171 if (*reason ==
'!') {
175 if (*reason ==
'?') {
188 client->
name, prefix, reason);
194 client->
name, prefix, reason);
197 if (COM_DEDICATED && client->
netchan)
198 Com_Printf(
"%s[%s]%s%s\n", client->
name,
Referenced by SV_DropClient().
◆ rate2credits()
static unsigned rate2credits |
( |
unsigned |
rate | ) |
|
|
static |
◆ rcon_valid()
static qboolean rcon_valid |
( |
void |
| ) |
|
|
static |
◆ redirect()
static client_t* redirect |
( |
const char * |
addr | ) |
|
|
static |
◆ send_connect_packet()
Definition at line 1015 of file main.c.
1017 const char *ncstring =
"";
1018 const char *acstring =
"";
1019 const char *dlstring1 =
"";
1020 const char *dlstring2 =
"";
1022 if (newcl->
protocol == PROTOCOL_VERSION_Q2PRO) {
1023 if (nctype == NETCHAN_NEW)
1033 dlstring1 =
" dlserver=";
1038 ncstring, acstring, dlstring1, dlstring2, newcl->
mapname);
Referenced by SVC_DirectConnect().
◆ sv_auth_limit_changed()
static void sv_auth_limit_changed |
( |
cvar_t * |
self | ) |
|
|
static |
◆ SV_CalcPings()
Definition at line 1360 of file main.c.
1377 cl->ping = calc(
cl);
1379 if (
cl->ping <
cl->min_ping) {
1380 cl->min_ping =
cl->ping;
1381 }
else if (
cl->ping >
cl->max_ping) {
1382 cl->max_ping =
cl->ping;
1385 cl->avg_ping_time +=
cl->ping;
1386 cl->avg_ping_count++;
1390 cl->moves_per_sec =
cl->num_moves / 10;
1395 cl->moves_per_sec = 0;
1400 cl->edict->client->ping =
cl->ping;
Referenced by SV_Frame().
◆ SV_CheckTimeouts()
Definition at line 1583 of file main.c.
1587 unsigned drop_time = 1000 *
sv_timeout->value;
1594 if (NET_IsLocalAddress(&client->
netchan->remote_address)) {
1600 if (delta > zombie_time) {
1610 if (client->unreachable) {
1611 if (delta > ghost_time) {
1618 if (delta > drop_time || (client->
state ==
cs_assigned && delta > ghost_time)) {
1630 if (idle_time && delta > idle_time) {
Referenced by SV_Frame().
◆ SV_CleanClient()
Definition at line 135 of file main.c.
139 string_entry_t *bad, *next;
141 for (bad = client->ac_bad_files; bad; bad = next) {
145 client->ac_bad_files = NULL;
Referenced by SV_DropClient(), and SV_FinalMessage().
◆ SV_ConnectionlessPacket()
static void SV_ConnectionlessPacket |
( |
void |
| ) |
|
|
static |
Definition at line 1247 of file main.c.
1249 char string[MAX_STRING_CHARS];
1255 Com_DPrintf(
"ignored blackholed connectionless packet\n");
1263 if (len >=
sizeof(
string)) {
1264 Com_DPrintf(
"ignored oversize connectionless packet\n");
1273 if (!strcmp(
c,
"rcon")) {
1279 Com_DPrintf(
"ignored connectionless packet\n");
1283 for (i = 0;
svcmds[i].name; i++) {
1284 if (!strcmp(
c,
svcmds[i].name)) {
1290 Com_DPrintf(
"bad connectionless packet\n");
Referenced by SV_PacketEvent().
◆ SV_CountClients()
◆ SV_DropClient()
void SV_DropClient |
( |
client_t * |
client, |
|
|
const char * |
reason |
|
) |
| |
Definition at line 212 of file main.c.
219 oldstate = client->
state;
234 ge->ClientDisconnect(client->
edict);
241 Com_DPrintf(
"Going to cs_zombie for %s\n", client->
name);
Referenced by AC_ClientBegin(), AC_ClientToken(), AC_ParseDisconnect(), AC_ParseFileViolation(), AC_ParseQueryReply(), AC_ParseViolation(), add_message_old(), add_msg_packet(), find_client_slot(), handle_filtercmd(), mvd_disable(), SV_Begin_f(), SV_CheckTimeouts(), SV_Disconnect_f(), SV_ExecuteClientMessage(), SV_Kick_f(), SV_New_f(), SV_NewClientExecuteMove(), SV_OldClientExecuteMove(), SV_ParseClientCommand(), SV_ParseDeltaUserinfo(), SV_ParseFullUserinfo(), SV_SendClientMessages(), and SV_UpdateUserinfo().
◆ SV_FinalMessage()
static void SV_FinalMessage |
( |
const char * |
message, |
|
|
error_type_t |
type |
|
) |
| |
|
static |
Definition at line 2196 of file main.c.
2211 if (type == ERR_RECONNECT)
2218 for (i = 0; i < 2; i++) {
2224 while (netchan->fragment_pending) {
2225 netchan->TransmitNextFragment(netchan);
Referenced by SV_Shutdown().
◆ SV_Frame()
unsigned SV_Frame |
( |
unsigned |
msec | ) |
|
Definition at line 1830 of file main.c.
1833 time_before_game = time_after_game = 0;
1839 if (COM_DEDICATED) {
1895 if (COM_DEDICATED) {
Referenced by Qcommon_Frame().
◆ SV_GiveMsec()
◆ SV_Init()
Definition at line 2064 of file main.c.
2078 Cvar_Get(
"protocol", STRINGIFY(PROTOCOL_VERSION_DEFAULT), CVAR_SERVERINFO | CVAR_ROM);
2080 Cvar_Get(
"skill",
"1", CVAR_LATCH);
2081 Cvar_Get(
"deathmatch",
"1", CVAR_SERVERINFO | CVAR_LATCH);
2083 Cvar_Get(
"cheats",
"0", CVAR_SERVERINFO | CVAR_LATCH);
2084 Cvar_Get(
"dmflags",
va(
"%i", DF_INSTANT_ITEMS), CVAR_SERVERINFO);
2085 Cvar_Get(
"fraglimit",
"0", CVAR_SERVERINFO);
2086 Cvar_Get(
"timelimit",
"0", CVAR_SERVERINFO);
2102 sv_fps =
Cvar_Get(
"sv_fps",
"10", CVAR_LATCH);
2118 sv_debug =
Cvar_Get(
"sv_debug",
"0", 0);
2119 sv_pad_packets =
Cvar_Get(
"sv_pad_packets",
"0", 0);
2129 sv_packetdup_hack =
Cvar_Get(
"sv_packetdup_hack",
"0", 0);
2171 sv.frametime = BASE_FRAMETIME;
2178 SV_SetConsoleTitle();
Referenced by Qcommon_Init().
◆ SV_MasterHeartbeat()
Definition at line 1754 of file main.c.
1756 char buffer[MAX_PACKETLEN_DEFAULT];
1772 memcpy(buffer,
"\xff\xff\xff\xffheartbeat\n", 14);
1781 Com_DPrintf(
"Sending heartbeat to %s\n",
Referenced by SV_Frame().
◆ SV_MasterShutdown()
Definition at line 1795 of file main.c.
1813 Com_DPrintf(
"Sending shutdown to %s\n",
1815 OOB_PRINT(NS_SERVER, &
m->adr,
"shutdown");
Referenced by SV_Shutdown().
◆ SV_MatchAddress()
addrmatch_t* SV_MatchAddress |
( |
list_t * |
list, |
|
|
netadr_t * |
addr |
|
) |
| |
◆ sv_namechange_limit_changed()
static void sv_namechange_limit_changed |
( |
cvar_t * |
self | ) |
|
|
static |
◆ SV_PacketEvent()
Definition at line 1431 of file main.c.
1451 if (!NET_IsEqualBaseAdr(&
net_from, &netchan->remote_address)) {
1457 if (client->
protocol == PROTOCOL_VERSION_DEFAULT) {
1459 if (netchan->qport != qport) {
1462 }
else if (netchan->qport) {
1464 if (netchan->qport != qport) {
1468 if (netchan->remote_address.port !=
net_from.port) {
1473 if (netchan->remote_address.port !=
net_from.port) {
1474 Com_DPrintf(
"Fixing up a translated port for %s: %d --> %d\n",
1475 client->
name, netchan->remote_address.port,
net_from.port);
1476 netchan->remote_address.port =
net_from.port;
1479 if (!netchan->Process(netchan))
1488 client->unreachable = qfalse;
1490 if (netchan->dropped > 0)
Referenced by SV_Frame().
◆ SV_PrepWorldFrame()
Definition at line 1645 of file main.c.
1651 if (
sv.
state == ss_broadcast) {
1662 for (i = 1; i <
ge->num_edicts; i++) {
Referenced by SV_Frame().
◆ SV_RateInit()
Definition at line 309 of file main.c.
311 unsigned limit, period, mult, burst, rate;
314 limit = strtoul(s, &p, 10);
316 period = strtoul(p + 1, &p, 10);
317 if (*p ==
's' || *p ==
'S') {
320 }
else if (*p ==
'm' || *p ==
'M') {
323 }
else if (*p ==
'h' || *p ==
'H') {
340 memset(r, 0,
sizeof(*r));
345 Com_Printf(
"Period too large: %u\n", period);
353 burst = strtoul(p + 1, NULL, 10);
359 if (burst > UINT_MAX / rate) {
360 Com_Printf(
"Burst too large: %u\n", burst);
Referenced by init_rate_limits(), sv_auth_limit_changed(), sv_namechange_limit_changed(), sv_rcon_limit_changed(), sv_status_limit_changed(), and SVC_DirectConnect().
◆ SV_RateLimited()
◆ SV_RateRecharge()
◆ sv_rcon_limit_changed()
static void sv_rcon_limit_changed |
( |
cvar_t * |
self | ) |
|
|
static |
◆ SV_RemoveClient()
◆ SV_RunGameFrame()
Definition at line 1713 of file main.c.
1719 if (host_speeds->integer)
1731 if (host_speeds->integer)
1736 Com_WPrintf(
"Game left %"PRIz
" bytes "
1737 "in multicast buffer, cleared.\n",
Referenced by SV_Frame().
◆ SV_Shutdown()
void SV_Shutdown |
( |
const char * |
finalmsg, |
|
|
error_type_t |
type |
|
) |
| |
Definition at line 2252 of file main.c.
2277 memset(&
sv, 0,
sizeof(
sv));
2285 memset(&
svs, 0,
sizeof(
svs));
2292 sv.frametime = BASE_FRAMETIME;
2302 SV_SetConsoleTitle();
Referenced by CL_Connect_f(), CL_PassiveConnect_f(), CL_PlayDemo_f(), Com_Error(), Com_Quit(), read_server_file(), SV_InitGame(), and SV_KillServer_f().
◆ sv_status_limit_changed()
static void sv_status_limit_changed |
( |
cvar_t * |
self | ) |
|
|
static |
◆ SV_StatusString()
static size_t SV_StatusString |
( |
char * |
status | ) |
|
|
static |
Definition at line 401 of file main.c.
403 char entry[MAX_STRING_CHARS];
427 if (total + 8 + len < MAX_INFO_STRING) {
428 memcpy(status + total,
"\\uptime\\", 8);
429 memcpy(status + total + 8, entry, len);
434 status[total++] =
'\n';
444 cl->edict->client->ps.stats[STAT_FRAGS],
446 if (len >=
sizeof(entry)) {
452 memcpy(status + total, entry, len);
Referenced by SV_MasterHeartbeat(), and SVC_Status().
◆ SV_UserinfoChanged()
Definition at line 1927 of file main.c.
1929 char name[MAX_CLIENT_NAME];
1935 ge->ClientUserinfoChanged(
cl->edict,
cl->userinfo);
1939 len =
Q_strlcpy(name, val,
sizeof(name));
1940 if (len >=
sizeof(name)) {
1941 len =
sizeof(name) - 1;
1944 for (i = 0; i < len; i++)
1946 if (
cl->name[0] && strcmp(
cl->name, name)) {
1947 if (COM_DEDICATED) {
1948 Com_Printf(
"%s[%s] changed name to %s\n",
cl->name,
1952 if (
sv.
state == ss_broadcast) {
1961 memcpy(
cl->name, name, len + 1);
1966 cl->rate = atoi(val);
1967 clamp(
cl->rate, 100, 15000);
1973 if (NET_IsLocalAddress(&
cl->netchan->remote_address)) {
1979 NET_IsLanAddress(&
cl->netchan->remote_address)) {
1986 cl->messagelevel = atoi(val);
1987 clamp(
cl->messagelevel, PRINT_LOW, PRINT_CHAT + 1);
Referenced by dummy_create(), SV_UpdateUserinfo(), and SVC_DirectConnect().
◆ SVC_Ack()
Definition at line 500 of file main.c.
508 if (NET_IsEqualBaseAdr(&
m->adr, &
net_from)) {
509 Com_DPrintf(
"Ping acknowledge from %s\n",
◆ SVC_DirectConnect()
Definition at line 1060 of file main.c.
1062 char userinfo[MAX_INFO_STRING * 2];
1069 memset(¶ms, 0,
sizeof(params));
1093 memset(newcl, 0,
sizeof(*newcl));
1103 newcl->
pool = (edict_pool_t *)&
ge->edicts;
1111 newcl->framediv =
sv.framediv;
1112 newcl->
settings[CLS_FPS] = BASE_FRAMERATE;
1122 allow =
ge->ClientConnect(newcl->
edict, userinfo);
1128 __reject(
"%s\nConnection refused.\n", reason);
1153 if (newcl->
protocol == PROTOCOL_VERSION_DEFAULT) {
1160 if (NET_IsLocalAddress(&
net_from)) {
1167 Com_DPrintf(
"Going from cs_free to cs_assigned for %s\n", newcl->
name);
◆ SVC_GetChallenge()
Definition at line 569 of file main.c.
576 oldestTime = 0xffffffff;
591 challenge = ((rand() << 16) | rand()) & 0x7fffffff;
604 "challenge %u p=34,35,36", challenge);
◆ SVC_Info()
Definition at line 525 of file main.c.
527 char buffer[MAX_QPATH+10];
535 if (version < PROTOCOL_VERSION_DEFAULT || version > PROTOCOL_VERSION_Q2PRO)
539 "\xff\xff\xff\xffinfo\n%16s %8s %2i/%2i\n",
◆ SVC_Ping()
◆ SVC_RemoteCommand()
Definition at line 1195 of file main.c.
1200 Com_DPrintf(
"Dropping rcon from %s\n",
1207 Com_Printf(
"Invalid rcon from %s:\n%s\n",
1210 "print\nBad rcon_password.\n");
Referenced by SV_ConnectionlessPacket().
◆ SVC_Status()
Definition at line 469 of file main.c.
471 char buffer[MAX_PACKETLEN_DEFAULT];
479 Com_DPrintf(
"Dropping status request from %s\n",
485 memcpy(buffer,
"\xff\xff\xff\xffprint\n", 10);
◆ userinfo_ip_string()
static char* userinfo_ip_string |
( |
void |
| ) |
|
|
static |
◆ g_features
Definition at line 99 of file main.c.
Referenced by append_extra_userinfo(), create_baselines(), dummy_create(), entity_is_active(), parse_userinfo(), PF_StartSound(), player_is_active(), read_server_file(), set_frame_time(), SV_BuildClientFrame(), SV_DropClient(), SV_Init(), SV_NoSaveGames(), SV_Savegame_f(), and userinfo_ip_string().
◆ map_override_path
cvar_t* map_override_path |
◆ sv_airaccelerate
◆ sv_allow_map
◆ sv_allow_nodelta
◆ sv_allow_unconnected_cmds
cvar_t* sv_allow_unconnected_cmds |
◆ sv_auth_limit
◆ sv_calcpings_method
cvar_t* sv_calcpings_method |
◆ sv_changemapcmd
◆ sv_client
Definition at line 32 of file main.c.
Referenced by AC_CheckTimeouts(), AC_Info_f(), AC_ParseQueryReply(), create_baselines(), dummy_command(), dummy_create(), dummy_run(), dummy_spawn(), handle_filtercmd(), PF_Pmove(), stuff_cmds(), stuff_junk(), SV_Begin_f(), SV_BeginDownload_f(), SV_ClientThink(), SV_CvarResult_f(), SV_Disconnect_f(), SV_DumpUser_f(), SV_ExecuteClientMessage(), SV_ExecuteUserCommand(), SV_FlushRedirect(), SV_Kick_f(), SV_Lag_f(), SV_New_f(), SV_NewClientExecuteMove(), SV_NextDownload_f(), SV_NoGameData_f(), SV_OldClientExecuteMove(), SV_ParseClientCommand(), SV_ParseClientSetting(), SV_ParseDeltaUserinfo(), SV_ParseFullUserinfo(), SV_PrintMiscInfo(), SV_SetLastFrame(), SV_SetPlayer(), SV_Shutdown(), SV_StopDownload_f(), SV_Stuff_f(), SV_StuffCvar_f(), SV_UpdateUserinfo(), SVC_DirectConnect(), write_baseline(), write_plain_baselines(), and write_plain_configstrings().
◆ sv_downloadserver
cvar_t* sv_downloadserver |
◆ sv_enforcetime
◆ sv_enhanced_setplayer
cvar_t* sv_enhanced_setplayer |
◆ sv_force_reconnect
cvar_t* sv_force_reconnect |
◆ sv_ghostime
◆ sv_hostname
◆ sv_idlekick
◆ sv_iplimit
◆ sv_lan_force_rate
cvar_t* sv_lan_force_rate |
◆ sv_locked
◆ sv_maxclients
Definition at line 58 of file main.c.
Referenced by AC_Info_f(), AC_ParseClient(), build_gamestate(), dummy_find_slot(), emit_frame(), find_client_slot(), MVD_GameInit(), PF_centerprintf(), PF_cprintf(), PF_Unicast(), player_is_active(), players_active(), SV_AutoSaveBegin(), SV_GetPlayer(), SV_Init(), SV_InitGame(), SV_InitGameProgs(), SV_Map(), SV_MvdInit(), SV_PickClient_f(), SV_Savegame_f(), SV_SpawnServer(), SV_StatusString(), SVC_DirectConnect(), and SVC_Info().
◆ sv_namechange_limit
cvar_t* sv_namechange_limit |
◆ sv_novis
◆ sv_password
◆ sv_pending_autosave
qboolean sv_pending_autosave = 0 |
◆ sv_player
Definition at line 33 of file main.c.
Referenced by AC_CheckTimeouts(), AC_ParseQueryReply(), dummy_command(), dummy_create(), dummy_run(), dummy_spawn(), SV_Begin_f(), SV_ClientThink(), SV_DumpUser_f(), SV_ExecuteClientMessage(), SV_ExecuteUserCommand(), SV_Kick_f(), SV_SetPlayer(), SV_Shutdown(), SV_Stuff_f(), SV_StuffCvar_f(), and SVC_DirectConnect().
◆ sv_pmp
◆ sv_public
◆ sv_qwmod
◆ sv_rcon_limit
◆ sv_recycle
◆ sv_redirect_address
cvar_t* sv_redirect_address |
◆ sv_registered
◆ sv_reserved_password
cvar_t* sv_reserved_password |
◆ sv_reserved_slots
cvar_t* sv_reserved_slots |
◆ sv_restrict_rtx
◆ sv_show_name_changes
cvar_t* sv_show_name_changes |
◆ sv_showclamp
◆ sv_status_limit
◆ sv_status_show
◆ sv_strafejump_hack
cvar_t* sv_strafejump_hack |
◆ sv_timeout
◆ sv_uptime
◆ sv_waterjump_hack
cvar_t* sv_waterjump_hack |
◆ sv_zombietime
◆ svcmds
void SV_RegisterSavegames(void)
cvar_t * sv_downloadserver
static client_t * redirect(const char *addr)
cvar_t * Cvar_Set(const char *var_name, const char *value)
void SV_MvdRunClients(void)
void CM_FreeMap(cm_t *cm)
#define MVD_SPAWN_INTERNAL
static void SVC_GetChallenge(void)
void PmoveEnableQW(pmoveParams_t *pmp)
static qboolean parse_basic_params(conn_params_t *p)
char * NET_AdrToString(const netadr_t *a)
size_t Cvar_BitInfo(char *info, int bit)
#define SV_BASELINES_CHUNKS
qboolean Info_Validate(const char *s)
void MVD_GameClientNameChanged(edict_t *ent, const char *name)
cvar_t * sv_redirect_address
size_t Q_snprintf(char *dest, size_t size, const char *fmt,...)
void SV_ShutdownClientSend(client_t *client)
void MSG_BeginReading(void)
static void SV_FinalMessage(const char *message, error_type_t type)
entity_packed_t * entities
cvar_t * sv_enhanced_setplayer
cvar_t * Cvar_Get(const char *var_name, const char *var_value, int flags)
static int ping_nop(client_t *cl)
void Z_LeakTest(memtag_t tag)
void SV_MvdShutdown(error_type_t type)
void SV_SendClientMessages(void)
void SV_MvdRegister(void)
netchan_t * Netchan_Setup(netsrc_t sock, netchan_type_t type, const netadr_t *adr, int qport, size_t maxpacketlen, int protocol)
static void sv_namechange_limit_changed(cvar_t *self)
cvar_t * sv_waterjump_hack
static void sv_auth_limit_changed(cvar_t *self)
cvar_t * sv_force_reconnect
void Netchan_OutOfBand(netsrc_t sock, const netadr_t *address, const char *format,...)
ratelimit_t ratelimit_rcon
void SV_WriteFrameToClient_Default(client_t *client)
void Cmd_ExecuteString(cmdbuf_t *buf, const char *text)
cvar_t * sv_namechange_limit
static void SVC_Ack(void)
void SV_MvdEndFrame(void)
cvar_t * sv_reserved_password
static void SV_GiveMsec(void)
void Cmd_TokenizeString(const char *text, qboolean macroExpand)
static void SV_PacketEvent(void)
ratelimit_t ratelimit_auth
char * Cmd_RawArgsFrom(int from)
void MSG_WriteByte(int c)
ratelimit_t ratelimit_status
static unsigned rate2credits(unsigned rate)
cvar_t * sv_airaccelerate
unsigned Sys_Milliseconds(void)
static void SV_MasterHeartbeat(void)
static void print_drop_reason(client_t *client, const char *reason, clstate_t oldstate)
void SV_ClientAddMessage(client_t *client, int flags)
static void SVC_Ping(void)
void SV_CleanClient(client_t *client)
#define FOR_EACH_MASTER(m)
void SV_UserinfoChanged(client_t *cl)
#define FOR_EACH_CLIENT(client)
static client_t * find_client_slot(conn_params_t *params)
cvar_t * sv_reserved_slots
char * AC_ClientConnect(client_t *cl)
void void MVD_PrepWorldFrame(void)
void NET_GetPackets(netsrc_t sock, void(*packet_cb)(void))
#define HEARTBEAT_SECONDS
int SV_CountClients(void)
cvar_t * sv_lan_force_rate
void SV_SendAsyncPackets(void)
entity_packed_t * baselines[SV_BASELINES_CHUNKS]
static void init_rate_limits(void)
void Com_EndRedirect(void)
char * Info_ValueForKey(const char *s, const char *key)
char * va(const char *format,...)
static void SVC_Info(void)
challenge_t challenges[MAX_CHALLENGES]
void SV_ExecuteClientMessage(client_t *cl)
void SV_MvdClientDropped(client_t *client)
void MVD_GameClientDrop(edict_t *ent, const char *prefix, const char *reason)
void SV_CloseDownload(client_t *client)
cvar_t * sv_allow_unconnected_cmds
void SV_MvdBeginFrame(void)
size_t Q_strlcpy(char *dst, const char *src, size_t size)
qboolean COM_IsWhite(const char *s)
static void SV_ConnectionlessPacket(void)
static qboolean check_paused(void)
static void SV_MasterShutdown(void)
void SV_DropClient(client_t *client, const char *reason)
static void SVC_DirectConnect(void)
static void send_connect_packet(client_t *newcl, int nctype)
#define SV_OUTPUTBUF_LENGTH
static int ping_min(client_t *cl)
size_t Com_UptimeLong_m(char *buffer, size_t size)
void SV_InitOperatorCommands(void)
static void SV_CheckTimeouts(void)
server_frame_t frames[UPDATE_BACKUP]
void SV_RateRecharge(ratelimit_t *r)
void MSG_WriteString(const char *string)
void SV_BroadcastPrintf(int level, const char *fmt,...)
static void SV_PrepWorldFrame(void)
void SV_WriteFrameToClient_Enhanced(client_t *client)
static qboolean rcon_valid(void)
void MSG_WriteLong(int c)
qboolean NET_SendPacket(netsrc_t sock, const void *data, size_t len, const netadr_t *to)
static char * userinfo_ip_string(void)
static void SV_CalcPings(void)
void PmoveInit(pmoveParams_t *pmp)
size_t Com_Uptime_m(char *buffer, size_t size)
static void sv_status_limit_changed(cvar_t *self)
cvar_t * sv_allow_nodelta
void Cbuf_Execute(cmdbuf_t *buf)
static int ping_avg(client_t *cl)
void SV_ShutdownGameProgs(void)
void(* WriteFrame)(struct client_s *)
void SV_ClientPrintf(client_t *client, int level, const char *fmt,...)
addrmatch_t * SV_MatchAddress(list_t *list, netadr_t *addr)
message_packet_t * msg_pool
static qboolean parse_userinfo(conn_params_t *params, char *userinfo)
void Netchan_Close(netchan_t *netchan)
size_t MSG_ReadStringLine(char *dest, size_t size)
cvar_t * sv_show_name_changes
static void append_extra_userinfo(conn_params_t *params, char *userinfo)
void MVD_RemoveClient(client_t *client)
static const ucmd_t svcmds[]
qboolean Info_SetValueForKey(char *s, const char *key, const char *value)
static void sv_rcon_limit_changed(cvar_t *self)
static size_t SV_StatusString(char *status)
CONST PIXELFORMATDESCRIPTOR int
#define SV_PacketRedirect()
void AC_ClientDisconnect(client_t *cl)
char configstrings[MAX_CONFIGSTRINGS][MAX_QPATH]
cvar_t * sv_strafejump_hack
void SV_InitClientSend(client_t *newcl)
cvar_t * map_override_path
void SV_RemoveClient(client_t *client)
void SV_RateInit(ratelimit_t *r, const char *s)
size_t Q_scnprintf(char *dest, size_t size, const char *fmt,...)
static void init_pmove_and_es_flags(client_t *newcl)
ratelimit_t ratelimit_namechange
char userinfo[MAX_INFO_STRING]
cvar_t * sv_calcpings_method
qboolean SV_RateLimited(ratelimit_t *r)
static void SVC_RemoteCommand(void)
static qboolean permit_connection(conn_params_t *p)
static void SV_RunGameFrame(void)
void SZ_Clear(sizebuf_t *buf)
void Info_RemoveKey(char *s, const char *key)
static void SVC_Status(void)
static qboolean parse_packet_length(conn_params_t *p)
static qboolean parse_enhanced_params(conn_params_t *p)
char name[MAX_CLIENT_NAME]