From 4915268e439c19b00ca52e68b569b58fc18c716d Mon Sep 17 00:00:00 2001 From: mark Date: Thu, 9 Aug 2007 22:01:27 +0000 Subject: [PATCH] fix packet throttling with handler overlay --- Scripts/Accounting/AccountAttackLimiter.cs | 16 +++------------- Scripts/Mobiles/PlayerMobile.cs | 6 +----- Server/Network/PacketHandlers.cs | 13 +++++++++++++ 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/Scripts/Accounting/AccountAttackLimiter.cs b/Scripts/Accounting/AccountAttackLimiter.cs index acb646c15..1674adbe8 100644 --- a/Scripts/Accounting/AccountAttackLimiter.cs +++ b/Scripts/Accounting/AccountAttackLimiter.cs @@ -17,19 +17,9 @@ namespace Server.Accounting if ( !Enabled ) return; - RegisterThrottler( 0x80 ); - RegisterThrottler( 0x91 ); - RegisterThrottler( 0xCF ); - } - - public static void RegisterThrottler( int packetID ) - { - PacketHandler ph = PacketHandlers.GetHandler( packetID ); - - if ( ph == null ) - return; - - ph.ThrottleCallback = new ThrottlePacketCallback( Throttle_Callback ); + PacketHandlers.RegisterThrottler( 0x80, new ThrottlePacketCallback( Throttle_Callback ) ) ); + PacketHandlers.RegisterThrottler( 0x91, new ThrottlePacketCallback( Throttle_Callback ) ) ); + PacketHandlers.RegisterThrottler( 0xCF, new ThrottlePacketCallback( Throttle_Callback ) ) ); } public static bool Throttle_Callback( NetState ns ) diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Scripts/Mobiles/PlayerMobile.cs index e8e32bf88..850f400b1 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Scripts/Mobiles/PlayerMobile.cs @@ -389,11 +389,7 @@ namespace Server.Mobiles public static void Initialize() { if ( FastwalkPrevention ) - { - PacketHandler ph = PacketHandlers.GetHandler( 0x02 ); - - ph.ThrottleCallback = new ThrottlePacketCallback( MovementThrottle_Callback ); - } + PacketHandlers.RegisterThrottler( 0x02, new ThrottlePacketCallback( MovementThrottle_Callback ) ); EventSink.Login += new LoginEventHandler( OnLogin ); EventSink.Logout += new LogoutEventHandler( OnLogout ); diff --git a/Server/Network/PacketHandlers.cs b/Server/Network/PacketHandlers.cs index b56c50917..1d5cbe183 100644 --- a/Server/Network/PacketHandlers.cs +++ b/Server/Network/PacketHandlers.cs @@ -251,6 +251,19 @@ namespace Server.Network m_EncodedHandlersHigh.Remove( packetID ); } + public static void RegisterThrottler( int packetID, ThrottlePacketCallback t ) + { + PacketHandler ph = GetHandler( packetID ); + + if ( ph != null ) + ph.ThrottleCallback = t; + + ph = Get6017Handler( packetID ); + + if ( ph != null ) + ph.ThrottleCallback = t; + } + private static void UnhandledBF( NetState state, PacketReader pvSrc ) { }