Core/Networking: Fixes disconnect when trying to send packets larger then 0x400.

This commit is contained in:
hondacrx
2021-03-05 14:18:10 -05:00
parent c79f91521e
commit eca32de055
3 changed files with 12 additions and 12 deletions
+4 -4
View File
@@ -83,7 +83,7 @@ namespace Game.DataStorage
AzeriteTierUnlockSetStorage = ReadDB2<AzeriteTierUnlockSetRecord> ("AzeriteTierUnlockSet.db2", HotfixStatements.SEL_AZERITE_TIER_UNLOCK_SET);
AzeriteUnlockMappingStorage = ReadDB2<AzeriteUnlockMappingRecord> ("AzeriteUnlockMapping.db2", HotfixStatements.SEL_AZERITE_UNLOCK_MAPPING);
BankBagSlotPricesStorage = ReadDB2<BankBagSlotPricesRecord>("BankBagSlotPrices.db2", HotfixStatements.SEL_BANK_BAG_SLOT_PRICES);
//BannedAddOnsStorage = ReadDB2<BannedAddOnsRecord>("BannedAddons.db2", HotfixStatements.SEL_BANNED_ADDONS);
BannedAddOnsStorage = ReadDB2<BannedAddonsRecord>("BannedAddons.db2", HotfixStatements.SEL_BANNED_ADDONS);
BarberShopStyleStorage = ReadDB2<BarberShopStyleRecord>("BarberShopStyle.db2", HotfixStatements.SEL_BARBER_SHOP_STYLE, HotfixStatements.SEL_BARBER_SHOP_STYLE_LOCALE);
BattlePetBreedQualityStorage = ReadDB2<BattlePetBreedQualityRecord>("BattlePetBreedQuality.db2", HotfixStatements.SEL_BATTLE_PET_BREED_QUALITY);
BattlePetBreedStateStorage = ReadDB2<BattlePetBreedStateRecord>("BattlePetBreedState.db2", HotfixStatements.SEL_BATTLE_PET_BREED_STATE);
@@ -244,7 +244,7 @@ namespace Game.DataStorage
RewardPackXItemStorage = ReadDB2<RewardPackXItemRecord>("RewardPackXItem.db2", HotfixStatements.SEL_REWARD_PACK_X_ITEM);
ScenarioStorage = ReadDB2<ScenarioRecord>("Scenario.db2", HotfixStatements.SEL_SCENARIO, HotfixStatements.SEL_SCENARIO_LOCALE);
ScenarioStepStorage = ReadDB2<ScenarioStepRecord>("ScenarioStep.db2", HotfixStatements.SEL_SCENARIO_STEP, HotfixStatements.SEL_SCENARIO_STEP_LOCALE);
//SceneScriptStorage = ReadDB2<SceneScriptRecord>("SceneScript.db2", HotfixStatements.SEL_SCENE_SCRIPT);
SceneScriptStorage = ReadDB2<SceneScriptRecord>("SceneScript.db2", HotfixStatements.SEL_SCENE_SCRIPT);
SceneScriptGlobalTextStorage = ReadDB2<SceneScriptGlobalTextRecord>("SceneScriptGlobalText.db2", HotfixStatements.SEL_SCENE_SCRIPT_GLOBAL_TEXT);
SceneScriptPackageStorage = ReadDB2<SceneScriptPackageRecord>("SceneScriptPackage.db2", HotfixStatements.SEL_SCENE_SCRIPT_PACKAGE);
SceneScriptTextStorage = ReadDB2<SceneScriptTextRecord>("SceneScriptText.db2", HotfixStatements.SEL_SCENE_SCRIPT_TEXT);
@@ -442,7 +442,7 @@ namespace Game.DataStorage
public static DB6Storage<AzeriteTierUnlockSetRecord> AzeriteTierUnlockSetStorage;
public static DB6Storage<AzeriteUnlockMappingRecord> AzeriteUnlockMappingStorage;
public static DB6Storage<BankBagSlotPricesRecord> BankBagSlotPricesStorage;
//public static DB6Storage<BannedAddOnsRecord> BannedAddOnsStorage;
public static DB6Storage<BannedAddonsRecord> BannedAddOnsStorage;
public static DB6Storage<BarberShopStyleRecord> BarberShopStyleStorage;
public static DB6Storage<BattlePetBreedQualityRecord> BattlePetBreedQualityStorage;
public static DB6Storage<BattlePetBreedStateRecord> BattlePetBreedStateStorage;
@@ -603,7 +603,7 @@ namespace Game.DataStorage
public static DB6Storage<RewardPackXItemRecord> RewardPackXItemStorage;
public static DB6Storage<ScenarioRecord> ScenarioStorage;
public static DB6Storage<ScenarioStepRecord> ScenarioStepStorage;
//public static DB6Storage<SceneScriptRecord> SceneScriptStorage;
public static DB6Storage<SceneScriptRecord> SceneScriptStorage;
public static DB6Storage<SceneScriptGlobalTextRecord> SceneScriptGlobalTextStorage;
public static DB6Storage<SceneScriptPackageRecord> SceneScriptPackageStorage;
public static DB6Storage<SceneScriptTextRecord> SceneScriptTextStorage;
-1
View File
@@ -727,7 +727,6 @@ namespace Game.DataStorage
continue;
}
}
HotfixRecord hotfixRecord = new HotfixRecord();
hotfixRecord.TableHash = tableHash;
+8 -7
View File
@@ -243,12 +243,6 @@ namespace Game.Networking
PacketHeader header = new PacketHeader();
header.Read(_headerBuffer.GetData());
if (!header.IsValidSize())
{
Log.outError(LogFilter.Network, $"WorldSocket.ReadHeaderHandler(): client {GetRemoteIpAddress()} sent malformed packet (size: {header.Size})");
return false;
}
_packetBuffer.Resize(header.Size);
return true;
}
@@ -277,6 +271,13 @@ namespace Game.Networking
PacketLog.Write(packet.GetData(), packet.GetOpcode(), GetRemoteIpAddress(), _connectType, true);
ClientOpcodes opcode = (ClientOpcodes)packet.GetOpcode();
if (opcode != ClientOpcodes.HotfixRequest && !header.IsValidSize())
{
Log.outError(LogFilter.Network, $"WorldSocket.ReadHeaderHandler(): client {GetRemoteIpAddress()} sent malformed packet (size: {header.Size})");
return ReadDataHandlerResult.Error;
}
switch (opcode)
{
case ClientOpcodes.Ping:
@@ -376,7 +377,7 @@ namespace Game.Networking
buffer.WriteUInt32(ZLib.adler32(0x9827D8F1, compressedData, compressedSize));
buffer.WriteBytes(compressedData, compressedSize);
packetSize = (ushort)(compressedSize + 12);
packetSize = (int)(compressedSize + 12);
opcode = ServerOpcodes.CompressedPacket;
data = buffer.GetData();