Skip to content

Commit 6cef035

Browse files
committed
made a few tiny changes after review
1 parent 7a19441 commit 6cef035

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

zabbix_utils/common.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,21 +173,23 @@ def create_packet(cls, payload: Union[bytes, str, dict],
173173
return packet
174174

175175
@classmethod
176-
def receive_packet(cls, conn: socket, size: int) -> bytes:
176+
def receive_packet(cls, conn: socket, size: int, log: Logger) -> bytes:
177177
"""Receive a Zabbix protocol packet.
178178
179179
Args:
180180
conn (socket): Opened socket connection
181181
size (int): Expected packet size
182+
log (Logger): Logger object
182183
183184
Returns:
184185
bytes: Received packet content
185186
"""
186187
buf = b''
187188

188-
while True:
189+
while len(buf) < size:
189190
chunk = conn.recv(size - len(buf))
190191
if not chunk:
192+
log.debug("Socket connection was closed before receiving expected amount of data.")
191193
break
192194
buf += chunk
193195

@@ -209,7 +211,7 @@ def parse_packet(cls, conn: socket, log: Logger, exception) -> str:
209211
str: Body of the received packet
210212
"""
211213

212-
response_header = cls.receive_packet(conn, cls.HEADER_SIZE)
214+
response_header = cls.receive_packet(conn, cls.HEADER_SIZE, log)
213215
log.debug('Zabbix response header: %s', response_header)
214216

215217
if (not response_header.startswith(cls.ZABBIX_PROTOCOL) or
@@ -233,8 +235,8 @@ def parse_packet(cls, conn: socket, log: Logger, exception) -> str:
233235
)
234236
# 0x02 - Using packet compression mode
235237
if flags & 0x02:
236-
response_body = zlib.decompress(cls.receive_packet(conn, datalen))
238+
response_body = zlib.decompress(cls.receive_packet(conn, datalen, log))
237239
else:
238-
response_body = cls.receive_packet(conn, datalen)
240+
response_body = cls.receive_packet(conn, datalen, log)
239241

240242
return response_body.decode("utf-8")

zabbix_utils/sender.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,8 @@ def __init__(self, host: str, key: str, value: str,
209209
raise ValueError(
210210
'The ns value must be expressed in the integer value of nanoseconds') from None
211211

212-
def __to_string(self) -> str:
213-
return json.dumps(self.to_json(), ensure_ascii=False)
214-
215212
def __str__(self) -> str:
216-
return self.__to_string()
213+
return json.dumps(self.to_json(), ensure_ascii=False)
217214

218215
def __repr__(self) -> str:
219216
return self.__str__()

0 commit comments

Comments
 (0)