frekky / iodine

iodine fork to improve performance and add features
45 stars 12 forks source link

Protocol Compatiblity #4

Closed GGeorggg closed 7 years ago

GGeorggg commented 8 years ago

Trying to connect with iodine -v 0.7.0 from 2014-06-16 breaks server

GGeorggg commented 8 years ago

This is from server debug log (compiled with make debug) version 5dbe640ec577c4423130f5f48949ad7ea51a53e6

[D3 server.c:700] RX: client 203.0.113.120 ID 9073, type 10, name yrbzg3.does.not.exist [D3 server.c:1869] NULL request length 7/256, command 'Y' [D3 server.c:1217] TX: client 203.0.113.120 ID 9073, 6 bytes data, type 10, name 'yrbzg3.does.not.exist' [D3 server.c:700] RX: client 203.0.113.120 ID 16800, type 65399, name yrbzg4.does.not.exist [...]

GGeorggg commented 8 years ago

yust found: http://code.kryo.se/iodine/README.html

"Note: server and client are required to speak the exact same protocol. In most cases, this means running the same iodine version. Unfortunately, implementing backward and forward protocol compatibility is usually not feasible."

so i would assume the only option is to have a wrapper running quering ns.does.not.exist which sends a version request and checks for VACK, or VNAK ?

frekky commented 8 years ago

Hi. I've confirmed your issue that old iodine versions do not recognise that a server running this version of iodined is incompatible (there should normally be an error saying that the versions do not match).

I'll have a look into it when I get time, which may not be for a while as I am quite busy.

frekky commented 7 years ago

Fixed in master branch