touchdown_counter = 1
touchdown = None
- while touchdown or touchdown_counter == 1:
- seg = segment_factory(touchdown)
+ def _continue(command_seg, rm):
+ nonlocal touchdown_counter
- rm = dialog.send(seg)
-
- for resp in rm.response_segments(seg, *args, **kwargs):
+ for resp in rm.response_segments(command_seg, *args, **kwargs):
responses.append(resp)
touchdown = None
- for response in rm.responses(seg, '3040'):
+ for response in rm.responses(command_seg, '3040'):
touchdown = response.parameters[0]
break
logger.info('Fetching more results ({})...'.format(touchdown_counter))
touchdown_counter += 1
+ while touchdown:
+ seg = segment_factory(touchdown)
+ self._send_with_possible_retry(dialog, seg, _continue)
+ seg = segment_factory(touchdown)
+ self._send_with_possible_retry(dialog, seg, _continue)
return responses
def _find_highest_supported_command(self, *segment_classes, **kwargs):
tan_mechanism.description_required == DescriptionRequired.MUST:
seg.tan_medium_name = self.selected_tan_medium.tan_medium_name
+ if tan_process == '4' and tan_mechanism.VERSION >= 6:
+ seg.segment_type = orig_seg.header.type
+
if tan_process in ('2', '3'):
seg.task_reference = tan_seg.task_reference
Language2.DE,
self.client.product_name,
self.client.product_version
- )
+ ),
]
+ if self.client.mode == FinTSClientMode.INTERACTIVE and self.client.get_tan_mechanisms():
+ segments.append(self.client._get_tan_segment(segments[0], '4'))
for s in extra_segments:
segments.append(s)