diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index e351b48..96ecc5e 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -426,12 +426,18 @@ void WorldSession::HandleChatMessage(ChatMsg type, uint32 lang, std::string msg, LocaleConstant locale = GetPlayer()->GetSession()->GetSessionDbcLocale(); QueryResult result; + // SylvaniaCore : meme faille que pour le chuchotement, et meme + // consequence - une erreur SQL abat le worldserver. Le message est + // echappe et borne avant de toucher la requete. + std::string safeGroupMsg = msg.size() > 255 ? msg.substr(0, 255) : msg; + WorldDatabase.EscapeString(safeGroupMsg); + // First try locale specific result = WorldDatabase.PQuery( "SELECT `reply` FROM `ai_talk_group_locale` " "WHERE locale = %u AND '%s' REGEXP cname " "ORDER BY RAND() LIMIT 1", - locale, msg.c_str() + locale, safeGroupMsg.c_str() ); // Fallback in English @@ -441,7 +447,7 @@ void WorldSession::HandleChatMessage(ChatMsg type, uint32 lang, std::string msg, "SELECT `reply` FROM `ai_talk_group` " "WHERE '%s' REGEXP cname " "ORDER BY RAND() LIMIT 1", - msg.c_str() + safeGroupMsg.c_str() ); } diff --git a/src/server/game/Mercenary/MercenaryChat.cpp b/src/server/game/Mercenary/MercenaryChat.cpp index d9d6e73..664ef09 100644 --- a/src/server/game/Mercenary/MercenaryChat.cpp +++ b/src/server/game/Mercenary/MercenaryChat.cpp @@ -745,14 +745,6 @@ bool MercenaryChatMgr::Perform(MercenaryChatRequest const& request, std::string& text << "."; error = text.str(); - - // Trace de diagnostic : le corps envoye, jamais l adresse - chez Gemini - // la cle voyage dans l URL. Le refus d un fournisseur porte presque - // toujours sur ce qu on lui a transmis. - TC_LOG_ERROR("server.worldserver", "Mercenaires (dialogue): refus %ld du fournisseur %s. Corps envoye : %s", - httpCode, GetProviderName(request.provider), payload.c_str()); - TC_LOG_ERROR("server.worldserver", "Mercenaires (dialogue): reponse recue : %s", body.c_str()); - return false; }