Browse Source
--HG-- rename : Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.cpp => Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCmd.cpp rename : Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.h => Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCmd.h rename : Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.cpp => Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleContext.cpp rename : Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.h => Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleContext.h rename : Sources/Plasma/FeatureLib/pfConsole/pfConsoleEngine.cpp => Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleEngine.cpp
Michael Hansen
14 years ago
20 changed files with 412 additions and 341 deletions
@ -0,0 +1,22 @@
|
||||
include_directories(../../CoreLib) |
||||
include_directories(../../FeatureLib) |
||||
include_directories(../../NucleusLib) |
||||
include_directories(../../PubUtilLib) |
||||
|
||||
set(pfConsoleCore_SOURCES |
||||
pfConsoleCmd.cpp |
||||
pfConsoleCommandsCore.cpp |
||||
pfConsoleContext.cpp |
||||
pfConsoleEngine.cpp |
||||
) |
||||
|
||||
set(pfConsoleCore_HEADERS |
||||
pfConsoleCmd.h |
||||
pfConsoleContext.h |
||||
pfConsoleEngine.h |
||||
) |
||||
|
||||
add_library(pfConsoleCore STATIC ${pfConsoleCore_SOURCES} ${pfConsoleCore_HEADERS}) |
||||
|
||||
source_group("Source Files" FILES ${pfConsoleCore_SOURCES}) |
||||
source_group("Header Files" FILES ${pfConsoleCore_HEADERS}) |
@ -0,0 +1,335 @@
|
||||
/*==LICENSE==*
|
||||
|
||||
CyanWorlds.com Engine - MMOG client, server and tools |
||||
Copyright (C) 2011 Cyan Worlds, Inc. |
||||
|
||||
This program is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU General Public License as published by |
||||
the Free Software Foundation, either version 3 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
This program is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com |
||||
or by snail mail at: |
||||
Cyan Worlds, Inc. |
||||
14617 N Newport Hwy |
||||
Mead, WA 99021 |
||||
|
||||
*==LICENSE==*/ |
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Actual CORE Console Commands and Groups //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "pfConsoleCmd.h" |
||||
#include "pnNetBase/Pch.h" |
||||
|
||||
#include <algorithm> |
||||
|
||||
//// DO NOT REMOVE!!!!
|
||||
//// This is here so Microsoft VC won't decide to "optimize" this file out
|
||||
PF_CONSOLE_FILE_DUMMY(Core) |
||||
//// DO NOT REMOVE!!!!
|
||||
|
||||
//
|
||||
// utility functions
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
void PrintStringF(void pfun(const char *),const char * fmt, ...) |
||||
{ |
||||
va_list args; |
||||
|
||||
char buffy[512]; |
||||
va_start(args, fmt); |
||||
vsprintf(buffy, fmt, args); |
||||
va_end(args); |
||||
pfun(buffy); |
||||
} |
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* |
||||
* Server |
||||
* |
||||
***/ |
||||
|
||||
//TODO: Fix Plasma to use OpenSSL's byte order (or better yet, to use OpenSSL),
|
||||
// so this hack isn't needed
|
||||
static void swap_key_bytes(byte keyData[]) |
||||
{ |
||||
for (size_t i = 0; i < (kNetDiffieHellmanKeyBits / 16); ++i) |
||||
std::swap(keyData[i], keyData[ (kNetDiffieHellmanKeyBits / 8) - i - 1 ]); |
||||
} |
||||
|
||||
//============================================================================
|
||||
// Server group
|
||||
PF_CONSOLE_GROUP(Server) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server, |
||||
Status, |
||||
"string url", |
||||
"Set the server's status URL" |
||||
) { |
||||
wchar_t *wurl = hsStringToWString((const char *)params[0]); |
||||
SetServerStatusUrl(wurl); |
||||
delete [] wurl; |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server, |
||||
Signup, |
||||
"string url", |
||||
"Set the server's new user sign-up URL" |
||||
) { |
||||
wchar_t *wurl = hsStringToWString((const char *)params[0]); |
||||
SetServerSignupUrl(wurl); |
||||
delete [] wurl; |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server, |
||||
DispName, |
||||
"string name", |
||||
"Set the displayable server name" |
||||
) { |
||||
wchar_t *wname = hsStringToWString((const char *)params[0]); |
||||
SetServerDisplayName(wname); |
||||
delete [] wname; |
||||
} |
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.File group
|
||||
PF_CONSOLE_SUBGROUP(Server, File) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_File, |
||||
Host, |
||||
"string address", |
||||
"Set the File Server address" |
||||
) { |
||||
wchar_t *wHost = hsStringToWString((const char *)params[0]); |
||||
SetFileSrvHostname(wHost); |
||||
delete [] wHost; |
||||
} |
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Auth group
|
||||
PF_CONSOLE_SUBGROUP(Server, Auth) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Auth, |
||||
Host, |
||||
"string address", |
||||
"Set the Auth Server address" |
||||
) { |
||||
wchar_t *wHost = hsStringToWString((const char *)params[0]); |
||||
SetAuthSrvHostname(wHost); |
||||
delete [] wHost; |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Auth, |
||||
N, |
||||
"string base64Key", |
||||
"Set the Auth Server N key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhNData); |
||||
swap_key_bytes(kAuthDhNData); |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Auth, |
||||
X, |
||||
"string base64Key", |
||||
"Set the Auth Server X key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhXData); |
||||
swap_key_bytes(kAuthDhXData); |
||||
} |
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Csr group
|
||||
PF_CONSOLE_SUBGROUP(Server, Csr) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Csr, |
||||
Host, |
||||
"string address", |
||||
"Set the Csr Server address" |
||||
) { |
||||
wchar_t *wHost = hsStringToWString((const char *)params[0]); |
||||
SetCsrSrvHostname(wHost); |
||||
delete [] wHost; |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Csr, |
||||
N, |
||||
"string base64Key", |
||||
"Set the Csr Server N key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhNData); |
||||
swap_key_bytes(kCsrDhNData); |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Csr, |
||||
X, |
||||
"string base64Key", |
||||
"Set the Csr Server X key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhXData); |
||||
swap_key_bytes(kCsrDhXData); |
||||
} |
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Game group
|
||||
PF_CONSOLE_SUBGROUP(Server, Game) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Game, |
||||
N, |
||||
"string base64Key", |
||||
"Set the Game Server N key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kGameDhNData); |
||||
swap_key_bytes(kGameDhNData); |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Game, |
||||
X, |
||||
"string base64Key", |
||||
"Set the Game Server X key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kGameDhXData); |
||||
swap_key_bytes(kGameDhXData); |
||||
} |
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Gate group
|
||||
PF_CONSOLE_SUBGROUP(Server, Gate) |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Gate, |
||||
Host, |
||||
"string address", |
||||
"Set the GateKeeper Server address" |
||||
) { |
||||
wchar_t *wHost = hsStringToWString((const char *)params[0]); |
||||
SetGateKeeperSrvHostname(wHost); |
||||
delete [] wHost; |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Gate, |
||||
N, |
||||
"string base64Key", |
||||
"Set the GateKeeper Server N key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhNData); |
||||
swap_key_bytes(kGateKeeperDhNData); |
||||
} |
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD( |
||||
Server_Gate, |
||||
X, |
||||
"string base64Key", |
||||
"Set the GateKeeper Server X key" |
||||
) { |
||||
int baseLength = hsStrlen((const char *)params[0]); |
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength, (const char *)params[0])) { |
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes", |
||||
kNetDiffieHellmanKeyBits / 8); |
||||
return; |
||||
} |
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0], |
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhXData); |
||||
swap_key_bytes(kGateKeeperDhXData); |
||||
} |
Loading…
Reference in new issue