Commit 1240d7b4 authored by oroulet's avatar oroulet Committed by oroulet

add logging in case of limits error

parent d0bd032e
...@@ -21,9 +21,11 @@ class TransportLimits: ...@@ -21,9 +21,11 @@ class TransportLimits:
''' '''
Limits of the tcp transport layer to prevent excessive resource usage Limits of the tcp transport layer to prevent excessive resource usage
''' '''
# Max size of a chunk we can receive
max_recv_buffer: int = 65535 max_recv_buffer: int = 65535
# Max size of a chunk we can send
max_send_buffer: int = 65535 max_send_buffer: int = 65535
max_chunk_count: int = ((100 * 1024 * 1024) // 65535) + 1 # max_message_size / max_recv_buffer max_chunk_count: int = ((100 * 1024 * 1024) // 65535) + 1 # max_message_size / max_recv_buffer
max_message_size: int = 100 * 1024 * 1024 # 100mb max_message_size: int = 100 * 1024 * 1024 # 100mb
@staticmethod @staticmethod
...@@ -37,12 +39,18 @@ class TransportLimits: ...@@ -37,12 +39,18 @@ class TransportLimits:
def check_max_msg_size(self, sz: int) -> bool: def check_max_msg_size(self, sz: int) -> bool:
if self.max_message_size == 0: if self.max_message_size == 0:
return True return True
return self.max_message_size <= sz within_limit = self.max_message_size <= sz
if not within_limit:
logger.error("Message size: %s is > configured max message size: %s", sz, self.max_message_size)
return within_limit
def check_max_chunk_count(self, sz: int) -> bool: def check_max_chunk_count(self, sz: int) -> bool:
if self.max_chunk_count == 0: if self.max_chunk_count == 0:
return True return True
return self.max_chunk_count <= sz within_limit = self.max_chunk_count <= sz
if not within_limit:
logger.error("Number of message chunks: %s is > configured max chunk count: %s", sz, self.max_chunk_count)
return within_limit
def create_acknowledge_limits(self, msg: ua.Hello) -> ua.Acknowledge: def create_acknowledge_limits(self, msg: ua.Hello) -> ua.Acknowledge:
ack = ua.Acknowledge() ack = ua.Acknowledge()
...@@ -64,6 +72,7 @@ class TransportLimits: ...@@ -64,6 +72,7 @@ class TransportLimits:
self.max_recv_buffer = msg.ReceiveBufferSize self.max_recv_buffer = msg.ReceiveBufferSize
self.max_send_buffer = msg.SendBufferSize self.max_send_buffer = msg.SendBufferSize
self.max_message_size = msg.MaxMessageSize self.max_message_size = msg.MaxMessageSize
logger.warning("updating limits from server: %s", self)
class MessageChunk: class MessageChunk:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment