/usr/share/doc/python-jabber/patches/old/22xmlstream.py_OfflineMEssages_v0.3.1.diff is in python-jabber 0.5.0-1.5ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | diff -Naur old/xmlstream.py new/xmlstream.py
--- old/xmlstream.py Wed Sep 18 14:48:04 2002
+++ new/xmlstream.py Fri Oct 25 13:38:05 2002
@@ -263,6 +263,7 @@
self._setParser()
+ self.read_buffer=''
self._host = host
self._port = port
self._namespace = namespace
@@ -370,7 +371,9 @@
data_in = u''
self._setParser()
- if self._connection == TCP:
+ if self.read_buffer and self.read_buffer[-1:]=='>':
+ pass
+ elif self._connection == TCP:
data_in = data_in + \
unicode(self._sock.recv(BLOCK_SIZE),'utf-8').encode(ENCODING,
'replace')
@@ -381,7 +384,7 @@
data_in = unicode(self._sock.recv(BLOCK_SIZE),'utf-8').encode(
ENCODING, 'replace')
- if self._connection == TCP_SSL:
+ elif self._connection == TCP_SSL:
data_in = data_in + \
unicode(self._sslObj.recv(BLOCK_SIZE),'utf-8').encode(ENCODING,'replace')
while data_in:
@@ -405,6 +408,20 @@
self.DEBUG("got data %s" % data )
self.log(data, 'RECV:')
+ self.read_buffer+=data
+ tag1='</'+self.read_buffer[1:find(self.read_buffer,'>')]
+ tag2='</'+self.read_buffer[1:find(self.read_buffer,' ')]
+ if len(tag1)<len(tag2):
+ tag=tag1
+ else:
+ tag=tag2
+ offset=find(self.read_buffer,tag)+len(tag)+1
+ if offset==len(tag):
+ data=self.read_buffer
+ self.read_buffer=''
+ else:
+ data=self.read_buffer[:offset]
+ self.read_buffer=self.read_buffer[offset:]
self._parser.Parse(data)
return data
@@ -427,6 +444,9 @@
def process(self,timeout):
+ if self.read_buffer and self.read():
+ return True
+
reader=Node
if self._connection == TCP:
|