initialize the cmd and cvar stuff properly (hey, look, pretty console with

+set sv_use_curses 1:)
This commit is contained in:
Bill Currie 2003-02-12 02:39:24 +00:00
parent 21d8b4f8dc
commit cd448e12ce

View file

@ -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 ();
} }