From 987b098777fbda8052c6a176d7fff86a861b0109 Mon Sep 17 00:00:00 2001 From: Greg Stein Date: Fri, 8 Mar 2002 01:22:20 +0000 Subject: [PATCH] * mod_dav.c (dav_handle_err): look through the error stack for some kind of errortag. any buried errortag is better than a generic response. Submitted by: Ben Collins-Sussman git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93786 13f79535-47bb-0310-9956-ffa450edef68 --- modules/dav/main/mod_dav.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/dav/main/mod_dav.c b/modules/dav/main/mod_dav.c index 4e3894ce55..020f871819 100644 --- a/modules/dav/main/mod_dav.c +++ b/modules/dav/main/mod_dav.c @@ -593,14 +593,19 @@ static int dav_handle_err(request_rec *r, dav_error *err, dav_log_err(r, err, APLOG_ERR); if (response == NULL) { + dav_error *stackerr = err; + /* our error messages are safe; tell Apache this */ apr_table_setn(r->notes, "verbose-error-to", "*"); - /* didn't get a multistatus response passed in, but we still - might be able to generate a standard response. */ - if (err->tagname) { - return dav_error_response_tag(r, err); - } + /* Didn't get a multistatus response passed in, but we still + might be able to generate a standard response. + Search the error stack for an errortag. */ + while (stackerr != NULL && stackerr->tagname == NULL) + stackerr = stackerr->prev; + + if (stackerr != NULL && stackerr->tagname != NULL) + return dav_error_response_tag(r, stackerr); return err->status; } -- 2.40.0