changeset ec5ebfb65440 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=ec5ebfb65440
description: fix receiving long messages in several parts with BOSH. see #5401

diffstat:

 src/common/xmpp/transports_nb.py |  8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diffs (32 lines):

diff -r 1c864180b75a -r ec5ebfb65440 src/common/xmpp/transports_nb.py
--- a/src/common/xmpp/transports_nb.py  Thu Nov 12 21:42:20 2009 +0100
+++ b/src/common/xmpp/transports_nb.py  Thu Nov 12 22:13:11 2009 +0100
@@ -648,7 +648,8 @@
 
                # append currently received data to HTTP msg in buffer
                self.recvbuff = '%s%s' % (self.recvbuff or '', data)
-               statusline, headers, httpbody, self.recvbuff = 
self.parse_http_message(self.recvbuff)
+               statusline, headers, httpbody, buffer_rest = 
self.parse_http_message(
+                       self.recvbuff)
                
                if not (statusline and headers and httpbody):
                        log.debug('Received incomplete HTTP response')
@@ -668,6 +669,10 @@
                        log.info('not enough bytes in HTTP response - %d 
expected, %d got' %
                                (self.expected_length, len(self.recvbuff)))
                else:
+                       # First part of buffer has been extraced and is going 
to be handled,
+                       # remove it from buffer
+                       self.recvbuff = buffer_rest
+
                        # everything was received
                        self.expected_length = 0
 
@@ -711,6 +716,7 @@
                        headers - dictionary of headers e.g. {'Content-Length': 
'604',
                                'Content-Type': 'text/xml; charset=utf-8'},
                        httpbody - string with http body)
+                       http_rest - what is left in the message after a full 
HTTP header + body
                '''
                message = message.replace('\r','')
                splitted = message.split('\n\n')
_______________________________________________
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to