h2_proxy_stream *stream = val;
int touched = (stream->data_sent || stream->data_received ||
stream->id <= ctx->session->last_stream_id);
- if (touched && stream->output) {
- apr_bucket *b = ap_bucket_error_create(HTTP_BAD_GATEWAY, NULL,
- stream->r->pool,
- stream->cfront->bucket_alloc);
- APR_BRIGADE_INSERT_TAIL(stream->output, b);
- b = apr_bucket_eos_create(stream->cfront->bucket_alloc);
- APR_BRIGADE_INSERT_TAIL(stream->output, b);
- ap_pass_brigade(stream->r->output_filters, stream->output);
- }
- ctx->done(ctx->session, stream->r, APR_ECONNABORTED, touched,
- stream->error_code);
+ ctx->done(ctx->session, stream->r, APR_ECONNABORTED, touched, stream->error_code);
return 1;
}
* @macro
* Version number of the http2 module as c string
*/
-#define MOD_HTTP2_VERSION "2.0.30"
+#define MOD_HTTP2_VERSION "2.0.31"
/**
* @macro
* release. This is a 24 bit number with 8 bits for major number, 8 bits
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
*/
-#define MOD_HTTP2_VERSION_NUM 0x02001e
+#define MOD_HTTP2_VERSION_NUM 0x02001f
#endif /* mod_h2_h2_version_h */
unsigned is_ssl : 1;
request_rec *r; /* the request processed in this ctx */
- int r_status; /* status of request work */
+ apr_status_t r_status; /* status of request work */
int r_done; /* request was processed, not necessarily successfully */
int r_may_retry; /* request may be retried */
int has_reusable_session; /* http2 session is live and clean */
"setup new connection: is_ssl=%d %s %s %s",
ctx->p_conn->is_ssl, ctx->p_conn->ssl_hostname,
locurl, ctx->p_conn->hostname);
- ctx->r_status = ap_map_http_request_error(status, HTTP_SERVICE_UNAVAILABLE);
+ ctx->r_status = status;
goto cleanup;
}
if (ctx->cfront->aborted) goto cleanup;
status = ctx_run(ctx);
- if (ctx->r_status != OK && ctx->r_may_retry && !ctx->cfront->aborted) {
+ if (ctx->r_status != APR_SUCCESS && ctx->r_may_retry && !ctx->cfront->aborted) {
/* Not successfully processed, but may retry, tear down old conn and start over */
if (ctx->p_conn) {
ctx->p_conn->close = 1;
ap_set_module_config(ctx->cfront->conn_config, &proxy_http2_module, NULL);
ap_log_cerror(APLOG_MARK, APLOG_DEBUG, status, ctx->cfront,
APLOGNO(03377) "leaving handler");
- if (ctx->r_status != OK) {
- ap_die(ctx->r_status, r);
- }
- else if (status != APR_SUCCESS) {
- ap_die(ap_map_http_request_error(status, HTTP_SERVICE_UNAVAILABLE), r);
- }
return ctx->r_status;
}