I still don't have .prepare/.finalize working cleanly across reopen,
but did find a nasty bug where a botched assertion means we failed to
notice reads beyond EOF in both the xz and retry filter.
Refactoring backend.c will make .finalize work easier.
Eric Blake (5):
xz: Avoid reading beyond EOF
retry: Check size before transactions
tests: Test retry when get_size values change
server: Fix backend range check
server: Refactor to drop connection_get_handle()
server/internal.h | 66 +++++++------
server/backend.c | 53 ++++++----
server/connections.c | 2 +-
server/filters.c | 70 +++++--------
server/plugins.c | 142 ++++++++++-----------------
server/protocol-handshake-newstyle.c | 4 +-
filters/retry/retry.c | 23 +++++
filters/xz/xzfile.c | 4 +
tests/Makefile.am | 2 +
tests/test-retry-size.sh | 101 +++++++++++++++++++
10 files changed, 275 insertions(+), 192 deletions(-)
create mode 100755 tests/test-retry-size.sh
--
2.21.0