Skip to content

Commit

Permalink
Move creation of new_limits into helper
Browse files Browse the repository at this point in the history
  • Loading branch information
rnestler committed Jan 18, 2023
1 parent 580cd88 commit 57aff7e
Showing 1 changed file with 9 additions and 15 deletions.
24 changes: 9 additions & 15 deletions asyncua/common/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,13 @@ def is_chunk_count_within_limit(self, sz: int) -> bool:
logger.error("Number of message chunks: %s is > configured max chunk count: %s", sz, self.max_chunk_count)
return within_limit

def _set_new_limits(self, new_limits: "TransportLimits", role: Literal["client", "server"]) -> None:
def _set_new_limits_from_ack(self, ack: ua.Acknowledge, role: Literal["client", "server"]) -> None:
new_limits = TransportLimits(
max_chunk_count=ack.MaxChunkCount,
max_recv_buffer=ack.SendBufferSize,
max_send_buffer=ack.ReceiveBufferSize,
max_message_size=ack.MaxMessageSize,
)
if new_limits != self:
self.max_chunk_count = new_limits.max_chunk_count
self.max_recv_buffer = new_limits.max_recv_buffer
Expand All @@ -65,13 +71,7 @@ def create_acknowledge_and_set_limits(self, msg: ua.Hello) -> ua.Acknowledge:
ack.SendBufferSize = min(msg.SendBufferSize, self.max_recv_buffer)
ack.MaxChunkCount = self._select_limit(msg.MaxChunkCount, self.max_chunk_count)
ack.MaxMessageSize = self._select_limit(msg.MaxMessageSize, self.max_message_size)
new_limits = TransportLimits(
max_chunk_count=ack.MaxChunkCount,
max_recv_buffer=ack.SendBufferSize,
max_send_buffer=ack.ReceiveBufferSize,
max_message_size=ack.MaxMessageSize,
)
self._set_new_limits(new_limits, "server")
self._set_new_limits_from_ack(ack, "server")
return ack

def create_hello_limits(self, msg: ua.Hello) -> ua.Hello:
Expand All @@ -81,13 +81,7 @@ def create_hello_limits(self, msg: ua.Hello) -> ua.Hello:
msg.MaxMessageSize = self.max_chunk_count

def update_client_limits(self, msg: ua.Acknowledge) -> None:
new_limits = TransportLimits(
max_chunk_count=msg.MaxChunkCount,
max_recv_buffer=msg.SendBufferSize,
max_send_buffer=msg.ReceiveBufferSize,
max_message_size=msg.MaxMessageSize,
)
self._set_new_limits(new_limits, "client")
self._set_new_limits_from_ack(msg, "client")


class MessageChunk:
Expand Down

0 comments on commit 57aff7e

Please sign in to comment.