~dr|z3d
@RN
@RN_
@T3s|4
@eyedeekay
@postman
@zzz
%Liorar
%acetone
%cumlord
%snex
+FreefallHeavens
+Leopold
+Xeha
+ardu
+bak83
+hk
+mareki2p
+profetikla
+qend-irc2p
+r00tobo
+uop23ip
Arch
BubbRubb
Danny
DeltaOreo
FreeRider
HowardPlayzOfAdmin
Irc2PGuest44301
Irc2PGuest56179__
Irc2PGuest73758
Meow
Onn4l7h
Onn4|7h
T3s|4__
anontor
boonst
evasiveStillness
l337
not_bob_afk
not_human
pisslord
poriori_
r00tobo[2]
shiver_
simprelay
solidx66
thetia
u5657
weko_
zer0bitz
mareki2p
Hi, I did some programming after some time, and I figured some (interesting?) router behavior (java, non-plus). When I create my new app that connects via I2CP, I can create a session. The router sends me (among request lease set) a SetDate message from time to time. Exactly 1x per 10minutes. I can also create new sub-session inside this single I2CP connection. So far so good. But then, the router will send me
mareki2p
2 SetDate messages every 10minutes. They arrive exactly at the same moment and they contain exactly the same server time. Even the SetDate is not intended to be per-session as it does not contain any session id. So, is this an oversight in server logic? Is it considered wasteful to send exactly the same message twice?
zzz
sounds like a bug
dr|z3d
some tweaks to the /tracker page.. I'll host the code on git.skank when I've finished. drop.i2p/paste/174186be89e54230b99129d6b4ffc8a2
dr|z3d
tracker urls also lose the href, retaining the same styling, but are now click to select all. doesn't make sense having hrefs there.
orignal
when should I send SetDate through I2CP?
mareki2p
i2pd does not send SetDate I2CP messages just willy-nilly, it sends it upon request from client, when it asks via GetDate message, usually only at I2CP connection startup, Java router sends them whenever they want, without being asked for them, it is exactly (up to 10ms) 1x per 10minutes, it is mentioned somewhere in the docs
mareki2p
0.9.20 Additional SetDate messages may be sent to the client at any time
mareki2p
Additional SetDate messages will not be sent to clients in the same JVM.
orignal
i2pd doesn't send at all
orignal
that's why I'm asking
mareki2p
Yes, i2pd does send SetDate message, single message, at the start of I2CP communication. It does not send the server version field in that message, but it does send it.
orignal
I mean periodially nit during handshake
zzz
oooh you don't return your version? that's bad, it means we can't use host lookup
zzz
can you fix that please orignal ?
mareki2p
Do clients require that string? Do they act upon it? First time I read the docs few months ago I was a lot confused, because I was expecting separate I2CP version number from Java Router version number. So I decided to ignore that field and handle unrecognized messages when they happen.
zzz
it's the API version
zzz
it's not required but if it's not present we have to assume 0.8.6 or older, which is 14 years ago, no new features since then
orignal
please tell me what I need to fix
mareki2p
Maybe I will hit some problems with it in the future. For now I decided to re-write my software from scratch. And I have no ide how or if I even implement streaming. It is still in super very early stage.
mareki2p
i2pd does not need to fix anything as nothing is broken with it
dr|z3d
if i2pd doesn't send api version, that needs fixing, as zzz just indicated.
mareki2p
Oh, sorry I was still thinking about the date message, I'm very tired, sorry.
mareki2p
*about the periodical date messsage
zzz
or maybe you don't support host lookup...
zzz
orignal, go thru the version chart at the top, see what version you support, then include that version in the setdate message
zzz
as specified
orignal
version of what?
zzz
stand by
mareki2p
Also the docs say that the RequestVariableLeaseSetMessage is only for clients since 0.9.7, but i2pd does not care about any version numbers and uses that message.
zzz
mareki2p, are you sure he doesnt send it? I see it in his code
mareki2p
i2pd does send SetDate message, but with empty versio string
zzz
mareki2p, orignal, I2CP.cpp line 633
zzz
mareki2p, are you sending a version?
orignal
yes, I see one
orignal
so I send it back
mareki2p
No, I'm sending empty string.
zzz
orignal, don't echo client version. Send your API version
zzz
so you both have a bug. mareki2p don't send empty string. orignal send your version, don't echo client version
orignal
so I receive GetDate and send it back
zzz
yes but send your API version 0.9.xx
orignal
how and when should I send unsolicited?
zzz
you don't need to send unsolicited. We do because we have internal clock adjustment. I don't think you do?
zzz
repost
zzz
so you both have a bug. mareki2p don't send empty string. orignal send your version, don't echo client version
orignal
so API version is like 0.9.66 ?
zzz
correct
orignal
will fix
orignal
thanks
zzz
in "string" format, length + string
orignal
e.g. pascal string
zzz
:)
orignal
you are old ennough to remeber pascal ))
mareki2p
I have not heard that name for very long time.
zzz
ofc. took it in school, probably still have a book around somewhere
orignal
Pascal was a proamming langiage
mareki2p
I remember I added mousewheel support for some grid view window control in Delphi7. This was my first paid job/internship during shool.
zzz
we used to do like 6 languages in one semester. Lisp, SNOBOL, Forth, ...
zzz
anyway, re: dup setdate messages to subsessions, thanks for the report, I have it fixed, just need to test before checking in
orignal
you know Pascal was popular in ex-USSR until mid of 90s
orignal
because lack of hardware
orignal
286 was good for Pascal and not for C++ ))
zzz
look at mareki2p finding two bugs in one day, one on each router, not playing favorites, good job ))
mareki2p
I heard stories from some company that when they transitioned their software from Pascal to C and later to C++ that it started crashing much more. Skill issue on the engineers I guess.
mareki2p
Thank you. (-: it makes me happier.
mareki2p
I have more quiestions zzz, when reading the docs, it mentions the sub-sessions in single I2CP connections. But, there is limitation that the other sessions need to use the same encryption keys as the master sessions and that it is detectable that two destinations are related in this way. Why is that? I guess left-over from the past. So if I want to create uber-anonymous bittorrent client over I2CP and I want t
mareki2p
o have unique destination per torrent, then I can not use sub-sessions, but I need to establish new I2CP connection to the router. Correct?
zzz
correct
zzz
because subsessions use same tunnels, so must be same encryption
mareki2p
Any plans to improve this?
zzz
no
zzz
you want multiple tunnels, use multiple I2CP connections
orignal
zzz, look right now?
orignal
*loks
orignal
*looks
orignal
sorry one more mistake
orignal
done
zzz
sure, even fixed the spelling in the comment ))
orignal
lol
zzz
but I'll leave it to mareki2p to test it...
mareki2p
That +1 and +8 should not be magic numbers. They should be named constants. Something like message_type_len=1 message_size_len=4 message_header_len=message_type_len+message_size_len set_date_date_len=4 set_date_string_size_len=1 and so on.
orignal
let me try with snark
orignal
it's obsious in this context
orignal
what is 8 and what is
orignal
1
mareki2p
I saw +8 and I was thinking ... the date is 32bit not 64bit, right?
zzz
8 bytes
orignal
it's just memory reservation for reposnse
orignal
timestamp is 8 bytes - 64 bits
mareki2p
Oh, I was thinking 1 byte for message type, 4 bytes for message lenght, 4 bytes for timestamp, 1 byte for string length.
snowflakes
Я АНОНИМНЫЙ ПИДОРАС
snowflakes
НАРОМАН ТО ЕСТЬ
snowflakes
hello guys whats happened there
snowflakes
i kidding if true
snowflakes
My appologize for my joke
zzz
fixing bugs, what's up with you?
snowflakes
Maybe write some documentation about i2cp with examples of code?
zzz
sounds like fun!
snowflakes
why fun
snowflakes
I love kotlin but
snowflakes
fun lol
snowflakes
i dont use i2cp even I use i2p more than 8 years
snowflakes
oh not, i used that like when used snark for torrents
snowflakes
so all that I used
snowflakes
its for torrenting
snowflakes
zzz, I’ve been having some trouble with real-life issues and some health/diagnosis stuff lately. But I won’t bring it here, since I know this channel is for more useful and technical things. Still, thank you for asking
mareki2p
OK, tested i2pd. It reports back version 0.9.66 even if I send it something different, such as 0.9.65.
zzz
snowflakes, best wishes for things getting better ))
mareki2p
I also vaguely remember that i2pd does not care about authentication in the I2CP protocol. But I do not have the enerty today to test it out.
orignal
working with snark
orignal
zzz, plaz has mental disorder again ))
orignal
mareki2p what king of authentication are you talking about?
orignal
I didn't know it even exist