NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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