Log Message: |
Make ra_serf use a pool cleanup handler on its request handlers to allow
reusing the ra session in cases that before this patch would cause a segfault
because it wasn't cleaned up.
If the ra session would schedule a new request before timeout, the context
would continue delivering data to old handlers. After this patch that won't
happen again.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__handler_t): Add boolean.
* subversion/libsvn_ra_serf/util.c
(svn_ra_serf__context_run_one): Remove specialized handling of
SVN_ERR_CEASE_INVOCATION that was already not required after recent
error handling cleanups, but is now completely unneeded.
(handle_response): Unregister on request errors.
(handle_response_cb): Unregister on EOF and/or errors.
(svn_ra_serf__request_create): Check for double scheduling. Update comment
to match current reality.
(handler_cleanup): New function.
(svn_ra_serf__create_handler): Register handler_cleanup.
|