On Feb 7, 2012 3:49 AM, "Julian Foad" <julianfoad_at_btopenworld.com> wrote:
> So... Greg's talking about if a <= 1.7 client is re-linked against the
Ev2-capable libraries, the shims would be inserted and that check would be
lost. But what happens if, instead, we run that <= 1.7 client *with its
old libraries* and connect to an Ev2-capable server? Then the shims would
not be used on the client side; instead the server would talk Ev1 protocol
... but then the Ev2 -> Ev1 shims would be used on the server side to drive
the old Ev1 protocol ... and so the base checksum would still be set to
null, thus bypassing apply_textdelta's check, would it not?
Hyrum and I spoke about that, and figured that we just leave the Ev1 code
paths in there, connected to the older protocol(s). The newer Ev2
protocol(s) follows its own patterns, *plus* brings in the
checksum-content-skip that we've been talking about.
And even if some kind of shim is used on the server, we can fine-tune it
for this particular case. ie. we don't have to use the generic shims that
Hyrum is building right now. These shims have no semantic knowledge of the
driver or receiver. If you *do* know that (ie. what piece of svn code it is
connected to, and what its assumptions/needs are), then you can write a
much more efficient shim.
Received on 2012-02-07 19:35:39 CET