[I128-2464] DP_Irbis64r: RecRead не обрабатывает ошибочный ответ SendPacket


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2464] DP_Irbis64r: RecRead не обрабатывает ошибочный ответ SendPacket📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль DP_Irbis64r - Провайдер данных к удаленному TCP/IP серверу ИРБИС 64/64+

Завершено: 29.06.2026 13:44

Проблема При чтении записи через DP_Irbis64r метод RecRead предполагал, что SendPacket('C', ...) всегда возвращает массив строк ответа удалённого сервера. Если сервер ИРБИС возвращал код ошибки или другой немассивный ответ, RecRead обращался к $r10 и мог завершаться PHP-ошибкой вместо корректной передачи ошибки вызывающему коду.

Дополнительно при инициализации провайдера порт из iniфайла передавался как строка, хотя TCPподключение ожидает числовое значение порта.

Причина В RecRead отсутствовала проверка типа результата SendPacket перед разбором пакета. В InitProvider значение PROVIDER.PORT не приводилось к int.

Исправление

Документация Изменение исправляет защитную обработку внутреннего ответа удалённого TCP/IP-провайдера и не требует изменения пользовательской документации.