#1
Сабж ?
// Check info_hash length
if (strlen($info_hash) !== 20) {иOR SUBSTRING(tor.info_hash_v2, 1, 20)Исходя из этого, если какой-то свежий клиент, сделает полноценный BTv2 запрос, в ответ ему прилетит
msg_die('Invalid info_hash: ' . (mb_check_encoding($info_hash, DEFAULT_CHARSET) ? $info_hash : $info_hash_hex));И торрент клиенты с v2 нормально реагируют на этоПотому что они сами обрезают хэш, но это временно, Qbit.... через пару минорных версий в запросах уже будет отправлять все символы.
Потому что они сами обрезают хэш, но это временно, Qbit.... через пару минорных версий в запросах уже будет отправлять все символы.Сразу как это настанет, я уберу обрезание, либо сделаю проверку на то полный хэш отправляется или обрезанный, тем самым можно поддерживать любые версии клиентов
Исходя из этого, если какой-то свежий клиент, сделает полноценный BTv2 запрос, в ответ ему прилетитА какие-то клиенты уже практикуют такое? Я думал это был полет фантазии только разрабов qbittorrent резать хэш до 20 бит для совместимости. Торрент сайты сейчас скорее мертвы, чем живы, а перейти только на v2 значит полностью добить их
//$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');Неправильная конструкция, нельзя экранировать спецсимволы и обрезать пробелы в бинарной строке. Были случаи когда торрент не могли скачать либо не могли зарегистрировать, т.к. после случайного "обрезания" его хэш становился идентичным одному из ранее зареганых торрентов. И чем больше торрентов, тем чаще начнутся проблемы
$info_hash_hex = bin2hex($info_hash);
#info_hash varbinary(20) #info_hash_v2 varbinary(32) WHERE HEX(tor.info_hash) = '$info_hash_hex'
$info_hash_sql = bin2hex(rtrim(DB()->escape($info_hash), ' '));// старые торренты отвалилисиь пришлось вернуть этот костыль
...
WHERE HEX(tor.info_hash) = '$info_hash_hex'
OR HEX(tor.info_hash) = '$info_hash_sql'
OR HEX(tor.info_hash_v2) = '$info_hash_hex'
OR HEX(tor.info_hash_v2) LIKE '$info_hash_hex%'К примеру если пользователь создает торрент в qbittorrent в формате только v2 и пытается прикрепить его к раздаче - я выдаю уведомление, что трекер не поддерживает такой торрент. Создавайте v1 или v1+v2 hybrid. Потому что полно сидеров с сидбоксами на том же трансмишне 3, который не понимет этот форматИнтересный подход... Но в корне неверный ! Не понимает, это пока ! Кстати гибридный торрент тоже временный... В любом случае останется только BTv2.