From 456cdd9e018f5b3fb09fc695e07250da1167f9be Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Thu, 22 Jun 2023 07:27:48 +0300 Subject: [PATCH] added fixme for tcp-pex-bug --- .fixme/log | 9 --------- docs/todo/tcp-pex-bug.txt | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 docs/todo/tcp-pex-bug.txt diff --git a/.fixme/log b/.fixme/log index b9afa93f..e69de29b 100644 --- a/.fixme/log +++ b/.fixme/log @@ -1,9 +0,0 @@ - -(fixme-set "workflow" "test" "5Ga1tJnn4x") -(fixme-set "assigned" "voidlizard" "5Ga1tJnn4x") -(fixme-set "workflow" "test" "FhcmCfM2at") -(fixme-set "assigned" "voidlizard" "FhcmCfM2at") -(fixme-set "workflow" "test" "6qvPmyw5mS") -(fixme-set "assigned" "voidlizard" "6qvPmyw5mS") -(fixme-set "workflow" "test" "7KJArHHyUK") -(fixme-set "assigned" "voidlizard" "7KJArHHyUK") \ No newline at end of file diff --git a/docs/todo/tcp-pex-bug.txt b/docs/todo/tcp-pex-bug.txt new file mode 100644 index 00000000..7ecc221d --- /dev/null +++ b/docs/todo/tcp-pex-bug.txt @@ -0,0 +1,23 @@ +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. + +