packetthreshold.py (1654B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\script\net\packetthreshold.py 2 from carbon.common.lib import const 3 4 class PacketThreshold(object): 5 6 def __init__(self, transportName, packetThreshold, machoMode): 7 self._transportName = transportName 8 self._packetThreshold = packetThreshold 9 self._machoMode = machoMode 10 11 def ShouldDropPacket(self, payload, message): 12 if self._IsPacketTooBig(payload) and (self._IsSendingFromTheClient() or self._IsSendingToTheClient(message)): 13 return True 14 return False 15 16 def _IsPacketTooBig(self, payload): 17 return len(payload) > self._packetThreshold 18 19 def _IsSendingToTheClient(self, message): 20 if self._IsProxySendingToClient(): 21 return True 22 if self._IsOnServer(): 23 if self._IsDestinationClient(message): 24 return True 25 if self._IsClientBroadcast(message): 26 return True 27 return False 28 29 def _IsClientBroadcast(self, message): 30 return message.destination.addressType == const.ADDRESS_TYPE_BROADCAST and message.destination.idtype not in ('nodeID', '+nodeID') 31 32 def _IsOnServer(self): 33 return self._machoMode == 'server' 34 35 def _IsDestinationClient(self, message): 36 return message.destination.addressType == const.ADDRESS_TYPE_CLIENT 37 38 def _IsProxySendingToClient(self): 39 return self._transportName == 'tcp:packet:client' 40 41 def _IsSendingFromTheClient(self): 42 return self._transportName == 'ip:packet:server' 43 44 def packet_threshold(self): 45 return self._packetThreshold