From 21b67c6fd5fc45b8f5720ca9e950acd8b6d6f0d8 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Tue, 10 Feb 2015 09:45:48 +0100 Subject: [PATCH] implement chunk handling for read data --- check_xmpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/check_xmpp b/check_xmpp index a5c6350..2b0a9e1 100755 --- a/check_xmpp +++ b/check_xmpp @@ -40,6 +40,7 @@ class XmppClientServerResponseHandler(ContentHandler): elif name == (NS_XMPP_CAPS, 'c'): for qname in attrs.getQNames(): self.capabilities[qname] = attrs.getValueByQName(qname) + # print(name, attrs.getQNames()) def endElementNS(self, name, qname): del self.inelem[-1] @@ -110,14 +111,16 @@ class Xmpp(nagiosplugin.Resource): def handle_xmpp_stanza(self, xmppsocket, message_str, timeout=0.1): xmppsocket.sendall(message_str.encode('utf-8')) + chunks = [] while True: rready, wready, xready = select([xmppsocket], [], [], timeout) if xmppsocket in rready: data = xmppsocket.recv(4096) if not data: break - self.parser.feed(data.decode('utf-8')) + chunks.append(data) else: break + self.parser.feed(b''.join(chunks).decode('utf-8')) def handle_client(self, xmppsocket): self.handle_xmpp_stanza(xmppsocket, (