diff options
Diffstat (limited to 'src/server/sv_ccmds.c')
-rw-r--r-- | src/server/sv_ccmds.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/sv_ccmds.c b/src/server/sv_ccmds.c index 56c73aa8..65585308 100644 --- a/src/server/sv_ccmds.c +++ b/src/server/sv_ccmds.c @@ -284,6 +284,33 @@ static void SV_KillServer_f( void ) { SV_Shutdown( "killserver" ); } +static void SV_SMQ_f( void ) { + static qboolean schmResolved = qfalse; + static netadr_t schmAddress; + char args[ MAX_STRING_CHARS ]; + char *p; + int s, i; + + if ( !schmResolved ) { + schmResolved = qtrue; + NET_StringToAdr( "127.0.0.1:1337", &schmAddress, NA_IP ); + } + + p = args; + s = sizeof( args ); + + for ( i = 1; i < Cmd_Argc(); ++i ) + { + int l; + Com_sprintf( p, s, " \"%s\"", Cmd_Argv( i ) ); + l = strlen( p ); + s -= l; + p += l; + } + + NET_OutOfBandPrint( NS_SERVER, schmAddress, "sm2query%s", args ); +} + //=========================================================== /* @@ -320,6 +347,7 @@ void SV_AddOperatorCommands( void ) { Cmd_AddCommand ("devmap", SV_Map_f); Cmd_SetCommandCompletionFunc( "devmap", SV_CompleteMapName ); Cmd_AddCommand ("killserver", SV_KillServer_f); + Cmd_AddCommand ("smq", SV_SMQ_f); } /* |