From 821703ad0746b6606eaa1a73f28f6c0728abe003 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Tue, 29 Nov 2011 22:44:14 -0800 Subject: [PATCH 1/2] Cleanup/reorganize pnNetBase code files. --HG-- rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h --- .../NucleusLib/pnNetBase/CMakeLists.txt | 26 ++- Sources/Plasma/NucleusLib/pnNetBase/Intern.h | 54 ------ Sources/Plasma/NucleusLib/pnNetBase/Pch.h | 57 ------ .../NucleusLib/pnNetBase/Private/pnNbAges.cpp | 41 ----- .../NucleusLib/pnNetBase/Private/pnNbAges.h | 51 ------ .../pnNetBase/Private/pnNbAllIncludes.h | 60 ------- .../pnNetBase/Private/pnNbEchoMsgs.h | 169 ------------------ .../Plasma/NucleusLib/pnNetBase/pnNbConst.h | 14 +- .../pnNetBase/{Private => }/pnNbError.cpp | 114 ++++++------ .../pnNetBase/{Private => }/pnNbError.h | 15 +- .../pnNetBase/{Private => }/pnNbKeys.cpp | 8 +- .../pnNetBase/{Private => }/pnNbKeys.h | 16 +- .../pnNetBase/{Private => }/pnNbProtocol.cpp | 40 ++--- .../pnNetBase/{Private => }/pnNbProtocol.h | 15 +- .../pnNetBase/{Private => }/pnNbSrvs.cpp | 26 ++- .../pnNetBase/{Private => }/pnNbSrvs.h | 15 +- .../Plasma/NucleusLib/pnNetBase/pnNetBase.h | 25 +-- 17 files changed, 130 insertions(+), 616 deletions(-) delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Intern.h delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Pch.h delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h delete mode 100644 Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbError.cpp (70%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbError.h (91%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbKeys.cpp (91%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbKeys.h (85%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbProtocol.cpp (70%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbProtocol.h (88%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbSrvs.cpp (89%) rename Sources/Plasma/NucleusLib/pnNetBase/{Private => }/pnNbSrvs.h (89%) diff --git a/Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt b/Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt index 5f74bf75..991206cf 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt @@ -2,26 +2,22 @@ include_directories("../../CoreLib") include_directories("../../NucleusLib") set(pnNetBase_HEADERS - Intern.h - Pch.h pnNbConst.h + pnNbError.h + pnNbKeys.h + pnNbProtocol.h + pnNbSrvs.h pnNetBase.h ) -set(pnNetBase_PRIVATE - Private/pnNbAllIncludes.h - Private/pnNbEchoMsgs.h - Private/pnNbError.h - Private/pnNbError.cpp - Private/pnNbProtocol.h - Private/pnNbProtocol.cpp - Private/pnNbSrvs.h - Private/pnNbSrvs.cpp - Private/pnNbKeys.h - Private/pnNbKeys.cpp +set(pnNetBase_SOURCES + pnNbError.cpp + pnNbKeys.cpp + pnNbProtocol.cpp + pnNbSrvs.cpp ) -add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_PRIVATE}) +add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_SOURCES}) source_group("Header Files" FILES ${pnNetBase_HEADERS}) -source_group("Private" FILES ${pnNetBase_PRIVATE}) +source_group("Source Files" FILES ${pnNetBase_SOURCES}) diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Intern.h b/Sources/Plasma/NucleusLib/pnNetBase/Intern.h deleted file mode 100644 index deb72bda..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Intern.h +++ /dev/null @@ -1,54 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h -* -***/ - -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H - - -#include "Private/pnNbAllIncludes.h" diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Pch.h b/Sources/Plasma/NucleusLib/pnNetBase/Pch.h deleted file mode 100644 index 9914995f..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Pch.h +++ /dev/null @@ -1,57 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h -* -***/ - -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H - - -#include "pnUtils/pnUtils.h" -#include "pnProduct/pnProduct.h" - -#include "Private/pnNbAllIncludes.h" diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp b/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp deleted file mode 100644 index 19828919..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h b/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h deleted file mode 100644 index bc0ee1bb..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h +++ /dev/null @@ -1,51 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h -* -***/ - -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h b/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h deleted file mode 100644 index 5cbc8d91..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h +++ /dev/null @@ -1,60 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h -* -***/ - -#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H - - -#include "pnProduct/pnProduct.h" - -#include "../pnNbConst.h" -#include "pnNbError.h" -#include "pnNbKeys.h" -#include "pnNbProtocol.h" -#include "pnNbSrvs.h" - -#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h b/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h deleted file mode 100644 index b167a03b..00000000 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h +++ /dev/null @@ -1,169 +0,0 @@ -/*==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 . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -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==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h -* -***/ - -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H - - -//============================================================================ -// Begin Echo server data types -//============================================================================ -namespace Echo { - - -/***************************************************************************** -* -* @@@: Shared data types for echo server/client demo -* -***/ - - -const unsigned kEchoMsgFlagBroadcast = 1<<0; -const unsigned kEchoMsgFlagEchoBack = 1<<1; - - -enum EEchoNetBufferType { - kEchoNetBufferInvalidType, - kEchoNetBufferMsg, - kNumEchoNetBufferTypes -}; - -enum EEchoMsgType { - kEchoInvalidMsgType, - kEchoJoinRequestMsg, - kEchoJoinReplyMsg, - kEchoPlayerJoinedMsg, - kEchoPlayerLeftMsg, - kEchoChatMsg, - kEchoGameDataBufferMsg, - kNumEchoMsgTypes -}; -COMPILER_ASSERT(kNumEchoMsgTypes < (byte)-1); - - -//============================================================================ -// Begin packed data structures -//============================================================================ -#include - -struct EchoMsg { - EchoMsg (const EEchoMsgType & type, unsigned flags = 0) - : type((byte)type) - , flags(flags) - { } - - byte type; - dword flags; -}; - -struct EchoJoinRequestMsg : EchoMsg { - EchoJoinRequestMsg () - : EchoMsg(kEchoJoinRequestMsg) - { } - - wchar playerName[64]; -}; - -struct EchoJoinReplyMsg : EchoMsg { - EchoJoinReplyMsg () - : EchoMsg(kEchoJoinReplyMsg) - { } - - dword playerId; -}; - -struct EchoPlayerJoinedMsg : EchoMsg { - EchoPlayerJoinedMsg () - : EchoMsg(kEchoPlayerJoinedMsg, kEchoMsgFlagBroadcast) - { } - - dword playerId; - wchar playerName[64]; -}; - -struct EchoPlayerLeftMsg : EchoMsg { - EchoPlayerLeftMsg () - : EchoMsg(kEchoPlayerLeftMsg, kEchoMsgFlagBroadcast) - { } - - dword playerId; -}; - -struct EchoChatMsg : EchoMsg { - EchoChatMsg () - : EchoMsg(kEchoChatMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack) - { } - - dword fromPlayerId; - dword msgChars; - wchar msgBuffer[1]; // [msgChars], actually - // no more fields after variable length allocation -}; - -struct EchoGameDataBufferMsg : EchoMsg { - EchoGameDataBufferMsg () - : EchoMsg(kEchoGameDataBufferMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack) - { } - - dword fromPlayerId; - dword bufferBytes; - byte bufferData[1]; // [bufferBytes], actually - // no more fields after variable length allocation -}; - -//============================================================================ -// End packed data structures -//============================================================================ -#include - - -//============================================================================ -// End Echo server data types -//============================================================================ -} using namespace Echo; diff --git a/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h index c028e44a..5700e2b2 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h @@ -39,17 +39,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h -* -***/ - -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H +#ifndef pnNbConst_inc +#define pnNbConst_inc /***************************************************************************** * @@ -166,3 +158,5 @@ enum EScoreTimePeriods { kScoreTimePeriodMonth, kScoreTimePeriodDay }; + +#endif //pnNbConst_inc diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp b/Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp similarity index 70% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp index 15ccf0a6..1a4942cb 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp @@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp -* -***/ -#include "../Pch.h" -#pragma hdrstop +#include "pnNbError.h" /***************************************************************************** @@ -60,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com // in release clients because they are not localized const wchar * NetErrorToString (ENetError code) { - static wchar * s_errors[] = { + static const wchar* s_errors[] = { L"Success", // kNetSuccess L"Internal Error", // kNetErrInternalError L"No Response From Server", // kNetErrTimeout @@ -127,66 +121,64 @@ const wchar * NetErrorToString (ENetError code) { // in release clients because they are not localized const wchar * NetErrorAsString (ENetError code) { - #define ERROR_STRING(e) L#e - static wchar * s_errors[] = { - ERROR_STRING(kNetSuccess), - ERROR_STRING(kNetErrInternalError), - ERROR_STRING(kNetErrTimeout), - ERROR_STRING(kNetErrBadServerData), - ERROR_STRING(kNetErrAgeNotFound), - ERROR_STRING(kNetErrConnectFailed), - ERROR_STRING(kNetErrDisconnected), - ERROR_STRING(kNetErrFileNotFound), - ERROR_STRING(kNetErrOldBuildId), - ERROR_STRING(kNetErrRemoteShutdown), - ERROR_STRING(kNetErrTimeoutOdbc), - ERROR_STRING(kNetErrAccountAlreadyExists), - ERROR_STRING(kNetErrPlayerAlreadyExists), - ERROR_STRING(kNetErrAccountNotFound), - ERROR_STRING(kNetErrPlayerNotFound), - ERROR_STRING(kNetErrInvalidParameter), - ERROR_STRING(kNetErrNameLookupFailed), - ERROR_STRING(kNetErrLoggedInElsewhere), - ERROR_STRING(kNetErrVaultNodeNotFound), - ERROR_STRING(kNetErrMaxPlayersOnAcct), - ERROR_STRING(kNetErrAuthenticationFailed), - ERROR_STRING(kNetErrStateObjectNotFound), - ERROR_STRING(kNetErrLoginDenied), - ERROR_STRING(kNetErrCircularReference), - ERROR_STRING(kNetErrAccountNotActivated), - ERROR_STRING(kNetErrKeyAlreadyUsed), - ERROR_STRING(kNetErrKeyNotFound), - ERROR_STRING(kNetErrActivationCodeNotFound), - ERROR_STRING(kNetErrPlayerNameInvalid), - ERROR_STRING(kNetErrNotSupported), - ERROR_STRING(kNetErrServiceForbidden), - ERROR_STRING(kNetErrAuthTokenTooOld), - ERROR_STRING(kNetErrMustUseGameTapClient), - ERROR_STRING(kNetErrTooManyFailedLogins), - ERROR_STRING(kNetErrGameTapConnectionFailed), - ERROR_STRING(kNetErrGTTooManyAuthOptions), - ERROR_STRING(kNetErrGTMissingParameter), - ERROR_STRING(kNetErrGTServerError), - ERROR_STRING(kNetErrAccountBanned), - ERROR_STRING(kNetErrKickedByCCR), - ERROR_STRING(kNetErrScoreWrongType), - ERROR_STRING(kNetErrScoreNotEnoughPoints), - ERROR_STRING(kNetErrScoreAlreadyExists), - ERROR_STRING(kNetErrScoreNoDataFound), - ERROR_STRING(kNetErrInviteNoMatchingPlayer), - ERROR_STRING(kNetErrInviteTooManyHoods), - ERROR_STRING(kNetErrNeedToPay), - ERROR_STRING(kNetErrServerBusy), - ERROR_STRING(kNetErrVaultNodeAccessViolation), + static const wchar* s_errors[] = { + L"kNetSuccess", + L"kNetErrInternalError", + L"kNetErrTimeout", + L"kNetErrBadServerData", + L"kNetErrAgeNotFound", + L"kNetErrConnectFailed", + L"kNetErrDisconnected", + L"kNetErrFileNotFound", + L"kNetErrOldBuildId", + L"kNetErrRemoteShutdown", + L"kNetErrTimeoutOdbc", + L"kNetErrAccountAlreadyExists", + L"kNetErrPlayerAlreadyExists", + L"kNetErrAccountNotFound", + L"kNetErrPlayerNotFound", + L"kNetErrInvalidParameter", + L"kNetErrNameLookupFailed", + L"kNetErrLoggedInElsewhere", + L"kNetErrVaultNodeNotFound", + L"kNetErrMaxPlayersOnAcct", + L"kNetErrAuthenticationFailed", + L"kNetErrStateObjectNotFound", + L"kNetErrLoginDenied", + L"kNetErrCircularReference", + L"kNetErrAccountNotActivated", + L"kNetErrKeyAlreadyUsed", + L"kNetErrKeyNotFound", + L"kNetErrActivationCodeNotFound", + L"kNetErrPlayerNameInvalid", + L"kNetErrNotSupported", + L"kNetErrServiceForbidden", + L"kNetErrAuthTokenTooOld", + L"kNetErrMustUseGameTapClient", + L"kNetErrTooManyFailedLogins", + L"kNetErrGameTapConnectionFailed", + L"kNetErrGTTooManyAuthOptions", + L"kNetErrGTMissingParameter", + L"kNetErrGTServerError", + L"kNetErrAccountBanned", + L"kNetErrKickedByCCR", + L"kNetErrScoreWrongType", + L"kNetErrScoreNotEnoughPoints", + L"kNetErrScoreAlreadyExists", + L"kNetErrScoreNoDataFound", + L"kNetErrInviteNoMatchingPlayer", + L"kNetErrInviteTooManyHoods", + L"kNetErrNeedToPay", + L"kNetErrServerBusy", + L"kNetErrVaultNodeAccessViolation", }; COMPILER_ASSERT(arrsize(s_errors) == kNumNetErrors); if ((unsigned)code >= arrsize(s_errors)) { if (code == kNetPending) - return ERROR_STRING(kNetPending); + return L"kNetPending"; return L"ErrUnknown"; } - #undef ERROR_STRING return s_errors[code]; } diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h similarity index 91% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h index e3626398..8fdd2129 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h @@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h -* -***/ -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H +#ifndef pnNbError_inc +#define pnNbError_inc +#include "hsTypes.h" +#include "pnNbConst.h" /***************************************************************************** * @@ -130,3 +125,5 @@ enum ENetError { const wchar * NetErrorToString (ENetError code); // user-friendly string const wchar * NetErrorAsString (ENetError code); // string version of enum identifier + +#endif // pnNbError_inc diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp b/Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp similarity index 91% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp index f8833429..a6d24f5a 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp @@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp -* -***/ -#include "../Pch.h" -#pragma hdrstop +#include "pnNbKeys.h" // Auth Server byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {0}; diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h similarity index 85% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h index f40bba83..0619f414 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h @@ -39,16 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h -* -***/ -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H +#ifndef pnNbKeys_inc +#define pnNbKeys_inc + +#include "hsTypes.h" +#include "pnNbConst.h" // Auth Server static const unsigned kAuthDhGValue = 41; @@ -69,3 +65,5 @@ extern byte kGameDhXData[kNetDiffieHellmanKeyBits / 8]; static const unsigned kGateKeeperDhGValue = 4; extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8]; extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8]; + +#endif // pnNbKeys_inc diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp b/Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp similarity index 70% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp index d14d19e5..2ee52cc8 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp @@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp -* -***/ -#include "../Pch.h" -#pragma hdrstop +#include "pnNbProtocol.h" /***************************************************************************** @@ -58,31 +52,29 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com //============================================================================ const wchar * NetProtocolToString (ENetProtocol protocol) { - #define PROTOCOL_STRING(p) { p, L#p } static struct { ENetProtocol protocol; const wchar *name; } s_protocols[] = { - PROTOCOL_STRING(kNetProtocolNil), + { kNetProtocolNil, L"kNetProtocolNil" }, // For test applications - PROTOCOL_STRING(kNetProtocolDebug), + { kNetProtocolDebug, L"kNetProtocolDebug" }, // Client connections - { kNetProtocolCli2Csr, L"GateKeeper Server" }, - { kNetProtocolCli2Csr, L"Csr Server" }, - { kNetProtocolCli2Auth, L"Auth Server" }, - { kNetProtocolCli2Game, L"Game Server" }, - { kNetProtocolCli2File, L"File Server" }, - PROTOCOL_STRING(kNetProtocolCli2Unused_01), + { kNetProtocolCli2Csr, L"GateKeeper Server" }, + { kNetProtocolCli2Csr, L"Csr Server" }, + { kNetProtocolCli2Auth, L"Auth Server" }, + { kNetProtocolCli2Game, L"Game Server" }, + { kNetProtocolCli2File, L"File Server" }, + { kNetProtocolCli2Unused_01, L"kNetProtocolCli2Unused_01" }, // Server connections - PROTOCOL_STRING(kNetProtocolSrvConn), - PROTOCOL_STRING(kNetProtocolSrv2Mcp), - PROTOCOL_STRING(kNetProtocolSrv2Vault), - PROTOCOL_STRING(kNetProtocolSrv2Db), - PROTOCOL_STRING(kNetProtocolSrv2State), - PROTOCOL_STRING(kNetProtocolSrv2Log), - PROTOCOL_STRING(kNetProtocolSrv2Score), + { kNetProtocolSrvConn, L"kNetProtocolSrvConn" }, + { kNetProtocolSrv2Mcp, L"kNetProtocolSrv2Mcp" }, + { kNetProtocolSrv2Vault, L"kNetProtocolSrv2Vault" }, + { kNetProtocolSrv2Db, L"kNetProtocolSrv2Db" }, + { kNetProtocolSrv2State, L"kNetProtocolSrv2State" }, + { kNetProtocolSrv2Log, L"kNetProtocolSrv2Log" }, + { kNetProtocolSrv2Score, L"kNetProtocolSrv2Score" }, }; - #undef PROTOCOL_STRING for (unsigned i = 0; i < arrsize(s_protocols); ++i) if (s_protocols[i].protocol == protocol) diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h similarity index 88% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h index 0d20e671..8220b6ef 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h @@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h -* -***/ -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H +#ifndef pnNbProtocol_inc +#define pnNbProtocol_inc +#include "hsTypes.h" +#include "pnNbConst.h" /***************************************************************************** * @@ -90,3 +85,5 @@ enum ENetProtocol { // cannot enforce this since the protocol values are not // numerically sequential. const wchar * NetProtocolToString (ENetProtocol protocol); + +#endif // pnNbProtocol_inc diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp b/Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp similarity index 89% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp index 02cf0691..6b49ab43 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp @@ -39,14 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp -* -***/ -#include "../Pch.h" -#pragma hdrstop +#include "pnNbSrvs.h" + +#if !HS_BUILD_FOR_WIN32 +# include +#endif /***************************************************************************** @@ -97,7 +95,7 @@ unsigned GetAuthSrvHostnames (const wchar *** addrs) { //============================================================================ void SetAuthSrvHostname (const wchar addr[]) { - StrCopy(s_authAddrConsole, addr, arrsize(s_authAddrConsole)); + wcsncpy(s_authAddrConsole, addr, arrsize(s_authAddrConsole)); } //============================================================================ @@ -112,7 +110,7 @@ unsigned GetFileSrvHostnames (const wchar *** addrs) { //============================================================================ void SetFileSrvHostname (const wchar addr[]) { - StrCopy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole)); + wcsncpy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole)); } //============================================================================ @@ -127,7 +125,7 @@ unsigned GetCsrSrvHostnames (const wchar *** addrs) { //============================================================================ void SetCsrSrvHostname (const wchar addr[]) { - StrCopy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole)); + wcsncpy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole)); } @@ -142,7 +140,7 @@ unsigned GetGateKeeperSrvHostnames (const wchar *** addrs) { //============================================================================ void SetGateKeeperSrvHostname (const wchar addr[]) { - StrCopy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole)); + wcsncpy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole)); } @@ -160,7 +158,7 @@ const wchar *GetServerStatusUrl () { //============================================================================ void SetServerStatusUrl (const wchar url[]) { - StrCopy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl)); + wcsncpy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl)); } //============================================================================ @@ -170,7 +168,7 @@ const wchar *GetServerSignupUrl () { //============================================================================ void SetServerSignupUrl (const wchar url[]) { - StrCopy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl)); + wcsncpy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl)); } //============================================================================ @@ -180,5 +178,5 @@ const wchar *GetServerDisplayName () { //============================================================================ void SetServerDisplayName (const wchar name[]) { - StrCopy(s_serverName, name, arrsize(s_serverName)); + wcsncpy(s_serverName, name, arrsize(s_serverName)); } diff --git a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h similarity index 89% rename from Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h rename to Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h index 42caae9e..c4a932f3 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h @@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h -* -***/ -#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H -#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h included more than once" -#endif -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H +#ifndef pnNbSrvs_inc +#define pnNbSrvs_inc +#include "hsTypes.h" +#include "pnNbConst.h" /***************************************************************************** * @@ -109,3 +104,5 @@ void SetServerSignupUrl (const wchar url[]); const wchar *GetServerDisplayName (); void SetServerDisplayName (const wchar name[]); + +#endif // pnNbSrvs_inc diff --git a/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h b/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h index 05e42995..295c8c7d 100644 --- a/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h +++ b/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h @@ -39,23 +39,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com Mead, WA 99021 *==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h -* -***/ -#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H +#ifndef pnNetBase_inc +#define pnNetBase_inc +#include "pnNbConst.h" +#include "pnNbError.h" +#include "pnNbKeys.h" +#include "pnNbProtocol.h" +#include "pnNbSrvs.h" -/***************************************************************************** -* -* Module includes -* -***/ - -#include "Private/pnNbAllIncludes.h" - - -#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H +#endif // pnNetBase_inc From afe67786e1c5484d69b61357233f616f43d3c280 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Wed, 30 Nov 2011 22:38:58 -0800 Subject: [PATCH 2/2] Move Base64 util into pfConsoleCore. --- .../FeatureLib/pfConsoleCore/CMakeLists.txt | 2 + .../pfConsoleCore/pfConsoleCommandsCore.cpp | 3 +- .../FeatureLib/pfConsoleCore/pfUtilBase64.cpp | 177 ++++++++++++++++++ .../FeatureLib/pfConsoleCore/pfUtilBase64.h | 80 ++++++++ 4 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp create mode 100644 Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h diff --git a/Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt b/Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt index c54c31a0..4bded426 100644 --- a/Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt +++ b/Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt @@ -8,12 +8,14 @@ set(pfConsoleCore_SOURCES pfConsoleCommandsCore.cpp pfConsoleContext.cpp pfConsoleEngine.cpp + pfUtilBase64.cpp ) set(pfConsoleCore_HEADERS pfConsoleCmd.h pfConsoleContext.h pfConsoleEngine.h + pfUtilBase64.h ) add_library(pfConsoleCore STATIC ${pfConsoleCore_SOURCES} ${pfConsoleCore_HEADERS}) diff --git a/Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp b/Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp index e19bd25e..2f0bb915 100644 --- a/Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp +++ b/Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp @@ -46,7 +46,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com ////////////////////////////////////////////////////////////////////////////// #include "pfConsoleCmd.h" -#include "pnNetBase/Pch.h" +#include "pnNetBase/pnNetBase.h" +#include "pfUtilBase64.h" #include diff --git a/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp b/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp new file mode 100644 index 00000000..9ab44714 --- /dev/null +++ b/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp @@ -0,0 +1,177 @@ +/*==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 . + +Additional permissions under GNU GPL version 3 section 7 + +If you modify this Program, or any covered work, by linking or +combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +(or a modified version of those libraries), +containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +licensors of this Program grant you additional +permission to convey the resulting work. Corresponding Source for a +non-source form of such a combination shall include the source code for +the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +work. + +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==*/ + +#include "pfUtilBase64.h" + + +/***************************************************************************** +* +* Private +* +***/ + +static const char kEncode64[] = { +// 0000000000111111111122222222223333333333444444444455555555556666 +// 0123456789012345678901234567890123456789012345678901234567890123 + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" +}; + +// Note that the decode table contains one special entry: +// The '-' character (0x2d) maps to 63 just like '/' (0x2f) +// so that URLs will work with Base64Decode when we implement them. +#define kTerminator 127 +#define xx kTerminator +static const char kDecode64[] = { +// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,62,xx,63,xx,63, + 52,53,54,55,56,57,58,59,60,61,xx,xx,xx,xx,xx,xx, + xx, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24,25,xx,xx,xx,xx,xx, + xx,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,48,49,50,51,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, + xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, +}; +#undef xx + +static const char kFillchar = '='; + + +/***************************************************************************** +* +* Exports +* +***/ + +//============================================================================ +unsigned Base64Encode ( + unsigned srcChars, + const byte srcData[], + unsigned dstChars, + char * dstData +) { + ASSERT(srcData); + ASSERT(dstChars >= Base64EncodeSize(srcChars)); + ASSERT(dstData); + + const char * dstBase = dstData; + const byte * srcTerm = srcData + srcChars; + for (;;) switch (srcTerm - srcData) { + case 0: + *dstData++ = 0; + return dstData - dstBase; + + case 1: + *dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ]; + *dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) ]; + *dstData++ = kFillchar; + *dstData++ = kFillchar; + *dstData++ = 0; + return dstData - dstBase; + + case 2: + *dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ]; + *dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ]; + *dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) ]; + *dstData++ = kFillchar; + *dstData++ = 0; + return dstData - dstBase; + + default: + *dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ]; + *dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ]; + *dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) + ((srcData[2] >> 6) & 0x03) ]; + *dstData++ = kEncode64[ (srcData[2] & 0x3f) ]; + srcData += 3; + break; + } +} + +//============================================================================ +unsigned Base64Decode ( + unsigned srcChars, + const char srcData[], + unsigned dstChars, + byte * dstData +) { + ASSERT(srcData); + ASSERT(dstChars >= Base64DecodeSize(srcChars, srcData)); + ASSERT(dstData); + + const byte * dstBase = dstData; + const char * srcTerm = srcData + srcChars; + while (srcTerm - srcData >= 4) { + + *dstData++ = (byte) ( + (kDecode64[srcData[0]] << 2 & 0xfc) + +(kDecode64[srcData[1]] >> 4 & 0x03) + ); + + if (kDecode64[srcData[2]] == kTerminator) + break; + + *dstData++ = (byte) ( + (kDecode64[srcData[1]] << 4 & 0xf0) + +(kDecode64[srcData[2]] >> 2 & 0x0f) + ); + + if (kDecode64[srcData[3]] == kTerminator) + break; + + *dstData++ = (byte) ( + (kDecode64[srcData[2]] << 6 & 0xc0) + +(kDecode64[srcData[3]]) + ); + + srcData += 4; + } + + return dstData - dstBase; +} diff --git a/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h b/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h new file mode 100644 index 00000000..2e560715 --- /dev/null +++ b/Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h @@ -0,0 +1,80 @@ +/*==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 . + +Additional permissions under GNU GPL version 3 section 7 + +If you modify this Program, or any covered work, by linking or +combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +(or a modified version of those libraries), +containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +licensors of this Program grant you additional +permission to convey the resulting work. Corresponding Source for a +non-source form of such a combination shall include the source code for +the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +work. + +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==*/ + +#ifndef pfUtilBase64_inc +#define pfUtilBase64_inc + +#include "hsTypes.h" + +/***************************************************************************** +* +* Base64 Codec API +* +***/ + +const unsigned kBase64EncodeBlock = 4; +const unsigned kBase64EncodeMultiple = 3; + +inline unsigned Base64EncodeSize (unsigned srcChars) { + return (srcChars + kBase64EncodeMultiple - 1) / kBase64EncodeMultiple + * kBase64EncodeBlock; +} +unsigned Base64Encode ( + unsigned srcChars, + const byte srcData[], + unsigned dstChars, + char * dstData +); + +inline unsigned Base64DecodeSize (unsigned srcChars, const char srcData[]) { + return srcChars * kBase64EncodeMultiple / kBase64EncodeBlock + - ((srcChars >= 1 && srcData[srcChars - 1] == '=') ? 1 : 0) + - ((srcChars >= 2 && srcData[srcChars - 2] == '=') ? 1 : 0); +} +unsigned Base64Decode ( + unsigned srcChars, + const char srcData[], + unsigned dstChars, + byte * dstData +); + +#endif //pnUtilBase64_inc