diff options
Diffstat (limited to 'auth_mellon_handler.c')
-rw-r--r-- | auth_mellon_handler.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/auth_mellon_handler.c b/auth_mellon_handler.c index 525f712..d78beec 100644 --- a/auth_mellon_handler.c +++ b/auth_mellon_handler.c @@ -2375,11 +2375,14 @@ static int am_handle_repost(request_rec *r) return HTTP_BAD_REQUEST; } - psf_filename = apr_psprintf(r->pool, "%s/%s", mod_cfg->post_dir, psf_id); - if ((post_data = am_getfile(r->pool, r->server, psf_filename)) == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + psf_filename = apr_psprintf(r->pool, "%s/%s", mod_cfg->post_dir, psf_id); + post_data = am_getfile(r->pool, r->server, psf_filename); + if (post_data == NULL) { + /* Unable to load repost data. Just redirect us instead. */ + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, "Bad repost query: cannot find \"%s\"", psf_filename); - return HTTP_BAD_REQUEST; + apr_table_setn(r->headers_out, "Location", return_url); + return HTTP_SEE_OTHER; } if ((post_form = (*post_mkform)(r, post_data)) == NULL) { |