# seek tarfile if needed
offset = file_data.get('offset', -1)
if index_data['tarobj']:
- try:
- member = index_data['tarobj'].__iter__().__next__()
- except tarfile.DecryptionError:
- pass
- except tarfile.CompressionError:
- pass
-
- if not member or member.path != file_data['path']:
+ if self._disaster == tarfile.TOLERANCE_RESCUE:
# force a seek and reopen
index_data['tarobj'].close()
index_data['tarobj'] = None
+ else:
+ try:
+ member = index_data['tarobj'].__iter__().__next__()
+ except tarfile.DecryptionError:
+ pass
+ except tarfile.CompressionError:
+ pass
+
+ if not member or member.path != file_data['path']:
+ # force a seek and reopen
+ index_data['tarobj'].close()
+ index_data['tarobj'] = None
+
# open the tarfile if needed
if not index_data['tarobj']: