IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2021/09/03
~R4SAS
~orignal
~villain
&N00B
+relaybot
Leopold
Most2_
Nausicaa
Nikat
Opax
Vort
WayBest_
`
acetone
anon
anontor
b3t4f4c3
banona_
fidoid
itsAMe
karamba_i2p
overflow
poriori
profetikla
qend
r00tobo
soos
teeth
tensor_
typhoon
un
weko
whothefuckami
колдоёбина
колдырь
acetone кажется, вопрос оказался незамеченным: "нельзя ли перегрузить группу роутеров, создавая "рекурсивные чесноки", которые создадут замкнутый цикл из роутеров, которые будут передавать их самим же себе? Никто же не знает, сколько раз чеснок уже был на
acetone этом роутере"
acetone orignal: ^
R4SAS колчество ведь ограничено
R4SAS 8 прыжков
R4SAS так что наверно не получится, и чесноки после декодированияя ведь удаляются
R4SAS получил пакет, раскодировал свой чеснок, удалил его, передал дальше
R4SAS как они закончятся, вс остановится
R4SAS я так то понимаю
acetone R4SAS: какой параметр в конфиге отвечает за локализацию? чот не нашел сходу)
orignal я не понял вопрос
acetone orignal: это вопрос из комментариев на ютубе) суть в том, чтобы флудить сеть чесноками, которые передавались бы бесконечно)
acetone и тут ответ: зубчик заменяется ответом, поэтому не получится
orignal ааа ну ответ такой
orignal в i2p нет реального чесночного шифрования кроме как для построения тоннелей
orignal а там как ты знаешь число зубчиков ограничено 8
orignal ну и промежуточный узел сформировать и зашифровать инструкции вместо ответа не может
acetone ага
R4SAS acetone: http.locale
acetone R4SAS: спасибо
R4SAS точнее http.lan
R4SAS ## Currently supported english (default), afrikaans, russian, turkmen, ukrainian and uzbek languages
R4SAS # lang = english
acetone R4SAS: нашел)
acetone до этого два раза пролистывал и не мог увидеть
R4SAS такс... чего там надо было делать... чет не вспомню уже
orignal я тоже
R4SAS пока чутка времени есть
orignal флуфдилы профилировать
orignal попробуй починить HUP
R4SAS так я не понимаю че там не так
R4SAS если верно понимаю, то должно читать все туннели и проверять изменения
R4SAS если их нет, то пропускать
orignal так надо понять почему ломаются
R4SAS если есть изменения, то останавливать туннель, и запускать с новыми параметрами
R4SAS так вот не ясно
orignal вот и попробуй понять
R4SAS легко сказать
orignal еще можешь попробовать начать делать SIP тоннели
orignal чтобы там в SIP сообщениях подменять порты
R4SAS так это надо на ходу поднимать туннель
R4SAS точнее листнеры
R4SAS не, эт позже
orignal ничего не надо
orignal надо просто в сообщение вставлять нужный и все
R4SAS у тебя на стороне сервера то должно знать куда слать
R4SAS у тебя на сервере будет ждать пакеты на определенном порту
R4SAS а на клиенте на тобой указанном для сипа
orignal так вот куда слать и будет ему передаваться порт тоннеля
orignal и 127.0.0.1
R4SAS да на клиенте то ясно
R4SAS а на сервере как?
orignal клиент соединился
orignal передал свой порт в сообщении
R4SAS как ты запомнишь куда надо там отсылать пакеты клиента?
orignal мы в тоннеле его перехватили
orignal и подставили порт своего тоннеля
orignal сервер будет отвечать на заданный нами порт
R4SAS еще раз
R4SAS 1. клиент начинает SIP сессию
R4SAS 2. сервер говорит: я слушаю RTMP на 127.0.0.1:5900
R4SAS 3. пересылаем через ш2з что сервер слушает на 127.0.0.1:5900
R4SAS 4. на клиентской стороне видим пакет и видим что мы указали в конфиге туннеля слушать RTMP на 3080 например. перезаписываем пакет
R4SAS и отсылаем что сервер слушает на 127.0.0.1:3080
R4SAS 5. клиент шлет на 127.0.0.1:3080, данные шлются на ш2з сервера, а сервер то куда отошлет
R4SAS это надо как то запомнить что данные надо на 5900 отослать
orignal ну да таблица надо держать конечно
R4SAS ну вот
R4SAS а только вопрос один
R4SAS если SIP и RTMP будет разными портами
R4SAS и двумя разными туннелями
R4SAS то как таблицу хранить то, и где
orignal неее
orignal надо SIP тоннель двойной
orignal который сразу и SIP и RTMP обрабатывает
R4SAS я про серверную сторону
R4SAS как ты такое сделаешь?
R4SAS SIP же на UDP, TCP?
R4SAS значит 2 UDP туннеля надо
orignal ну по сути да
R4SAS либо TCP+UDP
orignal но логичнски мы делаем одним
R4SAS не, это 2 туннеля, но с одним адресом как я понимаю
R4SAS тогда да
R4SAS тогда можно на сервере сохранить в таблицу что для такого то b32 сервер слушает на таком то порту
orignal вот я так и хочу
R4SAS скажи ка вот что
R4SAS void ClientContext::Stop ()
R4SAS LogPrint(eLogInfo, "Clients: stopping HTTP Proxy");
R4SAS m_HttpProxy->Stop();
R4SAS delete m_HttpProxy;
R4SAS m_HttpProxy = nullptr;
R4SAS delete, а потом nullptr
R4SAS эт нормально ?
R4SAS разве не наоборот надо?
orignal так и надо делать
orignal сначала delete потом зануление
R4SAS почему?
orignal мы удаляем указатель
R4SAS ну а в релоаде у нас такое:
R4SAS // recreate HTTP proxy
R4SAS if (m_HttpProxy)
R4SAS m_HttpProxy->Stop ();
R4SAS m_HttpProxy = nullptr;
R4SAS ReadHttpProxy ();
orignal а потом говорит что куда он показывает что невадино
orignal плохо что delete не делам
R4SAS добавлю
orignal кстати m_HttpProxy какого типа
orignal погоди
R4SAS i2p::proxy::HTTPProxy * m_HttpProxy;
orignal тогда да надо добиавть delete
R4SAS class HTTPProxy: public i2p::client::TCPIPAcceptor
orignal я видать там подумал что он shared_ptr
R4SAS не проверяем
R4SAS по идее там просто 2 строки добавить на m_ClientForwards и m_ServerForwards?
orignal я не знаю что тут псих задумал
R4SAS это
R4SAS и ниже типа удалять должно
orignal неее
orignal там же лямбда передается
R4SAS ну, он везде фолс ставит в параметрах туннеля
R4SAS нет?
R4SAS точнее не так
R4SAS он сначала просто проходится по списку, везде изменяя параметр, но return true не дает ничего удалить
R4SAS а при втором проходе смотрится уже возвращенное значение
R4SAS и тут происходится удаление туннеля если false осталось
R4SAS (а вобще это дичь какая та)
orignal вот и надо разбираться с логикой
orignal дык ясное дело что дичь
orignal все
orignal выпилил тоннели через эль-гамаль
R4SAS orignal: m_SharedLocalDestination->Release ();
R4SAS Release из std::shared_ptr?
orignal нет
orignal там какой то счетчик свой есть
R4SAS int Release () { return --m_RefCounter; };
R4SAS ясно
R4SAS мы почему то не делаем этого перед остановкой ш2зв
R4SAS сразу nullptr
R4SAS и никаких Stop не вижу
orignal а x3
orignal я уже не помню чего я там нагородил ))
R4SAS orignal: слушай, я не понимаю
orignal чего?
R4SAS auto ins = m_ServerTunnels.insert (std::make_pair ( std::make_pair (localDestination->GetIdentHash (), inPort), serverTunnel));
R4SAS ins.first->second->isUpdated = true;
R4SAS что в этом случае first?
R4SAS std::map<std::pair<i2p::data::IdentHash, int>, std::shared_ptr<I2PServerTunnel> > m_ServerTunnels;
orignal первый или второй?
orignal там возвращает пару <итератор, вставлено>
orignal <R4SAS> ins.first->second->isUpdated = true;
orignal про какой first ты говоришь?>
R4SAS который после точки
R4SAS ins.first
orignal это итератор показывающий на элемент мапа
orignal у него в свою очередь first это ключ
R4SAS т.е. там мап, и на нем сразу же берез значение?
orignal а second это значение
R4SAS берем*
orignal так поотому и делаем first->second
R4SAS т.е. там будет I2PServerTunnel в итоге?
orignal да. указатель на него
R4SAS ок
R4SAS ща попробую разобраться с удалением UDP
R4SAS neyytktq
R4SAS туннелей
R4SAS но вообще, мне логика перезагрузки туннелей не нравится
orignal мне тоже
R4SAS то что просто меняется значение что не обнолен, а потом просто загружается заново
R4SAS а тогда в этом ins под second что будет?
orignal в second что обновлен или старый
orignal он типа bool
R4SAS т.е. если загрузиьт такой же точь в точь туннель, то скажет false?
R4SAS и какие критерии определяют такой же он или нет?
R4SAS эм, а как UDP туннели деинциализируются?
R4SAS лол,Ю ни как
R4SAS только деструктором...
R4SAS да уж
R4SAS смотри что происходит
R4SAS Clients: New transient keys address ... created
R4SAS Destination: parameters for tunnel set to: ...
R4SAS Clients: I2P client tunnel destination updated
R4SAS Clients: I2P client tunnel for endpoint 127.0.0.1:XXXX already exists
R4SAS значит по факту туннель не запускается
R4SAS если я пытаюсь на 127.0.0.1:XXXX стучаться, то меня просто отбрасывает
R4SAS изменение I2CP параметров не решает проблемы
R4SAS т.е. даже после изменения деста ломается
R4SAS я верно понимаю что оно дает false на ins.second ибо видит что есть подобный туннель таким же endpoint?
R4SAS я чет не уверен, что это:
R4SAS TCPIPAcceptor (address, port, localDestination)
R4SAS будет работать после вызова
R4SAS ins.first->second->SetLocalDestination (clientTunnel->GetLocalDestination ());
R4SAS вызывающего это:
R4SAS я так понимаю в любом случае надо останавливать TCPIPAcceptor
R4SAS делать замену и потом запускать заново
R4SAS видимо из-за этого и начинает именно падать при остановке после релоада
R4SAS да, остановка, замена и запуск туннеля пофиксили
R4SAS ins.first->second->SetLocalDestination (clientTunnel->GetLocalDestination ());
R4SAS ins.first->second->Start ();
R4SAS дест запустился корректно
R4SAS и порт отвечает
R4SAS orignal: у тебя походу оно не отваливалось после релоада потому что ты на статичных ключах проверял
orignal возможно
orignal тогда коммить
orignal кто?
orignal LeaseSets: 176
orignal однако
R4SAS orignal: сначала объясни как поправить ту хрень
R4SAS которую нагородил псих
R4SAS VisitTunnels
R4SAS VisitTunnelsContainer (m_ClientForwards, v) не проканывает ибо в лямбде передается (I2PService * s)->bool
orignal а что ты хочешь?
R4SAS сделать чтобы только { s->isUpdated = false; return true; } передавалось, а тип ставить в самом VisitTunnels
R4SAS т.е. по факту что эта хрень делает
R4SAS они сначала ставит всем туннелям isUpdated = false
R4SAS а потом, после обновления туннелей топять проходит итерацией по всем, смотрит на isUpdated, и если он false, то делает остановку и удаление туннеля в
R4SAS в VisitTunnelsContainer
orignal не понимаю вопроса
orignal в том смысле что тебе нужно
orignal можешь вообще без этого всего
orignal просто в том месте напиши итератор по списку тоннелей и все
R4SAS попробую
orignal эти Visit* умножение сущностей без надобности
R4SAS а как там итерацию сделать по всем?
R4SAS каждый отдельно?
orignal for (auto it: m_Tunnels)
orignal как обычно
orignal в 17 можно for (auto [ident, dest]: m_Tunnels)
R4SAS так
R4SAS чятднт?
R4SAS m_ServerTunnels.erase(it.first);
R4SAS это как я понимаю не правильно, особенно в итераторе
R4SAS копию списка делать?
R4SAS вот так в общем пытался сделать
orignal m_ServerTunnels.erase(it.first);
orignal так нельзя
orignal потому что ты ломаешь сам итератор
orignal посмотри как у меня сделано
orignal в этом случше
orignal в Tunnels.cpp например
R4SAS for (auto it = pendingTunnels.begin (); it != pendingTunnels.end ();)
R4SAS такое?
R4SAS типа так
R4SAS но после релоада вылет
R4SAS ладно, завтра наверно
R4SAS если время будет