mirror of https://github.com/voidlizard/hbs2
24 lines
1.5 KiB
Plaintext
24 lines
1.5 KiB
Plaintext
FIXME: ASAP-wrong-ports-in-pex
|
||
В PEX попадают TCP порты, которых там быть не должно ---
|
||
это автоматически назначаемые порты второй стороны, либо
|
||
приходящие еще откуда.
|
||
В PEX должны попадать **только** те порты, которые
|
||
|
||
1. Пришли из Peer Meta
|
||
2. К которым есть/было успешное TCP соединение, даже если
|
||
оно было впоследствии дропнуто
|
||
|
||
Предлагаемая схема работы:
|
||
- Протаскиваем везде Brains либо заводим новый класс (аспект), который
|
||
фиксирует *факты* про пиров и реализуем его для Brains
|
||
- Получаем meta, фиксируем TCP порт из meta, ключ - ip адрес пира
|
||
- Пробуем открыть TCP соединение, после прохождения handshake -- фиксируем
|
||
факт прохождения handshake
|
||
- Фиксируем факт наличия пинга к данному пиру по протоколу TCP
|
||
- Время от времени выбираем пиров, которые есть в этих фактах, но отсутствуют
|
||
в PEX
|
||
- Если существуют пиры, для которых есть эти 3 факта и которых нет в PEX --- добавляем
|
||
их в PEX.
|
||
|
||
|