mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-31 00:30:57 +00:00
initialize the cmd and cvar stuff properly (hey, look, pretty console with
+set sv_use_curses 1:)
This commit is contained in:
parent
21d8b4f8dc
commit
cd448e12ce
1 changed files with 72 additions and 58 deletions
|
@ -15,9 +15,14 @@
|
||||||
#include "netchan.h"
|
#include "netchan.h"
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
|
int sv_mode;
|
||||||
|
|
||||||
qboolean is_server = true;
|
qboolean is_server = true;
|
||||||
|
|
||||||
static cbuf_t *mst_cbuf;
|
static cbuf_t *mst_cbuf;
|
||||||
|
|
||||||
cvar_t *sv_console_plugin;
|
cvar_t *sv_console_plugin;
|
||||||
|
|
||||||
SERVER_PLUGIN_PROTOS
|
SERVER_PLUGIN_PROTOS
|
||||||
static plugin_list_t server_plugin_list[] = {
|
static plugin_list_t server_plugin_list[] = {
|
||||||
SERVER_PLUGIN_LIST
|
SERVER_PLUGIN_LIST
|
||||||
|
@ -158,7 +163,7 @@ SVL_Remove (server_t *sv)
|
||||||
sv->previous = NULL;
|
sv->previous = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
server_t *
|
server_t *
|
||||||
SVL_Find (netadr_t adr)
|
SVL_Find (netadr_t adr)
|
||||||
{
|
{
|
||||||
server_t *sv;
|
server_t *sv;
|
||||||
|
@ -201,13 +206,11 @@ SV_InitNet (void)
|
||||||
int port;
|
int port;
|
||||||
int p;
|
int p;
|
||||||
|
|
||||||
mst_cbuf = Cbuf_New (&id_interp);
|
|
||||||
|
|
||||||
port = PORT_MASTER;
|
port = PORT_MASTER;
|
||||||
p = COM_CheckParm ("-port");
|
p = COM_CheckParm ("-port");
|
||||||
if (p && p < com_argc) {
|
if (p && p < com_argc) {
|
||||||
port = atoi (com_argv[p + 1]);
|
port = atoi (com_argv[p + 1]);
|
||||||
printf ("Port: %i\n", port);
|
Con_Printf ("Port: %i\n", port);
|
||||||
}
|
}
|
||||||
NET_Init (port);
|
NET_Init (port);
|
||||||
|
|
||||||
|
@ -242,37 +245,37 @@ AnalysePacket (void)
|
||||||
byte *p;
|
byte *p;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
printf ("%s sending packet:\n", NET_AdrToString (net_from));
|
Con_Printf ("%s sending packet:\n", NET_AdrToString (net_from));
|
||||||
p = net_message->message->data;
|
p = net_message->message->data;
|
||||||
for (i = 0; i < net_message->message->cursize; i++, p++) {
|
for (i = 0; i < net_message->message->cursize; i++, p++) {
|
||||||
c = p[0];
|
c = p[0];
|
||||||
printf (" %3i ", c);
|
Con_Printf (" %3i ", c);
|
||||||
if (i % 8 == 7)
|
if (i % 8 == 7)
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
}
|
}
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
p = net_message->message->data;
|
p = net_message->message->data;
|
||||||
for (i = 0; i < net_message->message->cursize; i++, p++) {
|
for (i = 0; i < net_message->message->cursize; i++, p++) {
|
||||||
c = p[0];
|
c = p[0];
|
||||||
if (c == '\n')
|
if (c == '\n')
|
||||||
printf (" \\n ");
|
Con_Printf (" \\n ");
|
||||||
|
|
||||||
else if (c >= 32 && c <= 127)
|
else if (c >= 32 && c <= 127)
|
||||||
printf (" %c ", c);
|
Con_Printf (" %c ", c);
|
||||||
|
|
||||||
else if (c < 10)
|
else if (c < 10)
|
||||||
printf (" \\%1i ", c);
|
Con_Printf (" \\%1i ", c);
|
||||||
|
|
||||||
else if (c < 100)
|
else if (c < 100)
|
||||||
printf (" \\%2i ", c);
|
Con_Printf (" \\%2i ", c);
|
||||||
|
|
||||||
else
|
else
|
||||||
printf ("\\%3i ", c);
|
Con_Printf ("\\%3i ", c);
|
||||||
if (i % 8 == 7)
|
if (i % 8 == 7)
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
}
|
}
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -322,7 +325,7 @@ Mst_Packet (void)
|
||||||
msg = net_message->message->data[1];
|
msg = net_message->message->data[1];
|
||||||
if (msg == A2A_PING) {
|
if (msg == A2A_PING) {
|
||||||
NET_Filter ();
|
NET_Filter ();
|
||||||
printf ("%s >> A2A_PING\n", NET_AdrToString (net_from));
|
Con_Printf ("%s >> A2A_PING\n", NET_AdrToString (net_from));
|
||||||
if (!(sv = SVL_Find (net_from))) {
|
if (!(sv = SVL_Find (net_from))) {
|
||||||
sv = SVL_New (&net_from);
|
sv = SVL_New (&net_from);
|
||||||
SVL_Add (sv);
|
SVL_Add (sv);
|
||||||
|
@ -332,7 +335,7 @@ Mst_Packet (void)
|
||||||
|
|
||||||
else if (msg == S2M_HEARTBEAT) {
|
else if (msg == S2M_HEARTBEAT) {
|
||||||
NET_Filter ();
|
NET_Filter ();
|
||||||
printf ("%s >> S2M_HEARTBEAT\n", NET_AdrToString (net_from));
|
Con_Printf ("%s >> S2M_HEARTBEAT\n", NET_AdrToString (net_from));
|
||||||
if (!(sv = SVL_Find (net_from))) {
|
if (!(sv = SVL_Find (net_from))) {
|
||||||
sv = SVL_New (&net_from);
|
sv = SVL_New (&net_from);
|
||||||
SVL_Add (sv);
|
SVL_Add (sv);
|
||||||
|
@ -342,7 +345,7 @@ Mst_Packet (void)
|
||||||
|
|
||||||
else if (msg == S2M_SHUTDOWN) {
|
else if (msg == S2M_SHUTDOWN) {
|
||||||
NET_Filter ();
|
NET_Filter ();
|
||||||
printf ("%s >> S2M_SHUTDOWN\n", NET_AdrToString (net_from));
|
Con_Printf ("%s >> S2M_SHUTDOWN\n", NET_AdrToString (net_from));
|
||||||
if ((sv = SVL_Find (net_from))) {
|
if ((sv = SVL_Find (net_from))) {
|
||||||
SVL_Remove (sv);
|
SVL_Remove (sv);
|
||||||
free (sv);
|
free (sv);
|
||||||
|
@ -350,8 +353,8 @@ Mst_Packet (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (msg == 'c') {
|
else if (msg == 'c') {
|
||||||
printf ("%s >> ", NET_AdrToString (net_from));
|
Con_Printf ("%s >> ", NET_AdrToString (net_from));
|
||||||
printf ("Gamespy server list request\n");
|
Con_Printf ("Gamespy server list request\n");
|
||||||
Mst_SendList ();
|
Mst_SendList ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,15 +362,15 @@ Mst_Packet (void)
|
||||||
byte *p;
|
byte *p;
|
||||||
|
|
||||||
p = net_message->message->data;
|
p = net_message->message->data;
|
||||||
printf ("%s >> ", NET_AdrToString (net_from));
|
Con_Printf ("%s >> ", NET_AdrToString (net_from));
|
||||||
printf ("Pingtool server list request\n");
|
Con_Printf ("Pingtool server list request\n");
|
||||||
if (p[0] == 0 && p[1] == 'y') {
|
if (p[0] == 0 && p[1] == 'y') {
|
||||||
Mst_SendList ();
|
Mst_SendList ();
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
printf ("%s >> ", NET_AdrToString (net_from));
|
Con_Printf ("%s >> ", NET_AdrToString (net_from));
|
||||||
printf ("%c\n", net_message->message->data[1]);
|
Con_Printf ("%c\n", net_message->message->data[1]);
|
||||||
AnalysePacket ();
|
AnalysePacket ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,7 +387,7 @@ SV_ReadPackets (void)
|
||||||
void
|
void
|
||||||
SV_ConnectionlessPacket (void)
|
SV_ConnectionlessPacket (void)
|
||||||
{
|
{
|
||||||
printf ("%s>>%s\n", NET_AdrToString (net_from), net_message->message->data);
|
Con_Printf ("%s>>%s\n", NET_AdrToString (net_from), net_message->message->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int argv_index_add;
|
int argv_index_add;
|
||||||
|
@ -396,7 +399,7 @@ Cmd_FilterAdd (void)
|
||||||
netadr_t to, from;
|
netadr_t to, from;
|
||||||
|
|
||||||
if (Cmd_Argc () < 4 + argv_index_add) {
|
if (Cmd_Argc () < 4 + argv_index_add) {
|
||||||
printf
|
Con_Printf
|
||||||
("Invalid command parameters. Usage:\nfilter add x.x.x.x:port x.x.x.x:port\n\n");
|
("Invalid command parameters. Usage:\nfilter add x.x.x.x:port x.x.x.x:port\n\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -407,14 +410,14 @@ Cmd_FilterAdd (void)
|
||||||
if (from.port == 0)
|
if (from.port == 0)
|
||||||
from.port = BigShort (PORT_SERVER);
|
from.port = BigShort (PORT_SERVER);
|
||||||
if (!(filter = FL_Find (from))) {
|
if (!(filter = FL_Find (from))) {
|
||||||
printf ("Added filter %s\t\t%s\n", Cmd_Argv (2 + argv_index_add),
|
Con_Printf ("Added filter %s\t\t%s\n", Cmd_Argv (2 + argv_index_add),
|
||||||
Cmd_Argv (3 + argv_index_add));
|
Cmd_Argv (3 + argv_index_add));
|
||||||
filter = FL_New (&from, &to);
|
filter = FL_New (&from, &to);
|
||||||
FL_Add (filter);
|
FL_Add (filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
printf ("%s already defined\n\n", Cmd_Argv (2 + argv_index_add));
|
Con_Printf ("%s already defined\n\n", Cmd_Argv (2 + argv_index_add));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -424,19 +427,19 @@ Cmd_FilterRemove (void)
|
||||||
netadr_t from;
|
netadr_t from;
|
||||||
|
|
||||||
if (Cmd_Argc () < 3 + argv_index_add) {
|
if (Cmd_Argc () < 3 + argv_index_add) {
|
||||||
printf
|
Con_Printf
|
||||||
("Invalid command parameters. Usage:\nfilter remove x.x.x.x:port\n\n");
|
("Invalid command parameters. Usage:\nfilter remove x.x.x.x:port\n\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NET_StringToAdr (Cmd_Argv (2 + argv_index_add), &from);
|
NET_StringToAdr (Cmd_Argv (2 + argv_index_add), &from);
|
||||||
if ((filter = FL_Find (from))) {
|
if ((filter = FL_Find (from))) {
|
||||||
printf ("Removed %s\n\n", Cmd_Argv (2 + argv_index_add));
|
Con_Printf ("Removed %s\n\n", Cmd_Argv (2 + argv_index_add));
|
||||||
FL_Remove (filter);
|
FL_Remove (filter);
|
||||||
free (filter);
|
free (filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
printf ("Cannot find %s\n\n", Cmd_Argv (2 + argv_index_add));
|
Con_Printf ("Cannot find %s\n\n", Cmd_Argv (2 + argv_index_add));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -445,18 +448,18 @@ Cmd_FilterList (void)
|
||||||
filter_t *filter;
|
filter_t *filter;
|
||||||
|
|
||||||
for (filter = filter_list; filter; filter = filter->next) {
|
for (filter = filter_list; filter; filter = filter->next) {
|
||||||
printf ("%s", NET_AdrToString (filter->from));
|
Con_Printf ("%s", NET_AdrToString (filter->from));
|
||||||
printf ("\t\t%s\n", NET_AdrToString (filter->to));
|
Con_Printf ("\t\t%s\n", NET_AdrToString (filter->to));
|
||||||
}
|
}
|
||||||
if (filter_list == NULL)
|
if (filter_list == NULL)
|
||||||
printf ("No filter\n");
|
Con_Printf ("No filter\n");
|
||||||
printf ("\n");
|
Con_Printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Cmd_FilterClear (void)
|
Cmd_FilterClear (void)
|
||||||
{
|
{
|
||||||
printf ("Removed all filters\n\n");
|
Con_Printf ("Removed all filters\n\n");
|
||||||
FL_Clear ();
|
FL_Clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -507,8 +510,6 @@ SV_WriteFilterList (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int sv_mode;
|
|
||||||
|
|
||||||
void
|
void
|
||||||
SV_Shutdown (void)
|
SV_Shutdown (void)
|
||||||
{
|
{
|
||||||
|
@ -516,19 +517,7 @@ SV_Shutdown (void)
|
||||||
|
|
||||||
// write filter list
|
// write filter list
|
||||||
SV_WriteFilterList ();
|
SV_WriteFilterList ();
|
||||||
}
|
Con_Shutdown ();
|
||||||
|
|
||||||
void
|
|
||||||
SV_GetConsoleCommands (void)
|
|
||||||
{
|
|
||||||
const char *cmd;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
cmd = Sys_ConsoleInput ();
|
|
||||||
if (!cmd)
|
|
||||||
break;
|
|
||||||
Cbuf_AddText (mst_cbuf, cmd);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SV_TIMEOUT 450
|
#define SV_TIMEOUT 450
|
||||||
|
@ -546,7 +535,7 @@ SV_TimeOut (void)
|
||||||
for (sv = sv_list; sv;) {
|
for (sv = sv_list; sv;) {
|
||||||
if (sv->timeout + SV_TIMEOUT < time) {
|
if (sv->timeout + SV_TIMEOUT < time) {
|
||||||
next = sv->next;
|
next = sv->next;
|
||||||
printf ("%s timed out\n", NET_AdrToString (sv->ip));
|
Con_Printf ("%s timed out\n", NET_AdrToString (sv->ip));
|
||||||
SVL_Remove (sv);
|
SVL_Remove (sv);
|
||||||
free (sv);
|
free (sv);
|
||||||
sv = next;
|
sv = next;
|
||||||
|
@ -556,18 +545,45 @@ SV_TimeOut (void)
|
||||||
sv = sv->next;
|
sv = sv->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SV_Frame ()
|
SV_Frame ()
|
||||||
{
|
{
|
||||||
SV_GetConsoleCommands ();
|
Sys_CheckInput (1, net_socket);
|
||||||
|
Con_ProcessInput ();
|
||||||
Cbuf_Execute_Stack (mst_cbuf);
|
Cbuf_Execute_Stack (mst_cbuf);
|
||||||
SV_TimeOut ();
|
SV_TimeOut ();
|
||||||
SV_ReadPackets ();
|
SV_ReadPackets ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
MST_Quit_f (void)
|
||||||
|
{
|
||||||
|
Con_Printf ("HW master shutdown\n");
|
||||||
|
Sys_Quit ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, const char **argv)
|
main (int argc, const char **argv)
|
||||||
{
|
{
|
||||||
|
COM_InitArgv (argc, argv);
|
||||||
|
|
||||||
|
mst_cbuf = Cbuf_New (&id_interp);
|
||||||
|
|
||||||
|
Sys_RegisterShutdown (SV_Shutdown);
|
||||||
|
|
||||||
|
Cvar_Init_Hash ();
|
||||||
|
Cmd_Init_Hash ();
|
||||||
|
Cvar_Init ();
|
||||||
|
Sys_Init_Cvars ();
|
||||||
|
Sys_Init ();
|
||||||
|
Cmd_Init ();
|
||||||
|
|
||||||
|
Cmd_AddCommand ("quit", MST_Quit_f, "Shut down the master server");
|
||||||
|
|
||||||
|
Cmd_StuffCmds (mst_cbuf);
|
||||||
|
Cbuf_Execute_Sets (mst_cbuf);
|
||||||
|
|
||||||
PI_Init ();
|
PI_Init ();
|
||||||
|
|
||||||
sv_console_plugin = Cvar_Get ("sv_console_plugin", "server",
|
sv_console_plugin = Cvar_Get ("sv_console_plugin", "server",
|
||||||
|
@ -578,11 +594,9 @@ main (int argc, const char **argv)
|
||||||
con_module->data->console->cbuf = mst_cbuf;
|
con_module->data->console->cbuf = mst_cbuf;
|
||||||
con_list_print = Sys_Printf;
|
con_list_print = Sys_Printf;
|
||||||
|
|
||||||
COM_InitArgv (argc, argv);
|
|
||||||
Cmd_Init ();
|
|
||||||
SV_InitNet ();
|
SV_InitNet ();
|
||||||
printf ("Exe: " __TIME__ " " __DATE__ "\n");
|
Con_Printf ("Exe: " __TIME__ " " __DATE__ "\n");
|
||||||
printf ("======== HW master initialized ========\n\n");
|
Con_Printf ("======== HW master initialized ========\n\n");
|
||||||
while (1) {
|
while (1) {
|
||||||
SV_Frame ();
|
SV_Frame ();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue