aboutsummaryrefslogtreecommitdiffstats
path: root/outgoing.c
diff options
context:
space:
mode:
Diffstat (limited to 'outgoing.c')
-rw-r--r--outgoing.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/outgoing.c b/outgoing.c
index 3fc726c038e4..0d0e5e2e1c9a 100644
--- a/outgoing.c
+++ b/outgoing.c
@@ -916,21 +916,22 @@ static apr_status_t handle_response(serf_request_t *request,
* themselves by not registering credential callbacks.
*/
if (request->conn->ctx->cred_cb) {
- status = serf__handle_auth_response(&consumed_response,
- request,
- request->resp_bkt,
- request->handler_baton,
- pool);
-
- /* If there was an error reading the response (maybe there wasn't
- enough data available), don't bother passing the response to the
- application.
-
- If the authentication was tried, but failed, pass the response
- to the application, maybe it can do better. */
- if (status) {
- return status;
- }
+ status = serf__handle_auth_response(&consumed_response,
+ request,
+ request->resp_bkt,
+ request->handler_baton,
+ pool);
+
+ if (SERF_BUCKET_READ_ERROR(status)) {
+ /* Report the request as 'died'/'cancelled' to the application */
+ (void)(*request->handler)(request,
+ NULL,
+ request->handler_baton,
+ pool);
+ }
+
+ if (status)
+ return status;
}
if (!consumed_response) {