~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
DUHOVKIN_
Gamma
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
`
anon3
b3t4f4c3
fidoid
henry
hypn--direct
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tensor
tetrimer_
uis
un
unlike
user
weko
whothefuckami_
acetone
не смотрел еще что там под капотом, но libi2psam на getMyDestination().pub возвращает почему-то адрес без окончания "AAcAAA==", то есть дописывать самому приходится (при sig type 7), иначе дест просто не валидный
R4SAS
acetone: эт че за либа
acetone
R4SAS: i2psam
acetone
вроде как единственная либа под SAM на C++
R4SAS
которая в гст лежит?
acetone
R4SAS: вроде как да, но я ее брал с репозитрия i2pproject вроде как
acetone
или в гст она допиленная дополнительно? :)
R4SAS
там лось что то делал
R4SAS
посмотри diff лучше
orignal
бери ее из госткойна
orignal
старая он только под dsa
acetone
понял, принял)
acetone
orignal: оказывается i2psam от i2pproject с 2019 года тоже умеет github.com/i2p/i2psam/commits/master
R4SAS
acetone: это та же самая либа
R4SAS
просто там мех как то по своему писал для гвк
orignal
неее
orignal
у гвк только dsa
orignal
acetone я думаю они просто длину забыли изменить
acetone
orignal: можно через сам bb32 (b33) лизсет создать?
acetone
т.е зашифрованный
orignal
конечно
orignal
параметр передай и все
orignal
i2cp.leaseSetEncType=5
acetone
orignal: i2pd стабильно падает при одном сценарии (сейчас опишу), вот конец дебажного лога перед крэшем: paste.i2pd.xyz/?81a7326d52cc9a2d#4M6cniD4xfWrr5fdJomJkoke4bevWVx2bhs4T5jsSJTB
acetone
даже "еррор" нету
acetone
при работе с SAM'ом это происходит
orignal
ну а кокретно что случается,
orignal
сессия закрывается?
acetone
orignal: i2pd закрывается
acetone
сейчас попробую в разных вариациях воспроизвести сценарий падения, чтобы лучше понять
orignal
нет ты не понял
orignal
какой сценарий
orignal
просто работал себе и закпылся?
orignal
не дума.
acetone
orignal: именно так)) я уже близок к тому, чтобы точно понять сценарий
orignal
я думаю там у тебя сессия отваливается
acetone
orignal: да, сессия отваливается, но тут же и i2pd закрывается
orignal
так это старая беда
orignal
давай стек
acetone
orignal: у меня это всё сейчас только под виндовсами, как можно стек выдать?
orignal
никак
orignal
или жди R4SAS -а
acetone
orignal: короче, если в параметр "i2cp.leaseSetEncType=5" не передавать, то не крешится
orignal
ага
acetone
а если передать - всяму пязда)
orignal
это я проверю
orignal
если честно я никогда не пробовал ))
acetone
верю))
acetone
я даже i2psam из госта взял вместо прежнего) всё также, но в гостовском аутпут подробный
acetone
проверил, в гостовском i2psam getMyDestination().pub имеет корректный вывод
orignal
ну в i2psam просто длину не поменяли я думаю
orignal
потому что у них руки кривые
acetone
orignal: пожалуй последний вопрос про сэм на сегодня: могу я скормить сэму обычный файл с ключами, а не base64 указывать?
orignal
нет
orignal
только base64 требуется
orignal
и как ты ему скормишь файл?
orignal
там же текст требуется
orignal
ясное дело что ты можешь прочитать файл и сделать из него base64
acetone
эврика, самому прочитать и скормить
acetone
трюк с временными ключами имеет право на жизнь в этом случае?
orignal
какими?
orignal
это я не уверен
orignal
надо вспомнить
acetone
по замыслу так: сервер работает через сэм, но чтобы спать спокойно, ключик хочется использовать временный. если бы не так, вообще base64 можно было бы захардкодить
orignal
тут подумать надо
orignal
скорее всего можно
orignal
если тупо весть .dat файл в base64 передать
acetone
orignal: буду пробовать, отпишу по результатам)
acetone
orignal: вывод i2pbase64 слишком коротковат, чтобы сравняться с DESTINATION, не хочет работать - INVALID_ID. Но так не только с оффлайн ключами, но и с обычным ключом, прочитанным через base64
orignal
так надо по отдельности читать потому что
orignal
снчала публиную часть потом секретную
orignal
далее из публичного ключа еще надо сделать Identity
acetone
ага, значит не всё так просто)
orignal
короче дай подумать
orignal
думаю что можно временные ключи сконвертировать в base64
orignal
понимаешь технически там все равно из этого base64 делается класс PrivateKeys
acetone
orignal: т.е. можно попробовать прочитать временный ключ, а остальную длину DESTINATION забить мусором, потому что всё равно только PrivateKeys нужен, или как?
orignal
там сложная структура
orignal
private keys там вроде бы должен быть все нули
orignal
это надо по коду смотреть
R4SAS
acetone: на винде без msys никак
R4SAS
и надо собрать дебажный самому
R4SAS
либо как то 250мб передать тебе
acetone
orignal: если это дело сложное, тогда вполне разумно отказаться от SAM на сервере и юзать обычный сервер с серверным туннелем, на котором будет висеть традиционный временный ключ. при обновлении ключа перезагружать туннели (ключи же тоже перечитываются?)
acetone
R4SAS: msys2 есть
R4SAS
ну собирай через него без дебага
acetone
R4SAS: _без_ ?
R4SAS
имеется в виду без DEBUG=no
acetone
ну да да, так и собран, я к этому
R4SAS
f
R4SAS
а
R4SAS
ну тогда gdb ./i2pd.exe из папки
R4SAS
и потом run
R4SAS
а дальше как всегда воспроизводишь ошибку
acetone
R4SAS: вначале gdb ругается, что нет дебажных символов))
acetone
точно ли без дебага файлик нужен?)
orignal
конечно
acetone
R4SAS: попробовал и так и сяк, а где файл coredump искать? в той же директории его нет, пробовал явно указывать --core=BLABLA.core
orignal
надо собиратьс с -g вместо -s
orignal
под виндой не бывает core файлов
orignal
ты запускаешь gdb и там r
orignal
потом ждешь пока грохнется
acetone
так
acetone
грохается, а дальше?
orignal
а дальше where
acetone
оно?
orignal
оно но надо собирать с отладкой
acetone
момент
orignal
ну понятно
R4SAS
acetone: с дебагом
acetone
R4SAS: ага, разобралися
R4SAS
добавил плюшку в reg
R4SAS
кому надо, тот её найдет
R4SAS
но она так, не очень важная. просто чтобы было
orignal
лучше не на гит
orignal
лучше прямо мне копию в мускул на ovh
orignal
а что с тобой то может случиться?
orignal
ты явно не помрешь от старости как я
acetone
сейчас на OVH кажется надежнее всех)) молния два раза в одно место не бьет ;)
orignal
ты видел как у них дц устроены?
acetone
нет
orignal
там морские контенеры в стопку составлены
orignal
так что вопрос не в том случится ли жопа
orignal
а вопрос лишь когда
acetone
ахаха, ох
orignal
ядерный удар оно точно не выдержит ))
R4SAS
orignal: какая разница куда
R4SAS
просто для имения резервной копии
R4SAS
orignal: а в чем разница между SSUPacket и новым PacketPoolMt?
R4SAS
(m_PacketsPool)
orignal
это пул их
orignal
чтобы каждый раз память не выделять
R4SAS
а, т.е. на SSUPacket выделение происходило?
orignal
да
R4SAS
а как с gzip разбираться будешь?
R4SAS
тогже пул сделаешь?
R4SAS
посмотрел как делают в поектах Init для gzip
R4SAS
там почемк то обычно делают через z_stream
R4SAS
а нельзя разве делать init не при создании объекта, а при вызове m_Deflator.init например
R4SAS
сейчас попроую сделать как я сказал
R4SAS
вот так сделал
R4SAS
и теперь нет тех 4-х выделений памяти
orignal
а зачем?
R4SAS
а смысл делать инициализацию если оно не используется?
orignal
обхясни толком что ты сделал
R4SAS
перенес инициализацию deflator из конструктора в void Init
R4SAS
и вызываю его только если у нас gzip = true
orignal
так погоди
orignal
это в стримах?
R4SAS
да
orignal
так сделай его std::unque_ptr и все
orignal
создаешь только когда gzip=true
R4SAS
всм
R4SAS
он у тебя при вызове класса создается
orignal
вместо i2p::data::GzipDeflator m_Deflator;
R4SAS
i2p::data::GzipDeflator m_Deflator;
orignal
std::unique_ptr<i2p::data::GzipDeflator> m_Deflator;
R4SAS
а
R4SAS
ну, а дальше?
R4SAS
как создавать?
orignal
в конуструкторе
orignal
if (m_Gzip)
orignal
m_Defator.reset (new i2p::data::GzipDeflator);
R4SAS
эм
orignal
ну и обращение к нему через ->
orignal
с проверкой на nullptr
R4SAS
ну а с inflate как тогда быть?
R4SAS
там такое не провернешь
orignal
его не трогай
orignal
он всегда нужен
R4SAS
хотя там пасяти выделяется всего 128 кб
R4SAS
так что можно не дергать
orignal
а по хорошему надо бы новоое соообщение Data без всей этой дури
orignal
acetone смотри PrivateKeys.FromBase64
orignal
короче .dat файлв в base64 должен работать
orignal
и сравни с ClientContext::LoadPrivateKeys