mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-14 22:42:14 -07:00
Fix pbs and some other stuff.
Took 1 hour 5 minutes
This commit is contained in:
parent
01378b8314
commit
408b732854
84 changed files with 181 additions and 172 deletions
107
libs/server/src/debug_pb_message.cpp
Normal file
107
libs/server/src/debug_pb_message.cpp
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
#include "../include/server/debug_pb_message.h"
|
||||
|
||||
#include "utility/trice_limits.h"
|
||||
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include <google/protobuf/descriptor.h>
|
||||
#include <google/protobuf/message.h>
|
||||
#include <google/protobuf/text_format.h>
|
||||
|
||||
// FastFieldValuePrinter is added in protobuf 3.4, going out of our way to add the old FieldValuePrinter is not worth it
|
||||
#if GOOGLE_PROTOBUF_VERSION > 3004000
|
||||
|
||||
// value printer to use for all values, will snip too long contents
|
||||
class LimitedPrinter : public ::google::protobuf::TextFormat::FastFieldValuePrinter
|
||||
{
|
||||
public:
|
||||
void PrintString(const std::string &val,
|
||||
::google::protobuf::TextFormat::BaseTextGenerator *generator) const override;
|
||||
};
|
||||
|
||||
// value printer to use for specifc values, will expunge sensitive info
|
||||
class SafePrinter : public ::google::protobuf::TextFormat::FastFieldValuePrinter
|
||||
{
|
||||
public:
|
||||
void PrintString(const std::string &val,
|
||||
::google::protobuf::TextFormat::BaseTextGenerator *generator) const override;
|
||||
|
||||
static void applySafePrinter(const ::google::protobuf::Message &message,
|
||||
::google::protobuf::TextFormat::Printer &printer);
|
||||
};
|
||||
|
||||
void LimitedPrinter::PrintString(const std::string &val,
|
||||
::google::protobuf::TextFormat::BaseTextGenerator *generator) const
|
||||
{
|
||||
auto length = val.length();
|
||||
if (length > MAX_TEXT_LENGTH) {
|
||||
::google::protobuf::TextFormat::FastFieldValuePrinter::PrintString(
|
||||
val.substr(0, MAX_NAME_LENGTH) + "... ---snip--- (" + std::to_string(length) + " bytes total", generator);
|
||||
} else {
|
||||
::google::protobuf::TextFormat::FastFieldValuePrinter::PrintString(val, generator);
|
||||
}
|
||||
}
|
||||
|
||||
void SafePrinter::PrintString(const std::string & /*val*/,
|
||||
::google::protobuf::TextFormat::BaseTextGenerator *generator) const
|
||||
{
|
||||
generator->PrintLiteral("\" ---value expunged--- \"");
|
||||
}
|
||||
|
||||
void SafePrinter::applySafePrinter(const ::google::protobuf::Message &message,
|
||||
::google::protobuf::TextFormat::Printer &printer)
|
||||
{
|
||||
const auto *reflection = message.GetReflection();
|
||||
std::vector<const google::protobuf::FieldDescriptor *> fields;
|
||||
reflection->ListFields(message, &fields);
|
||||
for (const auto *field : fields) {
|
||||
switch (field->cpp_type()) {
|
||||
case ::google::protobuf::FieldDescriptor::CPPTYPE_STRING:
|
||||
if (field->name().find("password") != std::string::npos) { // name contains password
|
||||
auto *safePrinter = new SafePrinter();
|
||||
if (!printer.RegisterFieldValuePrinter(field, safePrinter))
|
||||
delete safePrinter; // in case safePrinter has not been taken ownership of
|
||||
}
|
||||
break;
|
||||
case google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE:
|
||||
if (field->is_repeated()) {
|
||||
for (int i = 0; i < reflection->FieldSize(message, field); ++i) {
|
||||
applySafePrinter(reflection->GetRepeatedMessage(message, field, i), printer);
|
||||
}
|
||||
} else {
|
||||
applySafePrinter(reflection->GetMessage(message, field), printer);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // GOOGLE_PROTOBUF_VERSION > 3004000
|
||||
|
||||
QString getSafeDebugString(const ::google::protobuf::Message &message)
|
||||
{
|
||||
#if GOOGLE_PROTOBUF_VERSION > 3001000
|
||||
auto size = message.ByteSizeLong();
|
||||
#else
|
||||
auto size = message.ByteSize();
|
||||
#endif
|
||||
|
||||
::google::protobuf::TextFormat::Printer printer;
|
||||
printer.SetSingleLineMode(true); // compact mode
|
||||
printer.SetExpandAny(true); // prints all fields
|
||||
|
||||
#if GOOGLE_PROTOBUF_VERSION > 3004000
|
||||
// printer takes ownership of the LimitedPrinter and will delete it
|
||||
printer.SetDefaultFieldValuePrinter(new LimitedPrinter());
|
||||
// check field names an create SafePrinters for necessary fields
|
||||
SafePrinter::applySafePrinter(message, printer);
|
||||
#else
|
||||
// removing passwords from debug output will only be supported on newer protobuf versions
|
||||
printer.SetTruncateStringFieldLongerThan(MAX_TEXT_LENGTH);
|
||||
#endif // GOOGLE_PROTOBUF_VERSION > 3004000
|
||||
|
||||
std::string debug_string;
|
||||
printer.PrintToString(message, &debug_string);
|
||||
return QString::number(size) + " bytes " + QString::fromStdString(debug_string);
|
||||
}
|
||||
|
|
@ -1,21 +1,18 @@
|
|||
#include "../../include/game/server_abstract_participant.h"
|
||||
#include "../../include/server/game/server_abstract_participant.h"
|
||||
|
||||
#include "../../color.h"
|
||||
#include "../../deck_list.h"
|
||||
#include "../../deck_list_card_node.h"
|
||||
#include "../../game/server_arrow.h"
|
||||
#include "../../game/server_counter.h"
|
||||
#include "../../get_pb_extension.h"
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/game/server_game.h"
|
||||
#include "../../include/game/server_player.h"
|
||||
#include "../../rng_abstract.h"
|
||||
#include "../../trice_limits.h"
|
||||
#include "../server.h"
|
||||
#include "../server_abstractuserinterface.h"
|
||||
#include "../server_database_interface.h"
|
||||
#include "../server_room.h"
|
||||
#include "../../include/server/game/server_arrow.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_counter.h"
|
||||
#include "../../include/server/game/server_game.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
#include "../../include/server/get_pb_extension.h"
|
||||
#include "../../include/server/server.h"
|
||||
#include "../../include/server/server_database_interface.h"
|
||||
#include "../../include/server/server_room.h"
|
||||
#include "../include/server/server_abstractuserinterface.h"
|
||||
#include "deck_list/deck_list.h"
|
||||
#include "deck_list/deck_list_card_node.h"
|
||||
#include "pb/command_attach_card.pb.h"
|
||||
#include "pb/command_change_zone_properties.pb.h"
|
||||
#include "pb/command_concede.pb.h"
|
||||
|
|
@ -82,6 +79,9 @@
|
|||
#include "pb/response_dump_zone.pb.h"
|
||||
#include "pb/serverinfo_player.pb.h"
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
#include "rng/rng_abstract.h"
|
||||
#include "utility/color.h"
|
||||
#include "utility/trice_limits.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QRegularExpression>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#include "../../include/game/server_arrow.h"
|
||||
#include "../../include/server/game/server_arrow.h"
|
||||
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/game/server_player.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
#include "pb/serverinfo_arrow.pb.h"
|
||||
|
||||
Server_Arrow::Server_Arrow(int _id, Server_Card *_startCard, Server_ArrowTarget *_targetItem, const color &_arrowColor)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
#include "../../include/game/server_arrowtarget.h"
|
||||
#include "../../include/server/game/server_arrowtarget.h"
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/game/server_player.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
#include "pb/event_set_card_attr.pb.h"
|
||||
#include "pb/event_set_card_counter.pb.h"
|
||||
#include "pb/serverinfo_card.pb.h"
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/game/server_player.h"
|
||||
#include "../rng_abstract.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
#include "pb/command_move_card.pb.h"
|
||||
#include "rng/rng_abstract.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QSet>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "../../include/game/server_counter.h"
|
||||
#include "../../include/server/game/server_counter.h"
|
||||
|
||||
#include "pb/serverinfo_counter.pb.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -17,18 +17,18 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include "../../include/game/server_game.h"
|
||||
#include "../../include/server/game/server_game.h"
|
||||
|
||||
#include "../../deck_list.h"
|
||||
#include "../../include/game/server_arrow.h"
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/game/server_player.h"
|
||||
#include "../../include/game/server_spectator.h"
|
||||
#include "../server.h"
|
||||
#include "../server_database_interface.h"
|
||||
#include "../server_protocolhandler.h"
|
||||
#include "../server_room.h"
|
||||
#include "../../include/server/game/server_arrow.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
#include "../../include/server/game/server_spectator.h"
|
||||
#include "../../include/server/server.h"
|
||||
#include "../../include/server/server_database_interface.h"
|
||||
#include "../../include/server/server_protocolhandler.h"
|
||||
#include "../../include/server/server_room.h"
|
||||
#include "deck_list/deck_list.h"
|
||||
#include "pb/context_connection_state_changed.pb.h"
|
||||
#include "pb/context_deck_select.pb.h"
|
||||
#include "pb/context_ping_changed.pb.h"
|
||||
|
|
|
|||
|
|
@ -1,20 +1,17 @@
|
|||
#include "../../include/game/server_player.h"
|
||||
#include "../../include/server/game/server_player.h"
|
||||
|
||||
#include "../../color.h"
|
||||
#include "../../deck_list.h"
|
||||
#include "../../deck_list_card_node.h"
|
||||
#include "../../get_pb_extension.h"
|
||||
#include "../../include/game/server_arrow.h"
|
||||
#include "../../include/game/server_card.h"
|
||||
#include "../../include/game/server_cardzone.h"
|
||||
#include "../../include/game/server_counter.h"
|
||||
#include "../../include/game/server_game.h"
|
||||
#include "../../rng_abstract.h"
|
||||
#include "../../trice_limits.h"
|
||||
#include "../server.h"
|
||||
#include "../server_abstractuserinterface.h"
|
||||
#include "../server_database_interface.h"
|
||||
#include "../server_room.h"
|
||||
#include "../../include/server/game/server_arrow.h"
|
||||
#include "../../include/server/game/server_card.h"
|
||||
#include "../../include/server/game/server_cardzone.h"
|
||||
#include "../../include/server/game/server_counter.h"
|
||||
#include "../../include/server/game/server_game.h"
|
||||
#include "../../include/server/get_pb_extension.h"
|
||||
#include "../../include/server/server.h"
|
||||
#include "../../include/server/server_database_interface.h"
|
||||
#include "../../include/server/server_room.h"
|
||||
#include "../include/server/server_abstractuserinterface.h"
|
||||
#include "deck_list/deck_list.h"
|
||||
#include "deck_list/deck_list_card_node.h"
|
||||
#include "pb/command_attach_card.pb.h"
|
||||
#include "pb/command_change_zone_properties.pb.h"
|
||||
#include "pb/command_concede.pb.h"
|
||||
|
|
@ -81,6 +78,9 @@
|
|||
#include "pb/response_dump_zone.pb.h"
|
||||
#include "pb/serverinfo_player.pb.h"
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
#include "rng/rng_abstract.h"
|
||||
#include "utility/color.h"
|
||||
#include "utility/trice_limits.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QRegularExpression>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "../../include/game/server_spectator.h"
|
||||
#include "../../include/server/game/server_spectator.h"
|
||||
|
||||
Server_Spectator::Server_Spectator(Server_Game *_game,
|
||||
int _playerId,
|
||||
|
|
|
|||
14
libs/server/src/get_pb_extension.cpp
Normal file
14
libs/server/src/get_pb_extension.cpp
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#include "../include/server/get_pb_extension.h"
|
||||
|
||||
#include <google/protobuf/descriptor.h>
|
||||
#include <google/protobuf/message.h>
|
||||
|
||||
int getPbExtension(const ::google::protobuf::Message &message)
|
||||
{
|
||||
std::vector<const ::google::protobuf::FieldDescriptor *> fieldList;
|
||||
message.GetReflection()->ListFields(message, &fieldList);
|
||||
for (unsigned int j = 0; j < fieldList.size(); ++j)
|
||||
if (fieldList[j]->is_extension())
|
||||
return fieldList[j]->number();
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -17,22 +17,22 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include "../include/server.h"
|
||||
#include "../include/server/server.h"
|
||||
|
||||
#include "../debug_pb_message.h"
|
||||
#include "../featureset.h"
|
||||
#include "../include/game/server_game.h"
|
||||
#include "../include/game/server_player.h"
|
||||
#include "../include/server_database_interface.h"
|
||||
#include "../include/server_protocolhandler.h"
|
||||
#include "../include/server_remoteuserinterface.h"
|
||||
#include "../include/server_room.h"
|
||||
#include "../include/server/debug_pb_message.h"
|
||||
#include "../include/server/game/server_game.h"
|
||||
#include "../include/server/game/server_player.h"
|
||||
#include "../include/server/server_database_interface.h"
|
||||
#include "../include/server/server_protocolhandler.h"
|
||||
#include "../include/server/server_remoteuserinterface.h"
|
||||
#include "../include/server/server_room.h"
|
||||
#include "pb/event_connection_closed.pb.h"
|
||||
#include "pb/event_list_rooms.pb.h"
|
||||
#include "pb/event_user_joined.pb.h"
|
||||
#include "pb/event_user_left.pb.h"
|
||||
#include "pb/isl_message.pb.h"
|
||||
#include "pb/session_event.pb.h"
|
||||
#include "utility/featureset.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
#include "../include/server_abstractuserinterface.h"
|
||||
#include "../include/server/server_abstractuserinterface.h"
|
||||
|
||||
#include "../include/game/server_game.h"
|
||||
#include "../include/game/server_player.h"
|
||||
#include "../include/server.h"
|
||||
#include "../include/server_player_reference.h"
|
||||
#include "../include/server_response_containers.h"
|
||||
#include "../include/server_room.h"
|
||||
#include "../include/server/game/server_game.h"
|
||||
#include "../include/server/game/server_player.h"
|
||||
#include "../include/server/server.h"
|
||||
#include "../include/server/server_player_reference.h"
|
||||
#include "../include/server/server_response_containers.h"
|
||||
#include "../include/server/server_room.h"
|
||||
#include "pb/event_game_joined.pb.h"
|
||||
#include "pb/event_game_state_changed.pb.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
#include "../include/server_database_interface.h"
|
||||
#include "../include/server/server_database_interface.h"
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
#include "../include/server_protocolhandler.h"
|
||||
#include "../include/server/server_protocolhandler.h"
|
||||
|
||||
#include "../debug_pb_message.h"
|
||||
#include "../featureset.h"
|
||||
#include "../get_pb_extension.h"
|
||||
#include "../include/game/server_game.h"
|
||||
#include "../include/game/server_player.h"
|
||||
#include "../include/server_database_interface.h"
|
||||
#include "../include/server_room.h"
|
||||
#include "../trice_limits.h"
|
||||
#include "../include/server/debug_pb_message.h"
|
||||
#include "../include/server/game/server_game.h"
|
||||
#include "../include/server/game/server_player.h"
|
||||
#include "../include/server/get_pb_extension.h"
|
||||
#include "../include/server/server_database_interface.h"
|
||||
#include "../include/server/server_room.h"
|
||||
#include "pb/commands.pb.h"
|
||||
#include "pb/event_game_joined.pb.h"
|
||||
#include "pb/event_list_rooms.pb.h"
|
||||
|
|
@ -22,6 +20,8 @@
|
|||
#include "pb/response_list_users.pb.h"
|
||||
#include "pb/response_login.pb.h"
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
#include "utility/featureset.h"
|
||||
#include "utility/trice_limits.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "../include/server_remoteuserinterface.h"
|
||||
#include "../include/server/server_remoteuserinterface.h"
|
||||
|
||||
#include "../include/server.h"
|
||||
#include "../include/server/server.h"
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
|
||||
void Server_RemoteUserInterface::sendProtocolItem(const Response &item)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "../include/server_response_containers.h"
|
||||
#include "../include/server/server_response_containers.h"
|
||||
|
||||
#include "../include/game/server_game.h"
|
||||
#include "../include/server/game/server_game.h"
|
||||
|
||||
#include <google/protobuf/descriptor.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
#include "../include/server_room.h"
|
||||
#include "../include/server/server_room.h"
|
||||
|
||||
#include "../include/game/server_game.h"
|
||||
#include "../include/server_protocolhandler.h"
|
||||
#include "../trice_limits.h"
|
||||
#include "../include/server/game/server_game.h"
|
||||
#include "../include/server/server_protocolhandler.h"
|
||||
#include "pb/commands.pb.h"
|
||||
#include "pb/event_join_room.pb.h"
|
||||
#include "pb/event_leave_room.pb.h"
|
||||
|
|
@ -12,6 +11,7 @@
|
|||
#include "pb/room_commands.pb.h"
|
||||
#include "pb/serverinfo_chat_message.pb.h"
|
||||
#include "pb/serverinfo_room.pb.h"
|
||||
#include "utility/trice_limits.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "../../common/serverinfo_user_container.h"
|
||||
#include "../include/server/serverinfo_user_container.h"
|
||||
|
||||
#include "pb/serverinfo_user.pb.h"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue