IA>>> А unixtime в M_GOT / M_GET / M_SKIP должен совпадать с тем, что IA>>> отправляет M_FILE ?
PG>> Да, файл идентифицируется по трём параметрам: имя, размер, время PG>> модификации. Если какой-то из этих параметров не совпадает, значит, PG>> это другой файл.
IA> И что считается "правильным" поведением, если например был передан M_FILE "00000000.pkt 100 12345678 0", а в ответ пришло IA> "M_GOT 00000000.pkt 100 87654321" ? Дропать передачу, считая что файл не передан? Дропать сессию с ошибкой? Принимать с IA> варинингом в логи? Что-то другое?
Посмотрел по коду - если я правильно понял, binkd игнорирует M_GOT, для которых не нашлось соответствующего отправленного файла (соответствующего - в смысле, у которого совпали все три параметра). Возможно, правильнее было бы при непонятном M_GOT слать M_ERR и дропать сессию - не уверен, как лучше.