This is indeed a tricky situation. The basic problems is that we have an
untyped protocol and Oskar wants to make it interoperable with a typed
protocol. typed -> untyped is not a problem, but untyped -> typed is.

My solution, and it's a dubious one, is to drop fields whose type cannot
be determined when going from untyped to typed.

This means just drop the unknown fields. The known fields will be
converted by the message into an internal representation that is typed. So
writing them out typed is fine. Currently we pass on unknown fields so
that new messages will propagate correctly even through old nodes that
don't understand them. This is a good thing.

However, I'm okay with dropping unknown fields in the small number of
cases where a node reads a message via an untyped protocol and then writes
it using a typed protocol.

I think this is at least better than only allowing typed protocols. I'd
greatly prefer that our main protocol by untyped although, for efficiency,
a packed binary typed protocol might be nice, too.




_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to