plugin XEP-0198: catch and log an error if buffer is unexpectedly empty
This commit is contained in:
parent
303f82d012
commit
5e051ddb20
1 changed files with 11 additions and 2 deletions
|
|
@ -245,8 +245,17 @@ class XEP_0198(object):
|
|||
"""Update buffer and buffer_index"""
|
||||
if server_acked > session.buffer_idx:
|
||||
diff = server_acked - session.buffer_idx
|
||||
for i in xrange(diff):
|
||||
session.buffer.pop()
|
||||
try:
|
||||
for i in xrange(diff):
|
||||
session.buffer.pop()
|
||||
except IndexError:
|
||||
log.error(
|
||||
u"error while cleaning buffer, invalid index (buffer is empty):\n"
|
||||
u"diff = {diff}\n"
|
||||
u"server_acked = {server_acked}\n"
|
||||
u"buffer_idx = {buffer_id}".format(
|
||||
diff=diff, server_acked=server_acked,
|
||||
buffer_id=session.buffer_idx))
|
||||
session.buffer_idx += diff
|
||||
|
||||
def replayBuffer(self, client, buffer_, discard_results=False):
|
||||
|
|
|
|||
Loading…
Reference in a new issue